Xcode 10测试版中的Google Fabric

问题描述 投票:14回答:8

我安装了Xcode 10 Beta 6,我正在更新所有内容,在这个过程中,我遇到了一个Fabric问题。 Fabric的网站上有Xcode 10的特别说明:

Xcode 10 Instructions

当我在Xcode 10中时,我会在运行脚本上运行Build Phases an,其中包含我的Fabric键,在Input Fields部分下面有一个+号

当我点击+它会自动生成$(SRCROOT)/newInputFile,其中newInputFile会自动突出显示。

我不理解Fabric的说明。我是否在$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)之后复制$(SRCROOT)/我是否将INFOPLIST_PATH替换为我的info.plist的文件路径?

我已经尝试了所有这些选项,但Fabric仍然在Xcode 10中崩溃。我知道它是Fabric,因为我已经在我的App Delegate的Fabric.with([Crashlytics.self])中注释掉了didFinishLaunchingWithOptions

xcode google-fabric xcode10
8个回答
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链接,它指向一个快捷方式,该快捷方式指向一个真实的文件。不知道为什么会失败。我的猜测它与脚本执行时不存在的文件有关。延迟解决了这个问题。我希望这可以提供帮助。

  • 我删除了原始的应用名称以保护隐私。

12
投票

仅对于Xcode 10,在最终设置结构时遇到问题的用户是您的项目。

从Xcode 10开始,您需要在Build Phase的Input Files字段中再进行一次设置。

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

enter image description here

点击此链接了解更多信息:https://fabric.io/kits/ios/crashlytics/install


9
投票

我有同样的问题,如果你的info.plist在你的根目录中,如下所示:

你应该像这样改变qazxsw poi:


1
投票

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

$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

source


1
投票
  1. 在构建阶段结束时添加脚本运行阶段。
  2. 将Shell脚本阶段设置为settings image
  3. 将输入文件设置为: /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.


0
投票

fabric info.plist错误可以通过更改Xcode工作区设置 - >构建设置 - >遗留构建系统来解决


0
投票

我通过将“运行脚本”移动到构建阶段的底部来解决了这个问题。当然我改为“DWARF with dSYM File”和Check image for more reference


0
投票

我的解决方案是用这样的大括号替换圆括号

$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

如果在脚本阶段调用${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH},则可以检查路径是否实际存在。使用圆括号在Xcode构建控制台中给出了以下信息“BUILT_PRODUCTS_DIR:未找到命令”用大括号替换圆括号将打印执行路径,因此脚本最终为我工作。


0
投票

以上都不适合我。如果有人使用Cocoapods,请执行以下步骤。

  1. echo $(BUILT_PRODUCTS_DIR)添加到“运行脚本”部分的“输入文件”中。
  2. 在“运行脚本”框中将$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)替换为./Fabric.framework/run
  3. 转到构建设置,搜索"${PODS_ROOT}/Fabric/run",将其更改为Debug Information

它至少对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.