通过 CocoaPods 集成 Fabric/Crashlytics

Integrate Fabric/Crashlytics via CocoaPods

我尝试通过 CocoaPods 集成 Fabric/Crashlytics,我的 Podfile 如下所示:

pod 'Fabric/Core', '1.2'
pod 'Fabric/Crashlytics', '1.2'

但是当我尝试构建我的应用程序时,构建失败并且我得到 Shell Script Invocation Error 找不到 运行 脚本:

.../Script-F8D74CB61AB5D7A50013D134.sh: line 2: ./Fabric.framework/run: No such file or directory

是否可以仅使用 CocoaPods 安装 Fabric?

通常我会建议不要违背原则并使用 Fabric App 进行安装。考虑到它们提供的复杂性,它无疑是我见过的最简单的集成工具。

话虽这么说,但既然您已经下定决心要使用 Cocoapods,那么让事情继续下去的唯一方法就是以下内容

  1. 运行 Crashlytics 应用程序安装程序到他们为您提供构建阶段脚本的地步。
  2. 复制脚本
  3. 撤消安装
  4. 通过 Cocoapods 安装
  5. 将复制的脚本添加到您的构建阶段

在构建阶段执行的脚本路径与您使用 Cocoapods 时不同。 https://github.com/bpoplauschi/CrashlyticsFramework 上的 github 页面建议使用 ./Pods/CrashlyticsFramework/Crashlytics.framework/run 但是,我发现我必须使用 ./Pods/Fabric/Fabric.framework/run 进行安装。无论如何,您将不得不翻阅 Pods 目录才能找到您要查找的内容。

通过更改以下行解决了我的相同问题:

./Pods/Fabric/Fabric.framework/run YOUR_API_KEY YOUR_BUILD_SECRET

至:

../Pods/Fabric/Fabric.framework/run YOUR_API_KEY YOUR_BUILD_SECRET

换句话说,只需在前面加上一个额外的 '.'指定 'Pods' 目录是构建目录的兄弟而不是子目录。 YMMV.

我遇到了同样的问题,请使用指向您的 Pods 文件夹的 $PODS_ROOT 环境变量;如果路径中有空格,请务必引用它;所以而不是

./Pods/Fabric/Fabric.framework/run YOUR_API_KEY YOUR_BUILD_SECRET

使用

"$PODS_ROOT"/Fabric/Fabric.framework/run YOUR_API_KEY YOUR_BUILD_SECRET

我以前遇到过这个问题。 这是我的解决方案。 在 运行 脚本之前自动添加 运行 文件的执行模式。

Build Phase -> Run Script 中添加以下行:

chmod +x ./Pods/CrashlyticsFramework/Crashlytics.framework/run

./Pods/CrashlyticsFramework/Crashlytics.framework/run YOUR_API_KEY YOUR_BUILD_SECRET

Fabric 现在支持使用 CocoaPods 安装:http://docs.fabric.io/ios/fabric/cocoapods.html

如果你只是在寻找 Crashlytics 你可以使用这两个 pods:

pod 'Fabric'
pod 'Crashlytics'

除了添加以下构建阶段脚本(注意:如果您的存储库路径包含空格,您将需要引号):

"${PODS_ROOT}"/Fabric/run <API Key> <Build Secret>

如果您想使用 TwitterKit,您需要包括:

pod 'TwitterKit'

如果您依赖于旧版 Podspec 的特定内容并且无法更新到官方库,您可以添加

source 'https://github.com/orta/FabricSpecs.git'
source 'https://github.com/CocoaPods/Specs.git'

到你的 Podfile 的顶部,它会在新版本之前寻找旧的非官方版本。有关详细信息,请参阅 FabricSpecs 存储库。

删除 podfile.lock 和 manifest.lock,然后重新 运行 podfile 安装,然后使用来自 Fabric 的 "easy" 配置应用程序从那里继续。

Fabric.io 的网站上有一些非常不错的屏幕截图幻灯片演示。我通过 Google 找到了它们 - 看不到可以从站点访问它们的位置。

仅供参考,如果您有问题,那不是您自己造成的 :)。基本上(截至 8 月 3 日),Fabric 上线过程的每一步都可能被破坏。

  • 如果幸运的话,您可能没有问题。
  • 如果您不是,:( 您可能在每一步都有问题需要解决,包括注册服务,这可能会让您陷入无休止的注册循环,等等。

希望这些都能尽快得到解决。

警告:您通过搜索找到的大部分答案都将过时,因为显然 fabric.io 在 7 月 15 日发生了很大变化,但如果您向下滚动在 stack/o 上找到的任何内容,您可能会找到更新的答案。

我不得不在 Xcode 7 using CocoaPods 0.39 中使用不同的路径:

${SRCROOT}/Pods/Fabric/Fabric.framework/run <key> <secret>

播客文件:

pod 'Crashlytics'
pod 'Fabric'

我也刚刚将 Fabric 更新到 3.4.1,并且该路径 ^ 略微更改为 Fabric/run。请务必仔细检查 ${SRCROOT} 之后的位,并将其与 Fabric 应用推荐的内容进行比较。有关详细信息,请参阅 the changelog for 3.4.1

尝试:

  1. 删除 podfile 中的 Fabric 和 Crashlytics。

  2. pod 安装

  3. 再次将 Fabric 和 Crashlytics 添加到 podfile

  4. pod 安装

  5. 添加 运行 脚本,如上面的答案。

希望对您有所帮助。

Fabric (1.6.7)

您应该从

更改路径
"${PODS_ROOT}/Fabric/Fabric.framework/run" YOUR_API_KEY YOUR_BUILD_SECRET

"${PODS_ROOT}/Fabric/run"  YOUR_API_KEY YOUR_BUILD_SECRET

对于我的项目,这有效:

"${PODS_ROOT}/Fabric/Fabric.framework/run" YOUR_API_KEY YOUR_BUILD_SECRET

macOS 塞拉利昂,Swift 3

改变

${PODS_ROOT}/Fabric/run

"${PODS_ROOT}/Fabric/run"

如果您之前在项目中使用 Fabric,请务必从 pods 中卸载 pod 'Answers'、'~> 1.3'。

如果您从旧版本更新到 Fabric & Crashlytics

  1. 如果您的 info.plist 文件中包含密钥 Fabric 的任何数据,请务必删除所有该信息以及密钥。
  2. 使用简单的 "${PODS_ROOT}/Fabric/run" 脚本。不要添加任何 API_KEY 和 BUILD_SECRET

这对我有用,希望对您有所帮助。

如官方文档所述,只需更新您的 pods 存储库

pod repo update