Xcode 10 Beta中的Google Fabric

时间:2018-08-16 04:46:59

标签: xcode google-fabric xcode10

我安装了Xcode 10 Beta 6,并且正在更新所有内容,在此过程中,我遇到了Fabric的一个小问题。 Fabric的网站上有针对Xcode 10的特殊说明,内容为:

Xcode 10 Instructions

当我使用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

10 个答案:

答案 0 :(得分:9)

仅适用于Xcode 10 ,在最终结构构造中面临问题的用户是您的项目。

在Xcode 10中,您需要在 Build Phase的Input Files字段中进行另一项设置。

仅需复制此 $(BUILT_PRODUCTS_DIR)/ $(INFOPLIST_PATH),然后粘贴到运行脚本下的“构建阶段的输入文件”字段,如下图所示。 / p>

enter image description here

有关此链接的更多信息:https://fabric.io/kits/ios/crashlytics/install

答案 1 :(得分:8)

如果您的info.plist像这样在您的根目录中,我也会遇到同样的问题:

Root directory tree

您应该这样更改on_modified

Path image

答案 2 :(得分:4)

我完全按照Mahdi RB的建议做了。还按照official manual guide上的步骤操作,没有用。

当我使用XCode进行构建时,我看到它处理大约2k个任务。当我启动机器,打开xcode并执行存档时,结构构建通常可以正常工作。此后,构建大部分时间开始中断。我正在使用在03 / OCT / 18下载的最新结构和崩溃解决方案。这真的很奇怪,因为它可以用于我的其他项目,只是这个失败了。这从XCode 10-版本10.0(10A255)开始。它正在使用以前的XCode 9。

这是我在说什么的证明:

XCode pic

我的解决方法是在调用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)

进入目标的构建设置。找到“调试信息格式”。在调试和发行版中都将其从“ DWARF”设置为“带有dSYM文件的DWARF”

source

settings image

答案 4 :(得分:1)

  1. 在构建阶段结束时添加脚本运行阶段。
  2. 将用于脚本阶段的Shell设置为/bin/bash
  3. 将输入文件设置为:

    (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.
    

Check image for more reference

答案 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,请执行以下步骤。

  1. 在运行脚本部分将$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)添加到输入文件。

  2. 在“运行脚本”框中将./Fabric.framework/run替换为"${PODS_ROOT}/Fabric/run"

  3. 转到“构建设置”,搜索Debug Information,将其更改为DWARF with dSYM File

至少对我有用。

答案 9 :(得分:0)

对我来说,将构建系统更改为“旧版构建系统”修复了归档错误。 要更改构建系统,请转到文件->工作区设置,然后将构建系统从默认的“新构建系统”更改为“传统构建系统”。