我安装了Xcode 10 Beta 6,并且正在更新所有内容,在此过程中,我遇到了Fabric的一个小问题。 Fabric的网站上有针对Xcode 10的特殊说明,内容为:
当我使用Xcode 10时,在具有我的Fabric密钥的运行脚本上进入Build Phases,在Input Fields
部分下有一个+号
当我单击+时,它会自动生成$(SRCROOT)/newInputFile
,其中newInputFile
会自动突出显示。
我不了解Fabric的说明。我是否要在$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
之后复制$(SRCROOT)/
,是否将INFOPLIST_PATH替换为info.plist的文件路径?
我尝试了所有这些选项,但是Fabric在Xcode 10中仍然崩溃。我知道它是Fabric,因为我在应用程序代表的Fabric.with([Crashlytics.self])
中注释了didFinishLaunchingWithOptions
答案 0 :(得分:9)
仅适用于Xcode 10 ,在最终结构构造中面临问题的用户是您的项目。
在Xcode 10中,您需要在 Build Phase的Input Files字段中进行另一项设置。
仅需复制此 $(BUILT_PRODUCTS_DIR)/ $(INFOPLIST_PATH),然后粘贴到运行脚本下的“构建阶段的输入文件”字段,如下图所示。 / p>
答案 1 :(得分:8)
如果您的info.plist像这样在您的根目录中,我也会遇到同样的问题:
您应该这样更改on_modified
:
答案 2 :(得分:4)
我完全按照Mahdi RB的建议做了。还按照official manual guide上的步骤操作,没有用。
当我使用XCode进行构建时,我看到它处理大约2k个任务。当我启动机器,打开xcode并执行存档时,结构构建通常可以正常工作。此后,构建大部分时间开始中断。我正在使用在03 / OCT / 18下载的最新结构和崩溃解决方案。这真的很奇怪,因为它可以用于我的其他项目,只是这个失败了。这从XCode 10-版本10.0(10A255)开始。它正在使用以前的XCode 9。
这是我在说什么的证明:
我的解决方法是在调用fabric命令之前添加此命令。例如
sleep 15
"${PROJECT_DIR}/Fabric.framework/run" aaaaa aaaa
我在Mac控制台应用程序上发现了此错误,但不确定是否与之相关:
IBAgent-iOS - assertion failed - libxpc.dylib - and some numbers here.
XCode错误
2018-10-03 13:53:58.698 uploadDSYM[46168:550157] Fabric.framework/run 1.7.2 (210)
2018-10-03 13:53:58.704 uploadDSYM[46168:550157] Using API Key: "123"
2018-10-03 13:53:58.704 uploadDSYM[46168:550157] Launched uploader in validation mode
error: Fabric: Info.plist Error
Unable to process Info.plist at path /Users/someuser/Library/Developer/Xcode/DerivedData/SampleApp-amwweapikvrbgafmmnyeyorkiufq/Build/Intermediates.noindex/ArchiveIntermediates/SampleApp/BuildProductsPath/Release-iphoneos/SampleApp.app/Info.plist
This could be a timing issue, make sure the Fabric run script build phase is the last build phase and no other scripts have moved Inspector.app from the location Xcode generated it. You can also add '$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)' as an "Input Files" dependency for your Fabric run script build phase.
我试图打开该plist链接,它指向一个快捷方式,而该快捷方式指向一个实际文件。不知道为什么会失败。我的猜测与脚本执行时文件不存在有关。延迟解决了该问题。希望对您有所帮助。
答案 3 :(得分:1)
答案 4 :(得分:1)
/bin/bash
。将输入文件设置为:
(1) $(PROJECT_DIR)/$(INFOPLIST_FILE).
(2) $(PROJECT_DIR)/Scripts/set_bundle_build_number.sh
Change path to path of script so changes you make to the script
cause a re-run.
(3) $(TARGET_BUILD_DIR)/$(INFOPLIST_PATH)
Fixes XCode 10 issues of duplicate output phases.
答案 5 :(得分:0)
fabric info.plist错误可以通过更改Xcode工作区设置->构建设置->旧式构建系统来解决
答案 6 :(得分:0)
我通过将“运行脚本”移到构建阶段的底部来解决了这个问题。当然,我更改为“带有dSYM文件的DWARF”和$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
。
答案 7 :(得分:0)
对我来说,解决方案是将圆括号替换为大括号
${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}
如果在脚本阶段调用echo $(BUILT_PRODUCTS_DIR)
,则可以检查路径是否确实存在。使用圆括号使我在Xcode构建控制台中获得以下信息“ BUILT_PRODUCTS_DIR:未找到命令”
用大括号代替圆括号将打印实际路径,因此脚本最终对我有用。
答案 8 :(得分:0)
以上都不适合我。如果有人使用Cocoapods,请执行以下步骤。
在运行脚本部分将$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
添加到输入文件。
在“运行脚本”框中将./Fabric.framework/run
替换为"${PODS_ROOT}/Fabric/run"
。
转到“构建设置”,搜索Debug Information
,将其更改为DWARF with dSYM File
。
至少对我有用。
答案 9 :(得分:0)
对我来说,将构建系统更改为“旧版构建系统”修复了归档错误。 要更改构建系统,请转到文件->工作区设置,然后将构建系统从默认的“新构建系统”更改为“传统构建系统”。