[Swift3]AudioKit入りのアプリがValidationできない問題

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る
ライブラリを表す画像

先日アプリを審査に提出しようと思ってValidationを実行したら「Invalid Signature.」というエラーが出て、しばらく立ち往生してしまった。

調べてみると、ライブラリ「AudioKit」の導入方法に問題があったようだ。

Validationができない!?

以前「5000兆円アプリ」をリリースした時と同じように、ビルド→アーカイブ→Validation。前回素通りしたし何ともないやろーと油断してたら以下のようなエラーが。

iTunes Store operation failed.

Invalid Signature. Code object is not signed at all. The file at path [xxxxx.app/Frameworks/AudioKit.framework/fix-framework.sh] is not properly signed.
(以下略)

ううっ、原因が皆目見当つかない。

しかし文面をよくみると「AudioKit」の文字が。今回リリースしようとしたアプリに導入していたライブラリだ。
ということはGitHubの開発者ページに行けば何か分かるかもしれない。

原因はAudioKit……の使い方

手順が1つ漏れてました

AudioKitのREADMEにこんな記載が。

Handling Bitcode on iOS and tvOS

If your project has Bitcode enabled (which is mandatory on tvOS and will soon be on iOS), then you need to add a new Run Script build phase to your target with the following script:

"$BUILT_PRODUCTS_DIR/$FRAMEWORKS_FOLDER_PATH/AudioKit.framework/fix-framework.sh"

Make sure this script is run after the existing Embed Frameworks build phase.

Calling this script is required for your App Store submissions to pass validation when using Bitcode. While optional for non-Bitcode submissions, you may still add this script as it will somewhat reduce the size of the framework embedded in your app.

AudioKit.framework/fix-framework.sh」という、Validationエラーの時に見たものを発見。どうやら、build phaseというやつに「$BUILT_PRODUCTS_DIR/$FRAMEWORKS_FOLDER_PATH/AudioKit.framework/fix-framework.sh」というスクリプトを追加してあげる必要があるらしい。

具体的な対処方法

言葉で表すと難しそうだが、実際にやることは簡単。

写真の赤枠のアプリ名をクリック。

アプリ名の部分をクリックする画像

「Build Phases」タブを選択し、左上の「+」をクリック。

Build Phasesタブを操作する画像

「New Run Script Phase」を選択する。

New Run Script Phaseを選択する画像

すると「Run Script」の行が追加される。

行が追加された画像

三角ボタンを押して行を展開し、赤枠の部分に「$BUILT_PRODUCTS_DIR/$FRAMEWORKS_FOLDER_PATH/AudioKit.framework/fix-framework.sh」と入力すれば、対処は完了。

スクリプト名を入力する画像

この状態で改めてビルド→アーカイブ→Validateと実行すれば、エラーなく完了できるはず。

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。