Unerwarteter CFBundleExecutable-Schlüssel


98

Nachdem ich einige Zeit gegoogelt habe, sagt mir etwas, dass das Problem neu ist.

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

Wir verwenden Pods, viel Tracking und Monitoring, wie GA und Instabug.

Jetzt haben wir beschlossen, eine Version der auf Xcode 7 unter iOS 9 basierenden App bei TestFlight einzureichen.

Wir haben den Bitcode deaktiviert, da viele Pods wie Flurry und andere vorgefertigte Bibliotheken ihn nicht enthalten.

Der Build war erfolgreich. Nach der Übermittlung an iTunesConnect erhalten wir Folgendes: Geben Sie hier die Bildbeschreibung ein

Wir hatten dasselbe für die GoogleAppIndexing-Bibliothek (auch in Pods), aber wir haben es entfernt, damit es funktioniert. Jetzt - Instabug. Es geht zu weit, also versuche ich zu verstehen, was in iOS 9 vor sich geht und welche Änderungen ein voll funktionsfähiges Projekt dazu veranlasst haben, solche Fehler auszulösen.

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


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

1
Nein noch nicht. Sieht aus wie es ein generisches Problem ist.
Dumoko

Das ist wirklich ärgerlich :(, ich habe im Apple Developer Forum gefragt, ob jemand anderes dieses Problem hat. Forums.developer.apple.com/message/42851#42851
Johnny

Wir sehen dies auch in einer neuen Integration mit Startapp. Auch iOS 9 und Xcode 7 Beta 5.
Trey Bean

2
Moataz von Instabug hier. Können Sie das Instabug.bundle, das Sie haben, durch dieses eine dropbox.com/s/37zwhaqzatfnz3n/Instabug.bundle.zip?dl=0 ersetzen , lassen Sie mich wissen, wie es geht
Moataz Soliman

Antworten:


112

Ich habe heute das gleiche Problem mit der gleichen genauen Fehlermeldung instabug.bundlefestgestellt, als ich versucht habe, unsere App (mit Xcode 7 Beta 5) einzureichen, aber anstelle des Bits war es für mich TencentOpenApi_IOS_Bundle.bundle.

Ich habe das Problem gelöst, indem ich das benannte Bundle im Projekt gefunden und dann - wie in der Fehlermeldung angegeben - das Info.plistim Bundle enthaltene bearbeitet habe , indem ich den CFBundleExecutableSchlüssel entfernt habe. Der CFBundlePackageTypeSchlüssel war bereits eingestellt, BNDLalso habe ich ihn nicht berührt.

Nach diesen Änderungen habe ich Produkt> Reinigen ausgeführt und hatte dann kein Problem damit, 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 diese manuelle Änderung vornehmen. Aber zumindest wird es funktionieren. Bisher suche ich nach einer generischen Lösung. Wenn es nicht bald kommt, werde ich Ihre Antwort als die markieren, die hilft. Danke nochmal!
Dumoko

Ich kann das nicht machen Wenn ich versuche, info.plist in pod in Xcode zu öffnen, wurde mir mitgeteilt, dass die Datei gesperrt ist und Änderungen nicht gespeichert werden (und dies auch nicht). Wenn ich einen externen Texteditor verwende, kann ich sehen, dass der Inhalt der Plist-Datei irgendwie codiert ist. Es handelt sich nicht um einfachen Text.
Mike Keskinov

@ MikeKeskinov, könnte dieser Link hilfreich sein: [ apple.stackexchange.com/questions/68646/… ? Es wird empfohlen, die info.plist im Finder zu suchen und die Berechtigungen der Datei zu bearbeiten, damit Sie sie in Xcode bearbeiten können.
Sleiman

Ich hatte auch ein ähnliches Problem und meldete mich bei Apple. Ihre Schritte sind absolut korrekt, wie von Apple vorgeschlagen. bugreport.apple.com/problem/viewproblem
Avinash

Ich habe ein Shell-Skript geschrieben, um dies als Problemumgehung zu entfernen. Sie fügen dies als Ausführungsskript während der Erstellungsphasen
Ying

52

AviarySDKBeim Einreichen im App Store ist dies auf Xcode 7 GM gestoßen.

Zuerst würde ich prüfen, ob Sie sich auf der neuesten Version Ihrer Bibliothek befinden - der Anbieter hat dies möglicherweise bereits behoben. Wenn Sie jedoch weiterhin mit diesem Problem konfrontiert sind, müssen Sie, wie Sleiman beschreibt, den CFBundleExecutableSchlüssel aus der Plist-Datei für die fehlerhafte Bibliothek entfernen .

Cmd + Shift + O und geben Sie "Info.plist" ein, dann finden Sie die entsprechende Datei:

Geben Sie hier die Bildbeschreibung ein

Nach dem Bearbeiten der Liste werden möglicherweise beschreibende Namen angezeigt (anstelle der CFBundleExecutableund anderer Schlüssel. Ich konnte diese Datei nicht in einem externen Editor bearbeiten, daher musste ich wechseln, um Rohschlüssel / -werte anzuzeigen, indem ich mit der rechten Maustaste auf die Liste klickte:

Geben Sie hier die Bildbeschreibung ein

Sie können jetzt den CFBundleExecutableSchlüssel sehen (der eine Beschreibung der "ausführbaren Datei" enthält), den Sie löschen können.

Für AviarySDK habe ich dies zweimal gemacht, einmal für jedes Info.plistim obigen Bild gezeigte , und konnte dann erfolgreich einreichen.


Wissen Sie, was die Nebenwirkungen davon sind? Ich habe das gleiche Problem mit dem Polljoy-Bundle. Denken Sie, dass der Eintrag fälschlicherweise nur in der Liste steht?
Stoff81

1
"Xcode fügt diesen Schlüssel automatisch der Liste der Informationseigenschaftslisten der entsprechenden Projekte hinzu." Es tut mir leid, dass ich Ihnen die Nebenwirkungen nicht sagen kann, aber ich vermute, dass dies auf die Verwendung einer älteren Bibliothek zurückzuführen ist, die nicht mit Unterstützung für Frameworks verteilt wurde, und Xcode versucht, sie genauso zu behandeln wie eine Bibliothek, die Unterstützung bietet für Frameworks.
Adam S

Leider scheint für einige Bibliotheken (z. B. AppIndexing usw.) der Inhalt der Plist-Datei geschrieben zu sein. Es ermöglicht Ihnen das Anzeigen, speichert jedoch keine Änderungen. Wenn Sie versuchen, eine Datei außerhalb von XCode zu öffnen, ist klar, dass die Datei verschlüsselt ist (kein einfacher Text).
Mike Keskinov

Dies funktionierte für Google Signin und erlaubte mir, in den App Store hochzuladen
James

2
Ich bin gerade auf dasselbe Problem mit Aviary und Cocoapods 0.39 gestoßen. Ihr vorgeschlagener Fix scheint zu funktionieren. Es könnte an der Zeit sein, in die Kugel zu beißen und zu AdobeCreativeSDK zu wechseln :(
Keab42

11

Ich löse dieses Problem wie folgt: Wir müssen alle "ausführbaren Dateien" der folgenden Pakete entfernen:

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

Stellen Sie sicher, dass "Bundle-Typcode" gleich BNDL ist

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

Angehängte Bildschirme, da sie seine "info.plist" sein sollten, die über jedem Paket aufgeführt ist.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein



5

Wenn der Build über Less als (<) Xcode 7.0 gesendet wird, wird er gesendet, und ich habe ihn auch auf folgende Weise für Xcode 7 gelöst :

Gesucht info.plistim Projektprojektnavigator wie folgt:

Geben Sie hier die Bildbeschreibung ein

Öffnen Sie nun diese info.plistDateien nacheinander und löschen Sie den BundleExecutableSchlüssel mit Ausnahme des Zielsinfo.plist

Jetzt bereinigt das Projekt und erreicht und es wird ohne Probleme eingereicht.


4

Ich hatte das gleiche Problem in der Google Maps-Bibliothek. Ich habe den CFBundleExecutableSchlüssel in GMSCoreResources.bundle( Info.plist) entfernt, dem sauberen Projekt info.plist des SDK, und in den Appstore hochgeladen.

Viel Spaß beim Programmieren.

Geben Sie hier die Bildbeschreibung ein


1

Überprüfen Sie einfach Ihre Build-Einstellungen => Bitcode aktivieren und setzen Sie NO


0

Ein zusätzlicher Hinweis: Wenn Sie zusätzliche Ziele haben, gibt es manchmal Zieleigenschaften, die möglicherweise auch den Schlüssel enthalten (im Abschnitt "Info"). Überprüfen Sie diese also unbedingt und entfernen Sie ihn auch von dort. Ich entdeckte dies mit einem der Bundles, die ich einschließen wollte. Ich habe die Informationen aus der Liste gelöscht, aber immer wieder den Fehler erhalten.


0

Wenn dieser Fehler in einer über CocoaPods installierten Bibliothek angezeigt wird, versuchen Sie a pod update <OFFENDING POD NAME>

Das hat das Problem für mich gelöst.


0

Ich habe gerade das Wort "BNDL" an der entsprechenden Stelle im plist"Bundle Creator OS Type Code" hinzugefügt .

Das war das Problem


0

In meinem Fall ziehe ich einfach die SDKIn-Ordner-Include- info.plistDatei, die nicht verwendet wird. Das schafft das Problem für mich. Suchen Sie also die nicht verwendete info.plistDatei und löschen Sie sie aus dem Quellcode.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.