送られてきたもの
Xcode9で初めてAppStoreにipaをあげました。アップロード自体は成功したんですが、Appleから以下のメールが届きました。
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.
なるほど、LLVM Profiling Instrumentation
がAppにくっついているか、coverage colllection
が有効になったままだよって言ってるっぽいです。
対処方法
前提として、今回作っていたプロダクトではCarthage
とCocoaPods
を使ってました。各自の状況に合わせて読んでください。
まず、開発しているプロダクトのBuild Settings > Apple LLVM 9.0 Code Generation > Enable Code Coverage Support
の項目を見てください。YES
になっている場合はここをNO
にします。私はひとまずRelease
環境のみNOにしておきました。
CocoaPods
を使っている方は、Podsでも上記と同様の設定をします。
Carthage
を使っている方は、Build Settings
がないのでちょっと手順が変わります。ちなみにこちらを参考にしました。
- terminalを開いてプロジェクトルートに行く
-
carthage update --platform iOS --no-use-binaries --no-build
を叩いて、コンパイルが始まったらctrl+C
でキャンセル- (これなんで必要なのかわからない)
-
grep -lR "codeCoverageEnabled" --include *.xcscheme --null Carthage | xargs -0 sed -i '' -e 's/codeCoverageEnabled = "YES"/codeCoverageEnabled = "NO"/g'
を叩く- Carthage内の各プロジェクトの
codeCoverageEnabled
をNO
にしている様子
- Carthage内の各プロジェクトの
-
carthage build --platform iOS
を叩いて完了を待つ - ビルドが通るか確認する
私の場合、以上を実施後、もう一度ArchiveしてAppStoreにあげればAppleは何も言ってこなくなりました。
そのうちCarthageがアップデートされて解決しそうですが、念のため書いておきました。