2017-03-23 1 views
3

Mise à jour XCode Version: 8.2 iOS cible: 9Le faisceau à 'my_app.app/ResearchKit/ResearchKit/Info.plist' ne contient pas un exécutable paquet

Espérons que certains peuvent me signaler que Ce n'est pas un bug. Très simplement j'ai tiré la dernière version stable de researckKit, et j'ai déposé le fichier .xcodeproj dans mon nouveau projet iOS, ajouté le binaire intégré. J'ai créé quelques étapes qui semblent bien dans le simulateur. Mon application se construit très bien et même l'archive valide OK. Ajouter à l'App Store est très bien, mais je reçois des e-mails à partir de l'App Store avec 6 entrées tous sont quasiment identiques, pour 6 différents Info.plist fichiers dans le cadre de ReserachKit:

Unexpected CFBundleExecutable Key - The bundle at 'my_app.app/ResearchKit/ResearchKit/Info.plist' does not contain a bundle executable. If this bundle intentionally does not contain an executable, consider removing the CFBundleExecutable key from its Info.plist and using a CFBundlePackageType of BNDL. If this bundle is part of a third-party framework, consider contacting the developer of the framework for an update to address this issue.

j'ai trouvé assez few answers on Stack Overflow, Beaucoup de personnes acceptent de faire ce qui a été suggéré dans le message d'erreur: il suffit de retirer la clé CFBundleExecutable des fichiers .plist. J'ai essayé, mais mon archive validera même pas avec l'erreur suivante:

iTunes Store operation failed. Invalid Bundle Structure - The binary file 'my_app.app/Frameworks/ResearchKit.framework/ResearchKit' is not permitted. Your app can’t contain standalone executables or libraries, other than the CFBundleExecutable of supported bundles. Refer to the Bundle Programming Guide at https://developer.apple.com/go/?id=bundle-structure for information on the iOS app bundle structure.

** Mise à jour **

Accordé J'ai tiré une nouvelle version du cadre de ResearchKit de GitHub pour ce projet. Donc, je viens d'essayer une copie d'une version de ResearchKit d'un autre projet Xcode que j'ai déployé avec succès sur l'App Store récemment, je suppose que si cela a fonctionné pour cette application, il devrait passer par cette application. Mais hélas, j'obtiens la même erreur d'email de l'App Store au sujet de la clé CFBundleExecutable inattendue.

Encore une fois c'est un cadre libre soutenu par la pomme. Il y a des instructions simples pour l'utiliser sur la page github que j'ai suivie. Je l'ai utilisé auparavant et soumis une application avec ce cadre récemment, qui n'a eu aucun problème et est actuellement actif dans Test Flight Beta Testing. J'ai également filed an issue on the GitHub project page.

Répondre

0

J'ai contacté le support technique Apple et ils m'ont aidé à résoudre le problème. Comme je l'avais suspecté, il n'était PAS nécessaire de modifier le framework ResearchKit de quelque façon que ce soit pour que cela fonctionne correctement. Pour moi, le problème était que je copiais tout le code source, les cas de test, les projets Xcode et le reste de ResearchKit dans l'application.

Je dois avoir fait cela à un stade précoce et ne s'est pas rendu compte. Ce qui m'a aidé était d'aller dans l'onglet Build Phases dans XCode et de regarder dans les différentes sections. Mon erreur était que j'avais le framework de kit de recherche dans les sections: Liaison binaire avec des bibliothèques et Ressources de regroupement de copies. J'avais besoin de les enlever.

La configuration correcte, que vous obtenez en faisant glisser le fichier xcodeproj au projet et intégrer le binaire va simplement ajouter en ligne aux dépendances cibles et Intégrer Cadres de sections Phases Build.

Voici une capture d'écran de ma configuration corrigée: enter image description here

0

J'ai rencontré ce problème comme le vôtre, et je l'ai fixé par:

  • Supprimer le fichier Executable dans ResearchKit
  • Trouver info.plist à ResearchKit, faites:
    suppression info.plist dans ResearchKit. Ou vous pouvez ajouter la version Bundle, l'identifiant Bundle, les versions Bundle dans ce info.plist, ils devraient être les mêmes que vos paramètres dans votre propre info.plist
  • check Target - Info - Types d'URL, vérifiez s'il y a un identifiant illégal