我刚刚将我的 Xcode 更新到版本 10.0 (10A255),它也在我的 MacBook 上运行。之后我使用了命令
sudo ionic cordova build ios --emulator --prod
Run Code Online (Sandbox Code Playgroud)
然后它开始正常构建,但构建似乎永远不会结束,因为此过程永远不会返回“构建失败”或“构建成功”。它显然突然结束,这是终端中的输出:
Running app-scripts build: --prod --platform ios --target cordova
[16:09:56] build prod started ...
[16:09:56] clean started ...
[16:09:56] clean finished in 3 ms
[16:09:56] copy started ...
[16:09:57] deeplinks started ...
[16:09:58] deeplinks finished in 1.52 s
[16:09:58] ngc started ...
[16:10:27] ngc finished in 28.76 s
[16:10:27] preprocess started ...
[16:10:27] preprocess finished in less than 1 ms
[16:10:27] webpack started ...
[16:10:27] copy …Run Code Online (Sandbox Code Playgroud) 当我使用自定义 @IBDesignable UITextfield 类时,视图控制器(主故事板)中的所有对象都会消失。主故事板如下所示:
(Xcode 10, Swift 4.2)
如你所见,它也显示了一个错误。但是当我运行应用程序时,Xcode 显示“构建成功”。
我使用自定义 @IBDesignable UITextfield 类,如下所示:
import UIKit
import AKMaskField
@IBDesignable
class MyTextFieldStyle: AKMaskField {
@IBInspectable var secureEntry : Bool = false
@IBInspectable var myBorderColor : UIColor = UIColor.white {
didSet {
self.layer.borderColor = myBorderColor.cgColor
}
}
@objc func secureButtonPressed (sender: UIButton) {
self.secureEntry = !self.secureEntry
self.isSecureTextEntry = self.secureEntry
}
override func awakeFromNib() {
super.awakeFromNib()
if self.secureEntry {
let btn = UIButton(type: .custom)
btn.setImage(#imageLiteral(resourceName: "eye-17-glyph-16"), for: .normal)
btn.addTarget(self, action: #selector(self.secureButtonPressed(sender:)), for: .touchUpInside) …Run Code Online (Sandbox Code Playgroud) 在 Xcode 中,当运行目标设置为“通用 iOS 设备”并使用推荐ONLY_ACTIVE_ARCH=YES的调试配置设置时,ONLY_ACTIVE_ARCH=YES requested with multiple ARCHS and no run destination to provide an active architecture生成警告时。这是有道理的,因为没有选择运行目标,但这是一个烦人的警告(它是为每个构建目标依赖项生成的)。但是,如果ONLY_ACTIVE_ARCH设置为,NO那么您将获得建议的项目更改以将其设置YES为调试配置。当运行目标设置为“通用 iOS 设备”时,有没有办法避免此警告?
在 Xcode 10 中运行我的项目会引发此错误
fatal error: 'Stories-Swift.h' file not found
我尝试了多种方法,包括:
Defines Modules为YesSWIFT_OBJC_INTERFACE_HEADER_NAME并将其设置为$(PROJECT_NAME)-Swift.h我检查了我的派生数据,没有 ProjectName-Swift.h 的痕迹。
我是不是错过了一些明显的东西,TIA。
xcode swift objective-c-swift-bridge bridging-header xcode10
我正在使用 CoreGraphics 画一条线。我刚刚更新了 Xcode 10 和 iOS 12。在 iOS 12 中,我的应用程序崩溃了。尽管如此,它在 iOS 11.4.1 和之前的版本中仍然运行良好。我无法解决这个问题。请在下面找到我的代码
-(void)drawRect:(CGRect)rect
{
CGPoint mid1 = midPoint(previousPoint1, previousPoint2);
CGPoint mid2 = midPoint(currentPoint, previousPoint1);
CGContextRef context = UIGraphicsGetCurrentContext();
[self.layer renderInContext:context];
CGContextMoveToPoint(context, mid1.x, mid1.y);
CGContextAddQuadCurveToPoint(context, previousPoint1.x, previousPoint1.y, mid2.x, mid2.y);
CGContextSetLineCap(context, kCGLineCapRound);
CGContextSetLineWidth(context, self.lineWidth);
CGContextSetStrokeColorWithColor(context, self.lineColor.CGColor);
CGContextSetShadow(context, CGSizeMake(-16.00, -5.0f), 5.0f);
CGContextStrokePath(context);
[super drawRect:rect];
[curImage release];
}
Run Code Online (Sandbox Code Playgroud)
下面是touchesMoved方法。
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
previousPoint2 = previousPoint1;
previousPoint1 = [touch previousLocationInView:self];
currentPoint = [touch locationInView:self]; …Run Code Online (Sandbox Code Playgroud) 在我们的项目中,我们从 git tag 等派生我们的发布版本,然后使用如下 shell 脚本将其写入构建文件夹的 Info.plist:
GIT_RELEASE_VERSION=$(some git command)
defaults write "${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH%.*}" "CFBundleShortVersionString" "${GIT_RELEASE_VERSION#*v}"
这适用于所有过去的 Xcode 版本,但在 Xcode 10 的新构建系统中,这未能实际更新 info.list 文件中的 CFBundleShortVersionString。不过,该值已使用 Xcode 10 的旧版构建系统正确更新。
我在脚本中添加了一些 echo 并比较了新系统和旧系统上的构建日志,看不出任何区别:
echo "git release version:" ${GIT_RELEASE_VERSION}
echo "info path:" ${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH%.*}
echo "grv:" "${GIT_RELEASE_VERSION#*v}"
不确定是否有人在 New Build System 上遇到过类似的问题?
我有一个具有多种不同构建配置的应用程序目标(不要与具有两种配置的多个目标相混淆)。我为每个配置创建了一个方案,这意味着我可以单击下拉菜单并选择我应该构建和运行的应用程序配置。在此下拉列表中,所有应用程序都具有相同的图标。
需要明确的是,在设备(或模拟器)上运行应用程序时,它们都会得到正确的图标。最后,安装时一切正常。
这很烦人。这只是这个列表。它一直都是这样(只要我记得)。直到现在,我还没有真正费心去找出为什么会这样。
直到今天,下拉列表中的所有应用程序都使用相同的图标,但该图标是该项目的“主要”图标。“主应用程序”的图标,这是第一个“味道”。在我今天更新到Xcode 10 后,它们仍然具有相同的图标,但它与以前的图标不同。它是最不重要的构建配置之一的图标。
(这是来自另一个项目,其中我们使用了具有两种配置的多个目标,而不是具有多种配置的单个目标)
有没有办法来解决这个问题?或者控制使用哪个图标?
我有一个 Siri 快捷方式的意图定义文件。当我单击本地化 Xcode 时,可以很好地创建本地化文件,使用的每个字符串都带有一个 ID。但是,如果我在同一个文件中添加了一个新的意图或者只是在同一个文件中添加了一个新的可能响应,我该如何刷新呢?我目前只找到两种方法:
那么,有人知道刷新意图定义文件的自动本地化的方法吗?
在以前的 iOS 版本中,我能够使用如下内容更改文本和背景颜色:
let datePicker = UIDatePicker()
datePicker.datePickerMode = UIDatePickerMode.date
datePicker.setValue(UIColor.white, forKey: "textColor")
datePicker.backgroundColor = UIColor.black.withAlphaComponent(0.6)
Run Code Online (Sandbox Code Playgroud)
这不再适用于 Xcode 10/iOS 12。日期选择器以其默认颜色显示。有没有人找到在 iOS 12 中自定义文本和背景颜色的解决方案?
从 Xcode 10 开始,构建脚本阶段可以使用文件列表 ( .xcfilelist) 进行输入和输出,而不是直接指定输入/输出文件。这些文件似乎支持注释(WWDC 示例在顶部显示了命令行注释)、空行(也在示例中),并且希望每行一个文件路径。如果这些文件包含构建设置(例如$(SRCROOT)),它们会在调用脚本之前展开,就像如果文件路径直接作为输入/输出文件被提供一样,它们会被展开。
这听起来是一个很棒的功能,但是您将如何在实际脚本中使用这些文件列表?
当直接指定文件时,你有 shell 变量SCRIPT_INPUT_FILE_COUNT,SCRIPT_OUTPUT_FILE_COUNT然后是每个输入/输出文件的一个变量,命名SCRIPT_INPUT_FILE_#和SCRIPT_OUTPUT_FILE_#位置#曾经是一个向上计数的数字。假设您有相同数量的输入/输出文件,此脚本将打印所有文件:
#!/bin/sh
: $((i=0))
while [ $i -lt "$SCRIPT_INPUT_FILE_COUNT" ]
do
eval fileIn="\$SCRIPT_INPUT_FILE_${i}"
eval fileOut="\$SCRIPT_OUTPUT_FILE_${i}"
echo "$fileIn --> $fileOut"
: $((i=i+1))
done
Run Code Online (Sandbox Code Playgroud)
这是一个干净的 POSIX 兼容 shell 脚本,是的,你可以在需要时让它更好,bash但上面的代码应该适用于每个sh兼容的 shell(它在使用#!/bin/sh和 not时也承诺#!/bin/bash)。
但是当使用文件列表时,它SCRIPT_INPUT_FILE_COUNT是 0。相反,你得到SCRIPT_INPUT_FILE_LIST_COUNTandSCRIPT_OUTPUT_FILE_LIST_COUNT和变量SCRIPT_INPUT_FILE_LIST_#and SCRIPT_OUTPUT_FILE_LIST_#,包含预处理文件列表的路径,其中所有注释和空行都已被删除,所有构建设置都已展开。
现在,我将如何在我的脚本中使用这些文件列表?上面的小示例脚本如何使用 Xcode 中的文件列表生成相同的输出?我不是很擅长 shell 脚本,我正在寻找一个干净的解决方案,它不需要任何其他脚本解释器,但sh.
xcode10 ×10
xcode ×5
ios ×2
ios12 ×2
swift ×2
cordova ×1
ionic3 ×1
iphone ×1
localization ×1
objective-c ×1
sh ×1
shell ×1
swift4.2 ×1
uidatepicker ×1
uikit ×1