Chiave CFBundleExecutable imprevista


98

Dopo aver passato un po 'di tempo a cercare su Google, qualcosa mi dice che il problema è nuovo.

Avevamo un progetto completamente funzionante che supportava iOS7-8. Ovviamente è stato inviato più volte con successo ad AppStore.

Usiamo pod, molto tracciamento e monitoraggio, come GA e Instabug.

Ora abbiamo deciso di inviare una versione dell'app basata su Xcode 7 su iOS 9 a TestFlight.

Abbiamo disabilitato il bitcode, poiché molti pod, come Flurry e altre librerie predefinite, non lo includono.

La build ha avuto successo, dopo l'invio a iTunesConnect otteniamo questo: inserisci qui la descrizione dell'immagine

Avevamo lo stesso per la libreria GoogleAppIndexing (anche nei pod), ma l'abbiamo rimossa, solo per farlo funzionare. Adesso - Instabug. Sta andando troppo lontano, quindi sto cercando di capire cosa sta succedendo in iOS 9 e quali sono le modifiche che hanno reso un progetto completamente funzionante per iniziare a lanciare tali errori.

Tutti i pensieri e le idee sono i benvenuti! Per favore condividi la tua esperienza e se mi sono perso qualcosa, condividerò volentieri i miei passi.


2
Hai risolto questo problema? Anch'io sto affrontando questo problema, ma è GoogleMaps.bundle ...
Johnny

1
No, non ancora. Sembra che sia un problema generico.
Dumoko

