通过 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,那么让事情继续下去的唯一方法就是以下内容
- 运行 Crashlytics 应用程序安装程序到他们为您提供构建阶段脚本的地步。
- 复制脚本
- 撤消安装
- 通过 Cocoapods 安装
- 将复制的脚本添加到您的构建阶段
在构建阶段执行的脚本路径与您使用 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。
尝试:
删除 podfile 中的 Fabric 和 Crashlytics。
pod 安装
再次将 Fabric 和 Crashlytics 添加到 podfile
pod 安装
添加 运行 脚本,如上面的答案。
希望对您有所帮助。
在
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
:
- 如果您的
info.plist
文件中包含密钥 Fabric
的任何数据,请务必删除所有该信息以及密钥。
- 使用简单的
"${PODS_ROOT}/Fabric/run"
脚本。不要添加任何 API_KEY 和 BUILD_SECRET
这对我有用,希望对您有所帮助。
如官方文档所述,只需更新您的 pods 存储库
pod repo update
我尝试通过 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,那么让事情继续下去的唯一方法就是以下内容
- 运行 Crashlytics 应用程序安装程序到他们为您提供构建阶段脚本的地步。
- 复制脚本
- 撤消安装
- 通过 Cocoapods 安装
- 将复制的脚本添加到您的构建阶段
在构建阶段执行的脚本路径与您使用 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。
尝试:
删除 podfile 中的 Fabric 和 Crashlytics。
pod 安装
再次将 Fabric 和 Crashlytics 添加到 podfile
pod 安装
添加 运行 脚本,如上面的答案。
希望对您有所帮助。
在
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
:
- 如果您的
info.plist
文件中包含密钥Fabric
的任何数据,请务必删除所有该信息以及密钥。 - 使用简单的
"${PODS_ROOT}/Fabric/run"
脚本。不要添加任何 API_KEY 和 BUILD_SECRET
这对我有用,希望对您有所帮助。
如官方文档所述,只需更新您的 pods 存储库
pod repo update