web-dev-qa-db-ja.com

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

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アプリを送信して、その応答を受け取りますか?私はそれを無視して、何が起こるのを待つべきだと思いますか?

136
Jim Barber

これは、ライブラリのデバッグ情報をプロジェクトアーカイブに含めるが、バイナリは含めない場合に発生します。プロジェクトでオーガナイザーウィンドウを開きます。右ボタンメニューで[Finderに表示]を選択します。もう一度プロジェクトのアーカイブファイルを右クリックして、パッケージの内容を表示します。 dSYMsフォルダーには、ファイルのバッチがあります。これらのファイルで console command を実行すると、UUID文字列のリストが表示されます。

dwarfdump -u MyFile.dSYM

Appleの電子メールからUUIDが見つかると確信しています。

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

enter image description here

71

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に設定します(メインアプリターゲットではありません)

45
wzbozon

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のみに設定します

enter image description here

参照: https://github.com/CocoaPods/CocoaPods/issues/7111

10
Jerry Chen

プロジェクトに有効なアーキテクチャがあるため、この問題がありますarm64ここで、ココアポッドターゲットには有効なアーキテクチャがありますarm64、armv7、およびarmv7s

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

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

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

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

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

8
miOS

私にとっては、すべてがとても簡単でした。私は同じ問題を抱えていて、一週間何をすべきか分からなかった。

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

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

6
lenden

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

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

enter image description here

1
Tarun Seera

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

0
ARR

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

IPHONEOS_DEPLOYMENT_TARGET = 11.0

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

0
Frank

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

必ずプロジェクトでこのオプションをチェックしてくださいBuild Settings

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

0
Sanad Barjawi