Questo è davvero fastidioso :(, ho chiesto sul forum degli sviluppatori Apple, controlla se qualcun altro ha riscontrato
Johnny

Lo stiamo vedendo anche in una nuova integrazione con Startapp. Anche iOS 9 e Xcode 7 beta 5.
Trey Bean

2
Moataz di Instabug qui. Puoi sostituire Instabug.bundle che hai con questo dropbox.com/s/37zwhaqzatfnz3n/Instabug.bundle.zip?dl=0 , fammi sapere come va
Moataz Soliman

Risposte:


112

Oggi ho riscontrato lo stesso problema con lo stesso identico messaggio di errore durante il tentativo di inviare la nostra app (utilizzando Xcode 7 beta 5) ma invece del instabug.bundlebit, era per me TencentOpenApi_IOS_Bundle.bundle.

Ho risolto il problema trovando il bundle denominato nel progetto quindi - proprio come suggerisce il messaggio di errore - ho modificato quello Info.plistche si trova nel bundle rimuovendo la CFBundleExecutablechiave. La CFBundlePackageTypechiave era già impostata su BNDLquindi non l'ho toccata.

Dopo queste modifiche ho fatto Prodotto> Pulisci e non ho avuto problemi a inviare l'app all'App Store.

Spero che aiuti.


2
Grazie per aver condiviso la tua esperienza! Quindi è il problema dell'autore della libreria. Ma noi, sviluppatori, non dovremmo fare questi trucchi ... Ad esempio, io uso pod e un sistema CI. Non riesco ad andare al CI e ogni volta dopo l'installazione del pod eseguo questa modifica manuale. Ma almeno lo faremo funzionare. Finora sto cercando una soluzione generica. Se non arriva presto, la tua risposta sarà contrassegnata come quella che aiuta. Grazie ancora!
Dumoko

Non posso farlo. Se sto provando ad aprire info.plist all'interno di pod in Xcode, mi ha detto che il file è bloccato e le modifiche non verranno salvate (e non lo fa). Se utilizzo un editor di testo esterno, posso vedere il contenuto del file plist in qualche modo codificato, non è un testo normale.
Mike Keskinov

@MikeKeskinov, questo link potrebbe essere utile: [ apple.stackexchange.com/questions/68646/… ? Suggerisce di trovare info.plist nel Finder e di modificare le autorizzazioni del file per consentirti di modificarlo in Xcode.
Sleiman

Anch'io ho avuto un problema simile e l'ho segnalato ad Apple. I tuoi passaggi sono assolutamente corretti come suggerito da Apple. bugreport.apple.com/problem/viewproblem
Avinash

Ho scritto uno script di shell per rimuoverlo come soluzione alternativa. Lo aggiungi come script di esecuzione durante le fasi di creazione del tuo progetto: gist.github.com/brightredchilli/ca63430518f0daa4dfa9
Ying

52

Ho riscontrato questo problema con AviarySDKXcode 7 GM, durante l'invio all'App Store.

Per prima cosa controllerei per vedere se sei sulla versione più recente della tua libreria: il fornitore potrebbe aver già risolto il problema. Se tuttavia stai ancora affrontando questo problema, come descrive Sleiman, devi rimuovere la CFBundleExecutablechiave dal file plist per la libreria incriminata.

Cmd + Maiusc + O e digita "Info.plist", puoi quindi trovare il file appropriato:

inserisci qui la descrizione dell'immagine

Una volta modificato il plist, potresti vedere nomi descrittivi (invece di CFBundleExecutablee altre chiavi. Non ho potuto modificare questo file in un editor esterno, quindi ho dovuto passare alla visualizzazione di chiavi / valori non elaborati facendo clic con il pulsante destro del mouse sull'elenco:

inserisci qui la descrizione dell'immagine

Ora puoi vedere la CFBundleExecutablechiave (che ha una descrizione di "File eseguibile") che puoi eliminare.

Per AviarySDK l'ho fatto due volte, una per ciascuno Info.plistvisto nell'immagine sopra, e sono stato quindi in grado di inviare con successo.


Sai quali sono gli effetti collaterali di questo? Sto riscontrando lo stesso problema con il pacchetto Polljoy. Pensi che la voce sia solo nel plist erroneamente?
Stoff81

1
"Xcode aggiunge automaticamente questa chiave al file dell'elenco delle proprietà delle informazioni dei progetti appropriati." Mi dispiace non posso dirvi gli effetti collaterali, tuttavia ho il sospetto che sia dovuto all'utilizzo di una libreria vecchio che non è stato distribuito con il supporto per i quadri, e poi Xcode cerca di trattare lo stesso come uno che ha il supporto per Frameworks.
Adam S

Sfortunatamente per alcune librerie (es. AppIndexing ecc.) Il contenuto del file plist sembra essere codificato. Ti consente di visualizzare ma non salva alcuna modifica. Quando si tenta di aprire un file al di fuori di XCode, è chiaro che il file è crittografato (nessun testo normale).
Mike Keskinov

questo ha funzionato per l'accesso a Google e mi ha permesso di caricare su App Store
James

2
Ho appena riscontrato lo stesso problema con Aviary e Cocoapods 0.39. La tua correzione suggerita sembra funzionare. Sembra che potrebbe essere il momento di stringere i denti e passare ad AdobeCreativeSDK :(
Keab42

11

Risolvo questo problema come segue: Dobbiamo rimuovere tutti i "File eseguibili" dei seguenti pacchetti:

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

Assicurati che "Bundle type code" sia uguale a BNDL

Importante: non modificare nulla nel file info.plist del progetto principale.

Schermate allegate come dovrebbero essere il suo "info.plist" elencato sopra ogni pacchetto.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine



5

Se la build viene inviata tramite Meno di (<) Xcode 7.0 , verrà inviata e inoltre l'ho risolta seguendo il modo per Xcode 7 :

Ricerca info.plistnei progetti Project Navigator come nell'immagine seguente:

inserisci qui la descrizione dell'immagine

Ora apri questi info.plistfile uno per uno e cancella la BundleExecutablechiave TRANNE quella di destinazioneinfo.plist

Ora pulito il progetto e realizzato e viene inviato senza problemi.


4

Ho avuto lo stesso problema nella libreria di Google Maps, ho rimosso la CFBundleExecutablechiave all'interno GMSCoreResources.bundle( Info.plist) che è il progetto pulito info.plist dell'SDK e l'ho caricato su appstore.

Buona programmazione.

inserisci qui la descrizione dell'immagine


1

Basta controllare le impostazioni di build => Abilita Bitcode e impostarlo su NO


0

Una nota aggiuntiva: a volte, se hai target aggiuntivi, ci saranno proprietà target che potrebbero includere anche la chiave (nella sezione "Info"), quindi assicurati di controllare quelle e rimuoverla anche da lì. L'ho scoperto con uno dei pacchetti che stavo cercando di includere. Ho cancellato le informazioni dal plist, ma continuavo a ricevere l'errore.


0

Se visualizzi questo errore da una libreria installata tramite CocoaPods, prova un file pod update <OFFENDING POD NAME>

Questo ha risolto il problema per me.


0

Ho appena aggiunto la parola "BNDL" nella posizione appropriata in plist"Codice del tipo di sistema operativo del creatore di bundle".

Questo era il problema


0

Nel mio caso, trascino e rilascia il file di SDKinclusione della cartella In info.plistche non è in uso. Questo crea il problema per me. Quindi trova il info.plistfile inutilizzato ed eliminalo dal codice sorgente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.