はじめに
先日UnityでビルドしたiOSのアプリをバージョンアップの為にAppStoreへ新しいバイナリをアップロードしたらエラーが出たので、その時の状況と対応方法を紹介しようと思います。
環境
- Unity 2020.2.1f1
- Xcode 12.3
エラー内容
AppStoreへバイナリをアップロードしようとしたところ、以下のエラーがでました。
ERROR ITMS-90206: "Invalid Bundle. The bundle at 'XXXXX.app/Frameworks/UnityFramework.framework' contains disallowed file 'Frameworks'."
検索したところ、同じような人たちがUnity Forumにいました。
![](https://i.ibb.co/ZSV5wPv/Captura-de-pantalla-2021-07-22-a-las-11-58-24.png)
対応方法
UnityでiOSビルド
まずは普通にUnityでiOSのビルドをしXcodeプロジェクトを書き出してください。
Build Settingsを書き換える
Build Settingsの開き、「Always Embed Swift Standard Libraries」の項目を探します
![](https://nobushiueshi.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-30-0.38.35-1024x588.png)
その後、「Always Embed Swift Standard Libraries」を「NO」から「YES」に変更します。
![](https://nobushiueshi.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-30-0.38.59-1024x588.png)
Archiveする
Build Settingsを書き換えたら、通常通りアプリをArchiveします。
![](https://nobushiueshi.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-30-0.39.33.png)
Archiveが終わるとArchivesが開きます。
![](https://nobushiueshi.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-30-0.53.00-1024x555.png)
ArchiveしたアプリをFinderで開く
Archiveしたアプリを右クリックし「Show in Finder」を選択します。
![](https://nobushiueshi.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-30-0.53.17(2)-1024x518.png)
するとFinderでArchiveされたバイナリが選択された状態で開きます。
![](https://nobushiueshi.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-30-0.53.53-1024x544.png)
xcarchiveのパッケージの内容を表示
さきほど、Finderで開いた.xcarchiveを再び右クリックし「パッケージの内容を表示」を選択します。
![](https://nobushiueshi.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-30-0.54.11(2).png)
すると、パッケージの中身が表示されます。
![](https://nobushiueshi.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-30-0.55.12-1024x544.png)
Applicationのパッケージの中身を表示
次に上記で開いたFinderでProducts/Applications/XXXXを選択します。このXXXXの部分はアプリによって違います。
そして、再び右クリックし「パッケージの中身を表示」を選択します。
![](https://nobushiueshi.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-30-0.56.06(2).png)
するとApplicationの中身が表示されます。
![](https://nobushiueshi.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-30-0.56.51.png)
Frameworksフォルダの削除
これで最後です。上記で開いた内容にFrameworksフォルダがあるのでそれを削除します。
![](https://nobushiueshi.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-30-0.57.23(2).png)
これで作業完了です!
あとはArchivesに戻って、通常のAppStoreへのアップロードする手順と一緒です。
この作業をすることで私も無事にAppStoreへバイナリがアップロードできるようになりました。
さいごに
対応はするのは良いのですが早くなんとかしてほしいですね。。。
コメント
Unity初心者です。xcodeが何をするところなのかもよくわからないまま、たくさんのエラーに困って一つずつ時間をかけて調べて対処してきて、これが一番最後のエラーとなりました。助かりました。無事アップロードまでできました。ありがとうございました。
と、思ったのですが、アップロードの過程でリジェクトされていました。
”ITMS-90427: Invalid Swift Support – The expected dylibs are missing from the app’s Framework location, such as /Payload/●●●.app/Frameworks.”とメールが来てました。
どこか設定がわるかったのかもしれません。
結局、Always Embed Swift Standard Librariesの項目を、Unity-iPhone、Unity-iPhoneTest、UnityFrameworkの全てで、”No”にしたところ、全てアップロードまでスムーズに通りました。
お役に立てず残念です。
> 結局、Always Embed Swift Standard Librariesの項目を、Unity-iPhone、Unity-iPhoneTest、UnityFrameworkの全てで、”No”にしたところ、全てアップロードまでスムーズに通りました。
このあたりの設定は通常いじらなくてもAppStoreへリリースできるはずです。Unityのバージョンやプラグインの影響、Xcodeのバージョン等が原因だと思われます。一度そこを調べ直したほうが良いと思います。