web-dev-qa-db-ja.com

アプリ送信時の「シンボルファイルが多すぎます」という警告

アプリをアプリストアに送信したところ、次の警告が表示されました(エラーではありません)。

シンボルファイルが多すぎます-これらのシンボルには、どのバイナリにも対応するスライスがありません[XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX.symbols、XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX.symbols]

この問題の原因は何ですか?どうすれば修正できますか? Crashlyticsへのクラッシュレポートで問題が発生しますか?

9
YogevSitton

同じ問題が私にも起こりました、そしてここにこれが起こった理由と解決策があります。

ショートバージョン:プロジェクト設定が不適切なため、冗長な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でのみarm64Build Settingに設定します。この場合、Podプロジェクトターゲットにも同じValid Architecturesを設定する必要があります(ポッドを介して追加したフレームワークの数によっては、複数のターゲットが存在する場合があります)。これを行うことにより、Podsプロジェクトはビルドプロセス中に冗長なdSYMファイルを生成しません。すべてのtargetsが正しく設定されたら、Product-> Archiveに移動して再アーカイブします。万が一の場合に備えて、dSYMファイルのuuidを再度確認する必要があります。

私は自分自身を理解したと思います:)

31

Crashlyticsレポートは、この設定の影響を受けません。

2
val

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フレームワークよりも制限の厳しい制約があることを示しています。 enter image description here

1
G S