今天,我下载了Xcode 9,并对应用程序进行了必要的更改以进行编译。该应用程序正在本地编译并运行,没有任何问题。

使用Xcode 9,我将其上传到App Store。上载成功,没有任何错误。

然后,我从Apple收到以下电子邮件:



我关闭了目标和 cocoa bean 目标的代码覆盖率,这是我可以找到的唯一相关设置:

ios - Xcode 9,迦太基。 iTunes Connect错误:  “Invalid Bundle - Disallowed LLVM instrumentation”-LMLPHP

重新提交了应用程序,但出现了同样的错误。

在我的项目中,我使用的是迦太基,它具有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取消。
  • 运行以上命令,将代码覆盖率设置为NO
  • 现在一切就绪,然后运行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/

    10-11 14:24