アプリを正常に送信した後の「シンボルファイルが多すぎます」


199

今日、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-4FBA-CA774B02-A774A82F08A397AABF08-397FB -4422-32B8-8C40-CF9B45A2CCC6.symbols、B0CC9F7D-C542-3E18-A518-B28B7ECABE80.symbols、BF6A4C3B-6FA5-3C51-8404-19C2F132458D.symbols、C9D6E0D8A9DAADAEA70D8A9DAEA70D8A9DAEA70D8A9DA9DAEA70D8A9D70AAB9AAD9AADA9DA9A70DB9A70AA9D9A70AA9A70AA9D9A70AA9D9A70AA9DsA9DsA7A9Ds9As9Aabs9E7fBfBfE6EsbE9Asf9E7fBfCfEfEfEfBfBfEfEfEfBfBffEfEfEfBfBfffEfEfBfBfffEfEfBfBfffEfEfBfBfB短納期-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アプリを送信し、その応答を受け取っていますか?私はそれを無視して何が起こるか見るのを待つべきだと思いますか?


と私は言ったInvalid Swift Support。なぜ私がこれを手に入れることができるのか?最新のXcodeを使用しています。
Dehli 2014

同じ問題がここにあり、私のアプリはレビューのために送信できません。この問題のため。
yudun1989、2014

1
ここで同じ問題。とにかくレビューのために提出..何が起こるか見てみましょう:)
dandoen

私のSwiftアプリは両方ともApp Storeで承認されたばかりです...だから私は何も心配しなかったと思います!ふew ......)
ジムバーバー

回答:


128

これは、ライブラリのデバッグ情報をプロジェクトアーカイブに含めているが、バイナリは含めていない場合に発生します。

  1. Xcodeでオーガナイザーウィンドウを開きます
  2. この問題が発生したアーカイブを右クリックし、[Finderに表示]を選択します。
  3. アーカイブファイルを右クリックして、[パッケージの内容を表示]を選択します。
  4. 「dSYMs」フォルダにいくつかのファイルが表示されます。これらのファイルに対してdwarfdumpコンソールコマンドを実行すると、UUID文字列のリストが表示されます。

    dwarfdump -u MyFile.dSYM

Appleのメールから一致するUUIDがいくつか見つかるはずです。

この警告を回避するにはdSYM、ライブラリではなく、アプリケーションのファイルのみをアーカイブに含める必要があります。これを行うには、dSYMファイルを生成しないようにライブラリのビルド構成を変更する必要があります。設定で「デバッグ情報形式」を検索して、DWARF with dSYM FileからDWARFのみに変更します。

たとえば、以下のスクリーンショットには、Stripe iOSフレームワークがあります。

Xcodeプロジェクト設定のスクリーンショット


13
dwarfdump -u *フォルダ内ですべてのUUIDを表示
Jon

@Jon ooooh一つずつ作ったのになぜ見えるの?:) まあありがとう!
Serj Rubens

6
dSYMファイルを削除すると、サードパーティに関連するクラッシュはCrashlytics(または他のクラッシュレポートツール)でシンボル表示されなくなりますか?
Eugenio

ただし、firebase \ fabricを使用する場合は、dsymファイルを使用してサイトのクラッシュログを表示する必要があります。彼らはまだこの変更で動作しますか?
Mattia Lancieri

88

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

すべてのポッドターゲットに対してのみ(メインアプリターゲットではなく)デバッグ情報フォ​​ーマットをDWARFに設定します


@wzbozonはい、私は再確認をお願いします。私がそれをした後、Crashlytictsが機能しなくなったからです。ありがとう!
Cesar Rodriguez

このスクリプトはポッドのビルド設定のみを変更するため、Crashlyticsはアプリで引き続き機能します。
スタン

1
同意する。ただし、ポッドのレポートは表示されません。一部のポッドのみ(開発ポッドなど)のdSYMファイルを使用してDWARFを設定することもできます。
Denis Kutlubaev

@スタン、Crashlyticsは機能し続けると言ってるの?セザール・ロドリゲスはそれがうまくいかないと言っているようです。
airowe 2018

8
これで解決しました。忘れないでくださいpod install
firebear

17

CocoaPodsを使用していて、アプリが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

そして

すべてのプロジェクトのターゲット(ポッドのターゲットではない)をarm64のみに設定します

Xcodeプロジェクト設定

CocoaPods Githubの問題のリファレンス


おそらく今すぐarm64eも含める必要がありますか?
シム

