2

On submitting an iOS app to the Apple App Store recently, I'm receiving the following error during processing of the build:

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.

Searching Stack Overflow, the solution is to disable LLVM Code Coverage in all dependencies. I have done this for all open source Carthage dependencies, but I'm still getting the error message. I believe this is because the Fabric and Crashlytics dependencies in the project have LLVM Code Coverage enabled, but I cannot disable this as I only have access to the .framework files, and not the .xcodeproj files.

How can I change the LLVM Code Coverage build setting for Fabric / Crashlytics?

  • 1
    Mike from Fabric here. Are you copying or linking our frameworks in? – Mike Bonnell Sep 27 '17 at 13:27
  • Linking I believe, I installed them following the steps in Fabric.app for Mac, and they're in the `Linked Frameworks and Binaries` build phase. – Chris James Sep 27 '17 at 15:24
  • You might try this solution: https://stackoverflow.com/a/46226810/3975963 – Mike Bonnell Sep 27 '17 at 22:19
  • 1
    That's the one I've tried, but it only works for open source Carthage modules as it changes the .xcodeproj / .xcscheme files. With Fabric we can only see the .framework files right? – Chris James Sep 28 '17 at 08:44

1 Answers1

1

In our case Fabric frameworks were not the cause of the mentioned error.

Apple suggest to run the following scripts on your archive (output of Xcode archive operation):

nm -m -arch all <PathToArchive>/Products/Applications/<AppName>.app/<AppBinary> | grep gcov

otool -l -arch all <PathToArchive>/Products/Applications/<AppName>.app/<AppBinary> | grep __llvm_prf

But you can modify the path to target 'Frameworks' directory instead of the app binary and it will print out the frameworks with enabled instrumentation.

More info is available at Resolving App Rejections for GCC and LLVM Instrumentation.

Nejc
  • 123
  • 1
  • 9