web-dev-qa-db-fra.com

"Trop de fichiers de symboles" après avoir soumis avec succès mes applications

J'ai téléchargé Xcode 6 GM et j'ai soumis deux applications Swift à l'app store aujourd'hui. Toutes les deux ont réussi toutes les vérifications de pré-upload et toutes les autres choses qu'elles ont dû transmettre et ont été soumis avec succès. Mais ensuite, j'ai reçu deux courriels d'Apple ... un pour chaque programme et ils ont tous les deux déclaré ceci:

Cher développeur,

Nous avons découvert un ou plusieurs problèmes liés à votre livraison récente de "xxxxxxxx" (nom de mon application supprimé). Votre livraison a réussi, mais vous voudrez peut-être résoudre les problèmes suivants lors de votre prochaine livraison:

Trop de fichiers de symboles - Ces symboles ne correspondent à aucune tranche dans aucun binaire [1431D977-72BC-308F-AB71-71529F25400B.symbols, 158C72A7-98AC-3F07-B2BE-88427591B413.symbols, 44973EAC-563E-3403-555A14A1414.). Système de base, 678BF06F-0C3D-3A09-BFBF-699CFenregistrementStranger, 90907DB-0400-38ED-BB5F0C1233 -4422-32B8-8C40-CF9B45A2RC6.Symboles, B0CC9F7D-C542-3E-A518-B28B7ECABE80.symbols, BF6A4C3B-6FA5-3C51-8404-19C2F132458Symbols, C96Em -3045-BAD5-F6E51045D396.symbole, D4967AA3-8FB007124F8144AF8F4B.symbols, D813B314-ADR -8F7D-C49A36CD5C65.symboles]

Une fois les problèmes corrigés, vous pouvez utiliser Xcode ou Application Loader pour télécharger un nouveau fichier binaire vers iTunes Connect.

Cordialement,

L'équipe App Store

Je suppose que cela n’a vraiment rien à voir avec moi ou mes applications ... et qu’il s’agit simplement d’un caprice du premier jour Swift? Les deux applications sont encore en attente de "En attente" pour approbation "mode. Je ne peux certainement pas penser à quoi que ce soit que je puisse changer pour faire disparaître ce qu'ils ont dit! Toute autre personne soumet encore une Swift et obtenez cette réponse? Pensez que je devrais simplement ignorer et attendre pour voir ce qui se passe?

136
Jim Barber

Cela se produit si vous incluez les informations de débogage de vos bibliothèques dans l'archive de projet, mais n'incluez pas les fichiers binaires. Ouvrez une fenêtre d’agenda avec votre projet. Dans le menu du bouton droit, sélectionnez "Afficher dans le Finder". Utilisez à nouveau le bouton droit de la souris sur le fichier d’archive du projet pour voir le contenu du paquet. Dans le dossier dSYMs, vous pouvez trouver un lot de fichiers. Si vous exécutez commande de console sur ces fichiers, vous obtiendrez une liste de chaînes UUID:

dwarfdump -u MyFile.dSYM

Je suis sûr que vous trouverez des UUID dans le courrier électronique d'Apple.

Pour éviter cet avertissement, vous devez inclure pour archiver uniquement le fichier dSYM de votre application, mais pas les bibliothèques. Pour cela, vous devez modifier la configuration des bibliothèques afin de ne pas générer le fichier dSYM. Il suffit de chercher "format d’information de débogage" dans la configuration et de le changer de DWARF with dSYM File à DWARF seulement. Sur la capture d'écran, vous trouverez un exemple du framework iOS Stripe.

enter image description here

71
Mikhail Grebionkin

Si vous avez rencontré ce problème lors de l'utilisation de Cocoapods, ajoutez ceci à votre fichier 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

Il définira le format des informations de débogage sur DWARF uniquement pour toutes vos cibles Pod (et non pour la cible principale de l'application).

45
wzbozon

Si vous utilisez des pods et que votre application utilise uniquement arm64 (il n'y a que arm64 dans le fichier info.plist de votre projet)

<key>UIRequiredDeviceCapabilities</key>
<array>
    <string>arm64</string>
</array>

vous pouvez essayer de suivre le script dans Podfile pour résoudre ce problème.

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

ET

définir tous les objectifs de vos projets (pas les objectifs dans les pods) sur arm64 uniquement

enter image description here

ref: https://github.com/CocoaPods/CocoaPods/issues/7111

10
Jerry Chen

J'ai ce problème en raison de l'architecture valide du projet arm64 où les cibles de cabossons ont une architecture valide arm64, armv7 et armv7s.

Pour vérifier quelle cible a quelle architecture valide, suivez les étapes suivantes

  1. Dans Xcode -> Fenêtre -> Organiseur
  2. Sélectionner l'archive et révéler dans le Finder
  3. Sur le fichier . Xcarchive, Afficher le contenu du package
  4. Ouvrez le terminal et indiquez le chemin du dossier dSYMs.

  5. Entrez la commande dwarfdump --uuid * et il affichera la liste des UUID avec des architectures valides.

L'UUID correspondra à l'email d'avertissement d'Apple

Le projet principal et la cible de cacao supposent avoir la même architecture valide. Ce faisant, cela résoudra le problème.

8
miOS

Pour moi tout était très simple. J'ai eu le même problème et je ne savais pas quoi faire pendant une semaine.

Une fois que vous avez soumis une application archieved, le certificat de distribution s'affiche dans une petite fenêtre contextuelle. Il y a une case à cocher après, vous devriez la décocher. Après cela, vous le soumettrez et recevrez un courrier électronique à propos des fichiers de symboles. MAIS ce n'est pas un problème. C'est juste un avertissement mais pas une erreur! Si vous décochez cette case, votre application sera envoyée correctement. J'espère que cela peut aider

Capture d'écran de la case à cocher et de la fenêtre contextuelle:

6
lenden

A travaillé pour moi en activant le bitcode - il était déjà désactivé

Activer Bitcode - Oui

enter image description here

1
Tarun Seera

Le même problème a-t-il été résolu en ayant le même "General" => "Deployment Info" => "Deployment target" pour toutes mes cibles.

0
ARR

Le problème pour moi était une ligne dans mon build.xcconfig fichier. Je devais enlever

IPHONEOS_DEPLOYMENT_TARGET = 11.0

qui fixait le projet à ne construire que pour arm64 (et non pour arm7). Suivre les étapes par @miOS Je pouvais voir que le projet de modules était en construction pour les deux.

0
Frank

Dans Xcode, dans les paramètres de construction, recherchez "Supprimer les symboles de débogage lors de la copie" (COPY_PHASE_STRIP). Lorsque cette option est activée, les symboles de débogage sont omis de votre .app et placés dans un fichier .dSYM. Sinon, votre .app contient ces symboles. (Par défaut, les symboles de débogage sont supprimés des versions de version pour des raisons d’obscurcissement. Vous ne devriez probablement pas modifier ce paramètre pour la configuration de la version.)

Assurez-vous de cocher cette option dans le projet Configurer les paramètres

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

0
Sanad Barjawi