2015-08-19 9 views
90

Nach einiger Zeit googeln, etwas sagt mir, dass das Problem neu ist.Unerwarteter CFBundleExecutable Schlüssel

Wir hatten ein voll funktionsfähiges Projekt, das iOS7-8 unterstützt. Natürlich wurde es mehrfach erfolgreich im AppStore eingereicht.

Wir verwenden Pods, viele Tracking und Überwachung, wie GA und Instabug.

Jetzt haben wir uns entschieden, eine Version der App, die auf Xcode 7 auf iOS 9 gebaut wurde, an TestFlight zu senden.

Wir deaktiviert Bitcode, da viele Pods, wie Flurry und andere vorgebaute Bibliotheken es nicht enthält.

Der Build erfolgreich war, nach der Unterwerfung unter iTunesConnect wir bekommen dies: enter image description here

Wir gleichen hatte Bibliothek für GoogleAppIndexing (in Schoten auch), aber wir entfernt haben, es funktioniert einfach zu machen. Jetzt - Instabug. Es läuft zu weit, also versuche ich zu verstehen, was in iOS 9 vor sich geht und welche Änderungen ein voll funktionsfähiges Projekt dazu gebracht haben, solche Fehler zu erzeugen.

Alle Gedanken und Ideen sind willkommen! Bitte teilen Sie Ihre Erfahrung, und wenn ich etwas verpasst habe, teile ich gerne meine Schritte.

+1

Haben Sie dieses Problem gelöst? Ich stehe auch vor diesem Problem, aber es ist GoogleMaps.bundle ... – Johnny

+1

Nein, noch nicht. Sieht so aus, als wäre es ein generisches Problem. – Dumoko

+0

