アプリをアプリストアに送信したところ、次の警告が表示されました(エラーではありません)。
シンボルファイルが多すぎます-これらのシンボルには、どのバイナリにも対応するスライスがありません[XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX.symbols、XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX.symbols]
この問題の原因は何ですか?どうすれば修正できますか? Crashlyticsへのクラッシュレポートで問題が発生しますか?
同じ問題が私にも起こりました、そしてここにこれが起こった理由と解決策があります。
ショートバージョン:プロジェクト設定が不適切なため、冗長なdSYMファイルが生成されています。私の場合、「プロジェクト」は1つの主要なxcprojectといくつかのcocoapodプロジェクトで構成されており、後者のBuild Setting\Valid Architectures
設定は前者よりも広範囲です。したがって、XCodeはそのポッドプロジェクト用に冗長なdSYMファイルを生成しており、Appleは、メインプロジェクトがより制約されたレベルに設定されているため、これらのdSYMファイルが役に立たないことを検出しました。
でたらめなバージョンの束:
Window
-> Organizer
に移動し、送信バージョンのアーカイブとright click
-> Show in Finder
を選択して、その.xcarchiveファイルを見つけます。次に、terminal
を使用して.xcarchive(.appのようなバンドル)に移動し、次にdSYMs
ディレクトリに移動し、dwarfdump --uuid *
を実行してそのdSYMファイルのuuidを表示します。不平を言っている電子メールのuuidがリストにあるかどうかを確認します。電子メールには、これらのdSYMファイルは冗長であると記載されているため、アーカイブを構築するときにそれらを生成しないようにする必要があります。
私の場合、アプリでAFNetworkingやその他のサードパーティフレームワークを使用しました。これらはCocoaPodsを介してプロジェクト(またはより正確にはワークスペース)に追加されます。 iPhone5sより古いデバイスにアプリがインストールされないことを保証する必要があるため、プロジェクトのValid Architectures
でのみarm64
をBuild Setting
に設定します。この場合、Pod
プロジェクトターゲットにも同じValid Architectures
を設定する必要があります(ポッドを介して追加したフレームワークの数によっては、複数のターゲットが存在する場合があります)。これを行うことにより、Pods
プロジェクトはビルドプロセス中に冗長なdSYMファイルを生成しません。すべてのtargets
が正しく設定されたら、Product
-> Archive
に移動して再アーカイブします。万が一の場合に備えて、dSYMファイルのuuidを再度確認する必要があります。
私は自分自身を理解したと思います:)
Crashlyticsレポートは、この設定の影響を受けません。
IOS 11をターゲットにしているが、cocoapodsフレームワークの最小デプロイメントターゲットがiOS 11未満であるとします。次に、ポッドファイルの最後にこれを追加します。
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
end
end
end
「シンボルファイルが多すぎます」という警告は、プロジェクトにcocopodsフレームワークよりも制限の厳しい制約があることを示しています。