Xcode 6 GMをダウンロードし、今日2つのSwiftアプリをアプリストアに提出しました。両方とも、すべてのアップロード前の検証に合格し、他のすべてのものは合格する必要があり、正常に送信されました。しかし、その後、Appleから2つのメールを受け取りました...プログラムごとに1通あり、両方ともこう言いました:
親愛なる開発者、
「xxxxxxxx」(私のアプリ名は削除されました)の最近の配信で1つ以上の問題が見つかりました。配信は成功しましたが、次の配信で次の問題を修正することができます。
シンボルファイルが多すぎる-これらのシンボルには、バイナリ[1431D977-72BC-308F-AB71-71529F25400B.symbols、158C72A7-98AC-3F07-B2BE-88427591B413.symbols、44973EAC-563E-340C-B549-55A5014A68BA.symbols 、678BF06F-0C3D-3A09-BFBF-699C7079FECD.symbols、90907DDB-0400-38ED-BB5F-0C12333C0624.symbols、93B79949-5757-374A-97B9-825AE1A61B7D.symbols、ABA05220-4FB0-397F-AFBB080874F82AF080882F08AF82-08F08AF82-08F08AF82-08F02 -4422-32B8-8C40-CF9B45A2CCC6.symbols、B0CC9F7D-C542-3E18-A518-B28B7ECABE80.symbols、BF6A4C3B-6FA5-3C51-8404-19C2F132458D.symbols、C9D6E078-8E2A-39D9-8DEE-476916A69CEE.symbols、CF5320DF-AB31 -3845-BAD5-F6E51045D396.symbols、D4967AA3-8FB0-3712-B0DE-7F4144AF8F4B.symbols、D813B314-AD37-31D4-B675-442052994495.symbols、DF42A13F-08D8-3E71-B221-FC357E0B60F5.symbols、F5F636C2-F0E0-3CA7 -8F7D-C49A36CD5C65.symbols]
問題を修正したら、XcodeまたはApplication Loaderを使用して、新しいバイナリをiTunes Connectにアップロードできます。
よろしく、
App Storeチーム
それは本当に私や私のアプリとは何の関係もないと推測するでしょう...そしてそれはただの初日のSwiftアプリの提出のちょっとした癖ですか?両方のアプリはまだ「承認待ち」モードになっています。私は確かに、彼らが言ったことをなくすために私が変えることができる何かを考えることができません!他の誰かがまだSwiftアプリを送信して、その応答を受け取りますか?私はそれを無視して、何が起こるのを待つべきだと思いますか?
これは、ライブラリのデバッグ情報をプロジェクトアーカイブに含めるが、バイナリは含めない場合に発生します。プロジェクトでオーガナイザーウィンドウを開きます。右ボタンメニューで[Finderに表示]を選択します。もう一度プロジェクトのアーカイブファイルを右クリックして、パッケージの内容を表示します。 dSYMs
フォルダーには、ファイルのバッチがあります。これらのファイルで console command を実行すると、UUID文字列のリストが表示されます。
dwarfdump -u MyFile.dSYM
Appleの電子メールからUUIDが見つかると確信しています。
この警告を回避するには、アプリケーションのdSYM
ファイルのみをアーカイブし、ライブラリはアーカイブしないようにする必要があります。このためには、ライブラリのビルド構成を変更してdSYM
ファイルを生成しないようにする必要があります。設定で「デバッグ情報形式」を検索し、DWARF with dSYM File
からDWARF
のみに変更します。スクリーンショットには、Stripe iOSフレームワークの例があります。
Cocoapodsの使用中にこの問題が発生した場合は、これをPodfileに追加してください。
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['DEBUG_INFORMATION_FORMAT'] = 'dwarf'
end
end
end
すべてのPodターゲットのみに対してデバッグ情報形式をDWARFに設定します(メインアプリターゲットではありません)
Podsを使用しており、アプリがarm64のみを設定している場合(プロジェクトのinfo.plistにはarm64のみがあります)
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
この問題を解決するには、Podfileで次のスクリプトを試してください。
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
config.build_settings['ARCHS'] = 'arm64'
end
end
end
そして
すべてのプロジェクトのターゲット(Podのターゲットではない)をarm64のみに設定します
プロジェクトに有効なアーキテクチャがあるため、この問題がありますarm64ここで、ココアポッドターゲットには有効なアーキテクチャがありますarm64、armv7、およびarmv7s。
どのターゲットにどの有効なアーキテクチャがあるかを確認するには、次の手順に従います
ターミナルを開き、dSYMsフォルダーのパスを指定します。
コマンドdwarfdump --uuid *
を入力すると、有効なアーキテクチャを持つUUIDのリストが表示されます。
UUIDはAppleの警告メールと一致します
メインプロジェクトとココアポッドのターゲットは、同じ有効なアーキテクチャを持っていると仮定しています。これにより、問題が解決します。
私にとっては、すべてがとても簡単でした。私は同じ問題を抱えていて、一週間何をすべきか分からなかった。
アーカイブされたアプリケーションを送信すると、小さなポップアップウィンドウに配布用の証明書が表示されます。その後にチェックボックスがあります。チェックを外してください。その後、それを送信し、シンボルファイルに関する電子メールを取得します。しかし、それは問題ではありません。これは単なる警告ですが、エラーではありません!このチェックボックスをオフにすると、アプリが正しく送信されます。私はそれが役立つことを願っています
チェックボックスとポップアップのスクリーンショット:
同じ問題がすべてのターゲットに対して同じ「一般」=>「展開情報」=>「展開ターゲット」を持つことで修正されました。
私にとっての問題は、build.xcconfig
ファイルの行でした。削除しなければならなかった
IPHONEOS_DEPLOYMENT_TARGET = 11.0
これは、arm7用ではなくarm64用にのみビルドするようにプロジェクトを設定していました。 @miOS
の手順に従って、両方のポッドプロジェクトが構築されていることがわかりました。
Xcodeで、「コピー中のデバッグシンボルのストリップ」(COPY_PHASE_STRIP)のビルド設定を確認します。有効にすると、デバッグシンボルが.appから省略され、.dSYMファイルに配置されます。それ以外の場合、.appにはこれらのシンボルが含まれます。 (デフォルトでは、デバッグシンボルは難読化のためにリリースビルドから削除されます。おそらく、リリース構成のこの設定を変更しないでください。)
必ずプロジェクトでこのオプションをチェックしてくださいBuild Settings
https://possiblemobile.com/2015/03/symbolicating-your-ios-crash-reports/