Clé CFBundleExecutable inattendue


98

Après avoir passé du temps à chercher sur Google, quelque chose me dit que le problème est nouveau.

Nous avions un projet entièrement fonctionnel prenant en charge iOS7-8. Bien sûr, il a été soumis plusieurs fois avec succès à l'AppStore.

Nous utilisons des pods, beaucoup de suivi et de surveillance, comme GA et Instabug.

Nous avons maintenant décidé de soumettre une version de l'application basée sur Xcode 7 sur iOS 9 à TestFlight.

Nous avons désactivé le bitcode, car de nombreux pods, comme Flurry et d'autres bibliothèques prédéfinies, ne l'incluent pas.

La construction a réussi, après la soumission à iTunesConnect, nous obtenons ceci: entrez la description de l'image ici

Nous avions la même chose pour la bibliothèque GoogleAppIndexing (dans les pods aussi), mais nous l'avons supprimée, juste pour la faire fonctionner. Maintenant - Instabug. Cela va trop loin, alors j'essaie de comprendre ce qui se passe dans iOS 9 et quels sont les changements qui ont permis à un projet pleinement opérationnel de commencer à lancer de telles erreurs.

Toutes les pensées et idées sont les bienvenues! Veuillez partager votre expérience, et si j'ai manqué quelque chose, je partagerai volontiers mes étapes.


2
Avez-vous résolu ce problème? Je suis également confronté à ce problème, mais c'est GoogleMaps.bundle ...
Johnny

1
Non pas encore. On dirait que c'est un problème générique.
Dumoko

C'est vraiment ennuyeux :(, j'ai demandé sur le forum des développeurs Apple, voir si quelqu'un d'autre a eu ce problème. Forums.developer.apple.com/message/42851#42851
Johnny

Nous voyons cela aussi dans une nouvelle intégration avec Startapp. Aussi iOS 9 et Xcode 7 beta 5.
Trey Bean

2
Moataz d'Instabug ici. Pouvez-vous remplacer le Instabug.bundle que vous avez par celui-ci dropbox.com/s/37zwhaqzatfnz3n/Instabug.bundle.zip?dl=0 , laissez-moi savoir comment ça se passe
Moataz Soliman

Réponses:


112

J'ai rencontré le même problème aujourd'hui avec le même message d'erreur exact en essayant de soumettre notre application (en utilisant Xcode 7 beta 5) mais au lieu du instabug.bundlebit, c'était pour moi TencentOpenApi_IOS_Bundle.bundle.

J'ai résolu le problème en trouvant le bundle nommé dans le projet puis - comme le suggère le message d'erreur - édité le Info.plistqui se trouve dans le bundle en supprimant la CFBundleExecutableclé. La CFBundlePackageTypeclé était déjà réglée, BNDLdonc je n'y ai pas touché.

Après ces changements, j'ai fait Produit> Nettoyer et n'ai eu aucun problème à soumettre l'application à l'App Store.

J'espère que ça aide.


2
Merci de partager votre expérience! C'est donc le problème de l'auteur de la bibliothèque. Mais nous, développeurs, ne devrions pas faire ces astuces ... Par exemple, j'utilise des pods et un système CI. Je ne peux pas accéder au CI et à chaque fois après l'installation du pod, effectuez ce changement manuel. Mais au moins, nous le ferons fonctionner. Jusqu'à présent, je recherche une solution générique. Si cela ne vient pas bientôt, je marquerai votre réponse comme celle qui aide. Merci encore!
Dumoko

Je ne peux pas faire ça. Si j'essaie d'ouvrir info.plist dans le pod dans Xcode, cela m'a dit que le fichier était verrouillé et que les modifications ne seraient pas enregistrées (et ce n'est pas le cas). Si j'utilise un éditeur de texte externe, je peux voir que le contenu du fichier plist est en quelque sorte encodé, ce n'est pas un texte brut.
Mike Keskinov

