今天,我下载了Xcode 9,并对应用程序进行了必要的更改以进行编译。该应用程序正在本地编译并运行,没有任何问题。
使用Xcode 9,我将其上传到App Store。上载成功,没有任何错误。
然后,我从Apple收到以下电子邮件:
我关闭了目标和 cocoa bean 目标的代码覆盖率,这是我可以找到的唯一相关设置:
重新提交了应用程序,但出现了同样的错误。
在我的项目中,我使用的是迦太基,它具有15个以上的依赖项。在寻找解决方案时,我发现所有项目都需要使用上述设置进行更新。
最佳答案
自动将所有依赖项的代码覆盖率设置为false的解决方案是在终端上运行以下命令(请转到项目的目录):
grep -lR "codeCoverageEnabled" --include *.xcscheme --null Carthage | xargs -0 sed -i '' -e 's/codeCoverageEnabled = "YES"/codeCoverageEnabled = "NO"/g'
这会将代码覆盖率设置为“否”,并且iTunes connect将不会提示。
使一切正常的顺序如下
carthage update --platform iOS --no-use-binaries --no-build
。这将更新并下载所有依赖项。当迦太基开始编译时,您可以按ctrl + c取消。
carthage build --platform iOS
。这将构建所有代码覆盖范围为您现在可以存档并上传到iTC。
该命令由https://github.com/gunterhager发出,因此功劳归功于他
作为 faSTLane用户的替代方法,将以下内容添加到您的faSTLane文件中,这将使所有操作自动化:
desc "Update Carthage"
lane :update_carthage do
carthage(
command: "update", # One of: build, bootstrap, update, archive. (default: bootstrap)
use_binaries: false, # Check out dependency repositories even when prebuilt frameworks exist
no_build: true, # When bootstrapping Carthage do not build
platform: "iOS" # Define which platform to build for (one of ‘all’, ‘Mac’, ‘iOS’, ‘watchOS’, ‘tvOS‘, or comma-separated values of the formers except for ‘all’)
)
sh("grep -lR 'codeCoverageEnabled' --include *.xcscheme --null Carthage | xargs -0 sed -i '' -e 's/codeCoverageEnabled = 'YES'/codeCoverageEnabled = 'NO'/g'")
carthage(
command: "build", # One of: build, bootstrap, update, archive. (default: bootstrap)
platform: "iOS" # Define which platform to build for (one of ‘all’, ‘Mac’, ‘iOS’, ‘watchOS’, ‘tvOS‘, or comma-separated values of the formers except for ‘all’)
)
end
关于ios - Xcode 9,迦太基。 iTunes Connect错误: “Invalid Bundle - Disallowed LLVM instrumentation” ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46160518/