Das ist wirklich nervig :(, Ich habe auf dem Apple Developer Forum gefragt, ob jemand anderes dieses Problem hat. Https://forums.developer.apple.com/message/42851#42851 – Johnny

Antwort

106

traf ich das gleiche Problem heute mit der gleichen Botschaft genauen Fehler bei dem Versuch, unsere App (mit Xcode 7 Beta 5), ​​aber anstelle dem instabug.bundle Bit vorzulegen, war es für mich TencentOpenApi_IOS_Bundle.bundle.

Ich löste das Problem, indem die genannten Bündel in dem Projekt dann festgestellt wird - ebenso wie die Fehlermeldung schon sagt - bearbeiten die Info.plist die durch Entfernen der CFBundleExecutable Schlüssel in dem Bündel ist. Der Schlüssel CFBundlePackageType war bereits auf BNDL eingestellt, also habe ich ihn nicht berührt.

Nach diesen Änderungen habe ich Product> Clean und dann hatte ich kein Problem, die App an den App Store zu senden.

Ich hoffe, das hilft.

+2

Vielen Dank für Ihre Erfahrungen! Es ist also das Problem des Bibliotheksautors. Aber wir, Entwickler, sollten diese Tricks nicht machen ... Zum Beispiel verwende ich Pods und ein CI-System. Ich kann nicht zum CI gehen und jedes Mal nach der Pod-Installation dieses Handbuch ändern. Aber zumindest werden wir es funktionieren lassen. Bis jetzt suche ich nach einer generischen Lösung. Wenn es nicht bald kommt, werde ich deine Antwort als die, die hilft, markieren. Danke nochmal! – Dumoko

+0

Ich kann das nicht tun. Wenn ich versuche, info.plist innerhalb des Pods in Xcode zu öffnen, wurde mir mitgeteilt, dass die Datei gesperrt ist und die Änderungen nicht gespeichert werden (und das nicht). Wenn ich einen externen Texteditor verwende, kann ich sehen, dass der Inhalt der PLIST-Datei irgendwie codiert ist, es ist kein einfacher Text. –

+0

@MikeKeskinov, könnte dieser Link hilfreich sein: [http://apple.stackexchange.com/questions/68646/how-do-i-unlock-a-plist-file-so-that-i-can-change-it ]? Es schlägt vor, die Datei info.plist im Finder zu finden und die Berechtigungen der Datei zu bearbeiten, damit Sie sie in Xcode bearbeiten können. – Sleiman

50

Dies wurde mit AviarySDK auf Xcode 7 GM, beim Einreichen in den App Store.

Zuerst würde ich überprüfen, ob Sie auf der neuesten Version Ihrer Bibliothek sind - der Anbieter hat dies möglicherweise bereits behoben. Wenn Sie jedoch weiterhin mit diesem Problem konfrontiert sind, müssen Sie, wie es Sleiman beschreibt, den Schlüssel CFBundleExecutable aus der PLIST-Datei für die betreffende Bibliothek entfernen.

Cmd + Shift + O und Typ "Info.plist" können Sie dann die entsprechende Datei finden:

enter image description here

Sobald die plist bearbeiten, können Sie beschreibende Namen zu sehen sein (statt der CFBundleExecutable . und andere Tasten ich konnte nicht diese Datei in einem externen Editor bearbeiten, also musste ich wechsle rohe Schlüssel/Wert durch einen rechts~~POS=TRUNC auf der Liste anzuzeigen:

enter image description here

Sie kann jetzt den Schlüssel CFBundleExecutable (der eine Beschreibung von "ausführbare Datei" hat) sehen, den Sie löschen können.

Für AviarySDK habe ich dies zweimal gemacht, einmal für jede Info.plist im obigen Bild gesehen, und war dann in der Lage, erfolgreich einzureichen.

+0

Weißt du, was die Nebenwirkungen davon sind? Ich habe das gleiche Problem mit dem Polljoy-Bundle Denken Sie, dass der Eintrag irrtümlicherweise nur in der Pliste vorhanden ist? – Stoff81

+1

["Xcode fügt diesen Schlüssel automatisch zur Informationseigenschaftslistendatei der entsprechenden Projekte hinzu."] (https://developer.apple.com/library/ios/Dokumentation/Allgemein/Referenz/InfoPl KeyReference/Articles/CoreFoundationKeys.html # // apple_ref/doc/uid/20001431-101909) Es tut mir leid, ich kann Ihnen die Nebenwirkungen nicht sagen, aber ich vermute, dass es wegen der Verwendung einer älteren Bibliothek, die nicht verteilt wurde, ist mit Unterstützung für Frameworks, und dann versucht Xcode, dasselbe wie ein zu behandeln, das Unterstützung für Frameworks hat. –

+0

Leider scheint bei einigen Bibliotheken (z. B. AppIndexing usw.) der Inhalt der PLIST-Datei verschlüsselt zu sein. Es erlaubt Ihnen zu sehen, aber speichert keine Änderungen. Wenn Sie Dateien außerhalb von XCode öffnen, ist es klar, dass die Datei verschlüsselt ist (kein einfacher Text). –

5

Wenn die Build vorgelegt durch Weniger als (<) Xcode 7.0 dann wird es eingereicht werden und auch habe ich es durch folgende Art und Weise für Xcode gelöst 7:

werden nach info.plist in den Projekten Project Navigator als wie folgendes Bild:

enter image description here

Jetzt öffnete diese info.plist Datei s eins nach dem anderen und löschte den BundleExecutable Schlüssel mit Ausnahme der info.plist

nun das Projekt gereinigt Ziel und erreicht, und es ist dabei kein Thema vorgelegt.

11

ich dieses Problem lösen, wie folgt: Wir haben alle "Ausführbare Dateien" der folgenden Pakete zu entfernen:

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

Stellen Sie sicher, dass "Bundle type code" gleich ist. BNDL

Wichtig: Bearbeiten Sie nichts in der info.plist des Hauptprojekts.

Angehängte Bildschirme, wie sie sein sollten "info.plist" über jedem Paket aufgeführt.

enter image description here

enter image description here

enter image description here

0

Eine weitere Anmerkung: manchmal, wenn Sie zusätzliche Ziele wird es Zieleigenschaften, die auch den Schlüssel enthalten können (in der "Info" Abschnitt), so Achte darauf, diese zu überprüfen und von dort auch zu entfernen. Ich entdeckte das mit einem der Bündel, die ich zu integrieren versuchte. Ich löschte die Informationen aus dem Plist, aber immer wieder den Fehler.

0

Wenn Sie diese Fehler sind zu sehen, aus einer Bibliothek über CocoaPods installiert ist, versucht ein pod update <OFFENDING POD NAME>

, dass das Problem für mich gelöst.

8

Hier ist, was für mich gearbeitet

  1. Apfel-Umschalt-F, suchen Sie nach CFBundleExecutable
  2. jedes außer "PADS" klicken oder Ihr Hauptziel
  3. es löschen (Löschtaste)

enter image description here

+0

Kannst du mir dabei helfen: http://stackoverflow.com/questions/39512387/app- processing-error-unexpected-cfbundleexecutable-key – NaXir

4

hatte ich das gleiche Problem in Google maps-Bibliothek ientferntSchlüssel innerhalb GMSCoreResources.bundle (Info.plist), die SDKs inf.plist sauberes Projekt ist und in Appstore hochladen.

Glückliche Programmierung.

enter image description here

1

einfach Ihre Build-Einstellungen prüfen => Aktivieren Bitcode, und setzen Sie ihn NO