/ carthage

关于解决 Carthage 导致的 Code Coverage 问题

关于解决 Carthage 导致的 Code Coverage 问题

前天在 Xcode 9 提交软件的时候,遇到了这个问题

Invalid Bundle - Disallowed LLVM instrumentation. Do not submit apps with LLVM profiling instrumentation or coverage collection enabled. Turn off LLVM profiling or code coverage, rebuild your app and resubmit the app.

原因是 Xcode 9 给每个 Target 默认开启了 Code Coverage,在 Xcode 里修改 Project 和 Target 的 Build Settings 里的 Enable Code Coverage Support 为 NO 即可解决这个问题。

而 Carthage 则需要你手动进入项目根目录的 Carthage 目录下面打开对应的库的 Project 逐一针对 Target 修改。

更新库 carthage update --platform iOS --no-use-binaries --no-build

最后使用 carthage build --platform iOS 重新编译一下,清理下 DerivedData 并 Clean。

再打包即可。

如果依旧提示这个问题,尝试在项目根目录执行

grep -lR "codeCoverageEnabled" --include *.xcscheme --null Carthage | xargs -0 sed -i '' -e 's/codeCoverageEnabled = "YES"/codeCoverageEnabled = "NO"/g'

再重复上面的操作。

欢迎订阅频道

我在 Telegram 上开了一个新的 Channel

iOS Dev Tips 作为我的 iOS 开发技巧备忘录 https://t.me/iosdevtips