TestFlightに新しいビルドをアップロードしようとしていますが、Application Loaderで次のエラーが表示されます。
エラーITMS-90502:「無効なバンドル。arm64スライスのみを含むアプリは、Info.plistのUIRequiredDeviceCapabilitiesのリストに「arm64」も必要です。」
提案どおりに_arm64
_をUIRequiredDeviceCapabilities
に追加すると、別のエラーが発生します。
エラーITMS-90098:「このバンドルは無効です。キーUIRequiredDeviceCapabilitiesには、「8.0」のMinimumOSVersion値と互換性のない値「arm64」が含まれています。」
この問題の原因と、バンドルに_arm64
_アーキテクチャのみが含まれている理由がわかりません。プロジェクトの設定を確認したところ、他のアーキテクチャが含まれているようです。 ARCHS
(アーキテクチャ)はStandard architectures (armv7, arm64)
に設定され、_VALID_ARCHS
_(有効なアーキテクチャ)は_arm64 armv7 armv7s
_に設定されます。
最後のビルドをアップロードしようとしてからしばらく経ちました(最大1か月)。 Appleから何かを壊したのですか?(それ以来、私は間違いなくアーキテクチャ設定に触れていません。追加された唯一のものは_UIBackgroundModes = remote-notification
_)でした。このエラー?
気にしないで、問題を見つけました。アーカイブの構築に使用した構成にはBuild Active Architecture Only
はYes
に設定されます。愚かな私。
この投稿の数か月後に同じエラーが発生しました。 Googleでこの投稿を見つけましたが、他の人がここに来た場合、同じ経路で、ITMS 90502
エラー(これは、2015年10月下旬/ 11月初旬の時間枠におけるこれが新しい要件であることです。).
アプリに他のフレームワークを含める場合、「arm64」に必要なデバイス機能も含まれている必要があります。つまり、これはInfo.plistに含まれている必要があります。
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
ココアポッドを使用している場合、すべての依存関係にキー「UIRequiredDeviceCapabilities」を追加する必要があります。このポストインストールをPodfileに含めます。
post_install do |installer|
installer.pods_project.targets.each do |target|
plist_buddy = "/usr/libexec/PlistBuddy"
plist = "Pods/Target Support Files/#{target}/Info.plist"
puts "Add armv7 to #{target} to make it pass iTC verification."
`#{plist_buddy} -c "Add UIRequiredDeviceCapabilities array" "#{plist}"`
`#{plist_buddy} -c "Add UIRequiredDeviceCapabilities:0 string armv7" "#{plist}"`
end
end
ターゲットの展開ターゲットがiOS 11.0以降の場合、arm64
にinfo.plist
が必要です。 Xcode 9.xで新しいプロジェクトを作成すると、UIRequiredDeviceCapabilities
の下にarmv7
が追加されるだけで、バグのようです。
info.plist
のUIRequiredDeviceCapabilities
キーを次のように更新します。
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
私はこれを解決しましたERROR-ITMS 90502
エラー。
アクティブなアーキテクチャのみがYES
に設定されているが、同じエラーが表示される場合。
ただし、お使いの携帯電話がMacに接続できる場合は、切断してアップロードしてください。
私の場合、解決しました!
Xamarinを使用してこの問題が発生しましたが、最終的にこの質問に答えました。
私にとっての解決策は、アプリケーションの構築時にデバッグシンボルが含まれないようにすることでした。
Xamarin Studioで、プロジェクト->オプションを右クリックします。 [ビルド]見出しの下の[コンパイラ]を選択します。 [デバッグ情報]ドロップダウンを確認します。
クリーンアップ、再構築、再パッケージ化、再度アップロードすると、機能しました。
別の方法:
1-テストデバイスをMacから切断します
2-アーカイブ
あなたが言及した問題は、iPhoneが接続されているときにアーカイブしようとしたときにのみ起こりました。
切断中にアーカイブすると、この問題はなくなります。
IOS 11以降でビルドするときにこの問題に最近誰かがいる場合、このキーはアプリに必要であり、アプリにある拡張機能にも必要です。ただし、フレームワークに含める必要はありません。
Xamarinで同じ問題が発生しました
問題を修正するために行ったすべては、実際のデバイスを接続している間にビルドタイプをRelease| iPhone
に変更します
この助けを願っています
これは私のために働く。
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
私の場合、私は持っていました:エラーITMS-90503 UIRequiredDeviceCapabilitiesキーにarm64のみ(「のみ」なし)があります
そして:「デバッグ」モードでのアーカイブは私のために働いた
私の場合、Visual Studio for Macでこれを解決したのは、iosオプションパネルでARMv7 + ARM64を設定することでした。