私はそこに同様の質問があることを知っています!しかし、彼らは古いです。私たちは以前にiTunesにリリースしたことがありますが、問題に直面したことはありません。たくさんのサブプロジェクトとココアポッドがあります。何が問題なのかわからない。
Xcode 10.1のリリースノートには、次の行があります。
App StoreとTestFlightは、arm64eを含む提出を受け付けません。オーガナイザーウィンドウから配布すると、Xcodeはアプリからarm64eコンテンツを削除します。
私たちの場合、これがそれを修正するための鍵でした。 CIはxcodebuildを使用してIPAをコンパイルおよびアーカイブし、fastlaneを使用してアップロードします。最初のステップは、IPAアーカイブを解凍することです。
そうすることで、SwiftSupportフォルダーとアプリケーションのフレームワークフォルダーにあるSwift標準ライブラリが得られます。そのリリースノートをヒントとして使用すると、Xcode10.1の標準ライブラリには4つのアーキテクチャが付属していることがわかりました。 :
% file /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/iphoneos/libswiftCore.dylib
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/iphoneos/libswiftCore.dylib: Mach-O universal binary with 4 architectures: [arm_v7:Mach-O dynamically linked shared library arm_v7] [arm64]
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/iphoneos/libswiftCore.dylib (for architecture armv7): Mach-O dynamically linked shared library arm_v7
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/iphoneos/libswiftCore.dylib (for architecture armv7s): Mach-O dynamically linked shared library arm_v7s
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/iphoneos/libswiftCore.dylib (for architecture arm64): Mach-O 64-bit dynamically linked shared library arm64
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/iphoneos/libswiftCore.dylib (for architecture cputype (16777228) cpusubtype (2)): Mach-O 64-bit dynamically linked shared library arm64
未知のアーキテクチャにある最後のものに注意してください。それはarm64eです。これらのファイルをそのままアップロードすると、TestFlight/iTunesConnectは、表示されているメッセージとともにバイナリを拒否します。
私たちにとっての解決策は、標準ライブラリをコピーし、lipo
を使用してarm64eスライスを削除してから、配布証明書で署名することでした。次に、IPAアーカイブを再パッケージ化してアップロードできます。
お役に立てば幸いです。提出用のアプリケーションをどのように構築しているかが明確ではないため、これに対処するのは難しいかもしれませんが、何が起こっているのかを理解した後、構築スクリプトを変更することは難しくありませんでした。