@MikeKeskinov, ce lien pourrait-il être utile: [ apple.stackexchange.com/questions/68646/… ? Il suggère de trouver le fichier info.plist dans le Finder et de modifier les autorisations du fichier pour vous permettre de le modifier dans Xcode.
Sleiman le

J'ai aussi eu un problème similaire et je l'ai signalé à Apple. Vos étapes sont absolument correctes, comme suggéré par Apple. bugreport.apple.com/problem/viewproblem
Avinash

J'ai écrit un script shell pour supprimer cela comme solution de contournement. Vous ajoutez ceci en tant que script d'exécution pendant les phases de construction de votre projet: gist.github.com/brightredchilli/ca63430518f0daa4dfa9
Ying

52

J'ai rencontré cela avec AviarySDKsur Xcode 7 GM, lors de la soumission à l'App Store.

Tout d'abord, je vérifierais si vous utilisez la dernière version de votre bibliothèque - le fournisseur a peut-être déjà résolu ce problème. Cependant, si vous rencontrez toujours ce problème, comme Sleiman le décrit, vous devez supprimer la CFBundleExecutableclé du fichier plist de la bibliothèque incriminée.

Cmd + Shift + O et tapez "Info.plist", vous pouvez alors trouver le fichier approprié:

entrez la description de l'image ici

Une fois que vous avez édité le fichier plist, vous voyez peut-être des noms descriptifs (au lieu des CFBundleExecutableclés et d'autres. Je ne pouvais pas éditer ce fichier dans un éditeur externe, j'ai donc dû basculer pour afficher les clés / valeurs brutes en cliquant avec le bouton droit sur la liste:

entrez la description de l'image ici

Vous pouvez maintenant voir la CFBundleExecutableclé (qui a une description de "Fichier exécutable") que vous pouvez supprimer.

Pour AviarySDK, j'ai fait cela deux fois, une fois pour chaque Info.plistvu dans l'image ci-dessus, puis j'ai pu soumettre avec succès.


Savez-vous quels en sont les effets secondaires? J'ai le même problème avec le bundle Polljoy. Pensez-vous que l'entrée est juste dans le plist par erreur?
Stoff81

1
"Xcode ajoute automatiquement cette clé au fichier de liste de propriétés d'informations des projets appropriés." Je suis désolé de ne pas pouvoir vous dire les effets secondaires, mais je soupçonne que cela est dû à l'utilisation d'une bibliothèque plus ancienne qui n'a pas été distribuée avec la prise en charge de Frameworks, puis Xcode essaie de la traiter de la même manière que celle qui prend en charge pour Frameworks.
Adam S

Malheureusement pour certaines bibliothèques (par exemple AppIndexing, etc.), le contenu du fichier plist semble être écrit. Il vous permet de visualiser mais n'enregistre aucune modification. Lorsque vous essayez d'ouvrir un fichier en dehors de XCode, il est clair que le fichier est crypté (pas de texte brut).
Mike Keskinov

cela a fonctionné pour la connexion google et m'a permis de télécharger sur l'App Store
James

2
Je viens de rencontrer le même problème avec Aviary et Cocoapods 0.39. Votre solution suggérée semble fonctionner. On dirait qu'il serait peut-être temps de mordre la balle et de passer à AdobeCreativeSDK :(
Keab42

11

Je résous ce problème comme suit: Nous devons supprimer tous les "fichiers exécutables" des packages suivants:

  • GooglePlus.bundle
  • GPPCommonSharedResources.bundle
  • GPPShareboxSharedResources.bundle

Assurez-vous que "Code de type de bundle" est égal à BNDL

Important: ne modifiez rien dans le fichier info.plist du projet principal.

Écrans attachés comme ils devraient être son "info.plist" énumérés au-dessus de chaque paquet.

entrez la description de l'image ici

entrez la description de l'image ici

entrez la description de l'image ici



5

Si la construction est soumise via moins de (<) Xcode 7.0, elle sera soumise et je l'ai également résolue de la manière suivante pour Xcode 7 :

Recherche info.plistdans les projets Project Navigator comme l'image suivante:

entrez la description de l'image ici

Ouvrez maintenant ces info.plistfichiers un par un et supprimez la BundleExecutableclé SAUF la cibleinfo.plist

Maintenant nettoyé le projet et réalisé et il est soumis sans problème.


4

J'ai eu le même problème dans la bibliothèque Google Maps, j'ai supprimé la CFBundleExecutableclé à l'intérieur GMSCoreResources.bundle( Info.plist) qui est le projet de nettoyage info.plist du SDK et l'ai téléchargée sur l'Appstore.

Bonne programmation.

entrez la description de l'image ici


1

Vérifiez simplement vos paramètres de construction => Activer Bitcode et définissez-le NON


0

Une remarque supplémentaire: parfois, si vous avez des cibles supplémentaires, il y aura des propriétés de cible qui peuvent également inclure la clé (dans la section "Info"), alors assurez-vous de les vérifier et de les supprimer également. J'ai découvert cela avec l'un des bundles que j'essayais d'inclure. J'ai supprimé les informations du plist, mais j'ai continué à recevoir l'erreur.


0

Si vous voyez cette erreur à partir d'une bibliothèque installée via CocoaPods, essayez un pod update <OFFENDING POD NAME>

Cela a résolu le problème pour moi.


0

Je viens d'ajouter le mot "BNDL" à l'endroit approprié dans plist"Bundle creator OS Type code".

C'était le problème


0

Dans mon cas, je viens de glisser-déposer le SDKdossier In inclure le info.plistfichier qui n'est pas utilisé. Cela crée le problème pour moi. Recherchez donc le info.plistfichier inutilisé et supprimez-le du code source.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.