54

我尝试通过 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?

4

16 回答 16

167

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

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

pod 'Fabric'
pod 'Crashlytics'

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

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

运行脚本构建阶段

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

pod 'TwitterKit'
于 2015-07-15T20:09:26.727 回答
10

对我来说同样的问题是通过更改以下行来解决的:

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

到:

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

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

于 2015-05-13T22:40:53.187 回答
9

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

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

采用

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

于 2015-06-30T10:28:11.957 回答
8

尝试:

  1. 删除 podfile 中的 Fabric 和 Crashlytics。

  2. 吊舱安装

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

  4. 吊舱安装

  5. 像上面的答案一样添加运行脚本。

希望它有所帮助。

于 2015-11-25T03:12:16.173 回答
7

macOS 塞拉利昂,斯威夫特 3

改变

${PODS_ROOT}/Fabric/run

"${PODS_ROOT}/Fabric/run"
于 2016-09-21T10:39:51.257 回答
5

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

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

播客文件:

pod 'Crashlytics'
pod 'Fabric'

我也刚刚将 Fabric 更新到 3.4.1,并且路径 ^ 略微更改为Fabric/run. 确保仔细检查这些位${SRCROOT},并将其与 Fabric 应用程序推荐的内容进行比较。有关详细信息,请参阅3.4.1 的更改日志

于 2015-09-17T00:09:31.680 回答
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
于 2016-03-24T08:30:48.110 回答
3

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

于 2015-05-08T12:14:22.963 回答
2

如果您更新到旧版本FabricCrashlytics从旧版本更新:

  1. 如果您的info.plist文件中有任何数据,请Fabric确保将所有信息与密钥一起删除。
  2. 使用简单的"${PODS_ROOT}/Fabric/run"脚本。不要添加任何 API_KEY 和 BUILD_SECRET

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

于 2018-06-07T09:20:52.980 回答
1

如果您依赖于旧 Podspecs 的特定内容并且还不能更新到官方库,您可以添加

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

在您的 Podfile 的顶部,它会在新版本之前查找较旧的 -unofficial- 版本。有关更多详细信息,请参阅FabricSpecs 存储库。

于 2015-07-16T09:09:24.760 回答
1

对于我的项目,这有效:

"${PODS_ROOT}/Fabric/Fabric.framework/run" YOUR_API_KEY YOUR_BUILD_SECRET
于 2016-05-18T20:27:52.873 回答
0

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

话虽这么说,既然你已经死定了使用 Cocoapods,那么让事情顺利进行的唯一方法就是以下

  1. 运行 Crashlytics 应用程序安装程序,直到它们为您提供构建阶段脚本。
  2. 复制脚本
  3. 撤消安装
  4. 通过 Cocoapods 安装
  5. 将复制的脚本添加到您的构建阶段
于 2015-03-16T07:25:02.057 回答
0

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

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

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

./Pods/CrashlyticsFramework/Crashlytics.framework/run YOUR_API_KEY YOUR_BUILD_SECRET
于 2015-07-10T02:22:18.590 回答
0

删除 podfile.lock 和 manifest.lock,然后重新运行 podfile install,然后使用 Fabric 中的“简单”配置应用程序从那里继续。

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

仅供参考,如果您遇到问题,那不是您:)。基本上(截至 8 月 3 日),Fabric 板载流程的每一步都可能被破坏。

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

希望这些都会很快得到解决。

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

于 2015-08-03T20:22:29.183 回答
0

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

于 2018-04-02T00:51:49.903 回答
0

如官方文档中所述,只需更新您的 pods repo

pod repo update
于 2018-10-17T15:17:54.327 回答