シミュレータ用にarm64を含めます。リリースビルドでは自動的に削除されます。
cybergen

13

CocoaPodsターゲットに有効なアーキテクチャarm64、armv7、およびarmv7sが含まれているプロジェクトに有効なアーキテクチャarm64があるため、この問題が発生します。

どのターゲットにどの有効なアーキテクチャがあるかを確認するには、次の手順に従います。

  1. Xcode->ウィンドウ->オーガナイザー
  2. アーカイブを選択してFinderで公開
  3. .xcarchiveファイル、パッケージの内容を表示します
  4. ターミナルを開き、dSYMsフォルダーのパスを指定します。

  5. コマンドdwarfdump --uuid *を入力すると、有効なアーキテクチャのUUIDのリストが表示されます。

UUIDはAppleの警告メールと一致します

メインプロジェクトとココアポッドのターゲットは、同じ有効なアーキテクチャを持つものとします。これにより、問題が解決します。


何が起こっているのかをよく説明していると思います。私のプロジェクトはarm64用にのみビルドされているため、armv7アーキテクチャーのライブラリーについてのみこれらの警告が出ます。プロジェクトにarmv7を追加する必要があるか、それをポッドから削除する必要があるかどうか、疑問が残ります。
Ariel Bogdziewicz

6

ビットコードを有効にすることで私のために働きました-それは以前はオフでした

ビットコードを有効にする-はい

ここに画像の説明を入力してください


1

上記はトラブルシューティングに役立ちましたが、解決できませんでした。私たちはiOS 12でプロジェクトを行っていましたが、ポッド10で、armv7ファイルの束につながりました。ポッドをiOS 12に更新すると、すぐに解決します。


0

同じ問題がすべてのターゲットに対して同じ「一般」=>「展開情報」=>「展開ターゲット」を持つことで修正されました。


0

Xcodeで、「コピー中のストリップデバッグシンボル」のビルド設定(COPY_PHASE_STRIP)を確認します。有効にすると、デバッグシンボルが.appから省略され、.dSYMファイルに配置されます。それ以外の場合、.appにはこれらのシンボルが含まれます。(デフォルトでは、難読化の理由から、デバッグシンボルはリリースビルドから削除されています。リリース構成では、この設定を変更しないでください。)

プロジェクトのビルド設定でこのオプションを必ずオンにしてください

https://possiblemobile.com/2015/03/symbolicating-your-ios-crash-reports/


0

私にとっての問題は、build.xcconfigファイル内の行でした。削除しなければならなかった

IPHONEOS_DEPLOYMENT_TARGET = 11.0

これは、プロジェクトをarm64用にのみビルドするように設定していました(arm7用ではありません)。手順に従う@miOSと、ポッドプロジェクトが両方のために構築されていることがわかりました。


1
stackoverflow.com/a/49063850/3293172 iOS 11はarmv7およびarmv7sのサポートを終了したため、デプロイメントターゲット> = iOS 11.0の場合はarm64のみが必要です。
Ariel Bogdziewicz

-2

私にとって、すべては非常に単純でした。私は同じ問題を抱えていて、1週間何をすべきか分かりませんでした。

アーカイブされたアプリケーションを送信すると、小さなポップアップウィンドウに配布用の証明書が表示されます。その後にチェックボックスがありますが、チェックを外す必要があります。その後、あなたはそれを提出し、シンボルファイルについてのメールを受け取ります。しかし、それは問題ではありません。これは単なる警告です。エラーではありません!このチェックボックスをオフにすると、アプリは正しく送信されます。お役に立てれば幸いです。

チェックボックスとポップアップのスクリーンショット:

チェックボックスとポップアップのスクリーンショット


私はあなたがより詳細になることを本当に望みます。多分スクリーンショット?
Louis Hong

gyazo.com/6d7bb2035979cb75253ba92a40e8d898見たと思います、これはこれです
Louis Hong

5
はい。ただし、これによりパッケージからすべてのシンボルが削除されるため、シンボリッククラッシュレポートを受け取りませんか?(TestFlightを使用して、App Storeアプリで象徴的なクラッシュレポートを提供することもできますか?)
Markus Rautopuro '23

30
これは問題に対する有効な解決策ではありません。これは問題を解決するのではなく、症状を回避しています。不要なシンボルをアップロードする方法については、ミハイルズの回答を参照してください。この回答によりシンボルのアップロードが防止され、iTunesConnectを介したクラッシュのシンボリケーションが壊れます
JConway

2
そうしないと、App Storeのアプリでクラッシュエラーを分析できなくなります
user924
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.