Clave CFBundleExecutable inesperada


98

Después de pasar un tiempo buscando en Google, algo me dice que el problema es nuevo.

Tuvimos un proyecto completamente funcional que soportaba iOS7-8. Por supuesto, se envió con éxito varias veces a AppStore.

Usamos pods, mucho seguimiento y monitoreo, como GA e Instabug.

Ahora decidimos enviar una versión de la aplicación construida en Xcode 7 en iOS 9 a TestFlight.

Deshabilitamos el código de bits, ya que muchos pods, como Flurry y otras bibliotecas precompiladas, no lo incluyen.

La compilación fue exitosa, después del envío a iTunesConnect obtenemos esto: ingrese la descripción de la imagen aquí

Tuvimos lo mismo para la biblioteca GoogleAppIndexing (en pods también), pero lo eliminamos, solo para que funcione. Ahora - Instabug. Está yendo demasiado lejos, así que estoy tratando de entender qué está sucediendo en iOS 9 y cuáles son los cambios que hicieron que un proyecto funcionara completamente para comenzar a lanzar tales errores.

¡Cualquier pensamiento e idea son bienvenidos! Comparta su experiencia, y si me perdí algo, con mucho gusto compartiré mis pasos.


2
¿Has resuelto este problema? También estoy enfrentando este problema, pero es GoogleMaps.bundle ...
Johnny

1
No aún no. Parece que es un problema genérico.
Dumoko

Esto es realmente molesto :(, pregunté en el foro de desarrolladores de Apple, vea si alguien más tiene este problema. Forums.developer.apple.com/message/42851#42851
Johnny

También estamos viendo esto en una nueva integración con Startapp. También iOS 9 y Xcode 7 beta 5.
Trey Bean

2
Moataz de Instabug aquí. ¿Puedes reemplazar el Instabug.bundle que tienes con este dropbox.com/s/37zwhaqzatfnz3n/Instabug.bundle.zip?dl=0 , déjame saber cómo va
Moataz Soliman

Respuestas:


112

Encontré el mismo problema hoy con el mismo mensaje de error exacto al intentar enviar nuestra aplicación (usando Xcode 7 beta 5) pero en lugar del instabug.bundlebit, fue para mí TencentOpenApi_IOS_Bundle.bundle.

Resolví el problema encontrando el paquete nombrado en el proyecto y luego, tal como sugiere el mensaje de error, edité el Info.plistque está en el paquete eliminando la CFBundleExecutableclave. La CFBundlePackageTypellave ya estaba configurada, BNDLasí que no la toqué.

Después de estos cambios, hice Producto> Limpiar y luego no tuve problemas para enviar la aplicación a la tienda de aplicaciones.

Espero que esto ayude.


2
¡Gracias por compartir su experiencia! Entonces ES el problema del autor de la biblioteca. Pero nosotros, los desarrolladores, no deberíamos hacer estos trucos ... Por ejemplo, yo uso pods y un sistema CI. No puedo ir al CI y cada vez que se instala el módulo, hago este cambio manual. Pero al menos lo tendremos funcionando. Hasta ahora estoy buscando una solución genérica. Si no llega pronto, marcaré su respuesta como la que ayuda. ¡Gracias de nuevo!
Dumoko

No puedo hacer esto Si estoy intentando abrir info.plist dentro de pod en Xcode, me dijo que el archivo está bloqueado y los cambios no se guardarán (y no lo hace). Si utilizo un editor de texto externo, puedo ver que el contenido del archivo plist está codificado de alguna manera, no es un texto sin formato.
Mike Keskinov

@MikeKeskinov, ¿podría ser útil este enlace: [ apple.stackexchange.com/questions/68646/… ? Sugiere encontrar el info.plist en el Finder y editar los permisos del archivo para permitirle editarlo en Xcode.
Sleiman

Yo también tuve un problema similar e informé a Apple. Tus pasos son absolutamente correctos según lo sugerido por Apple. bugreport.apple.com/problem/viewproblem
Avinash

Escribí un script de shell para eliminar esto como solución. Agrega esto como un script de ejecución durante las fases de compilación de su proyecto: gist.github.com/brightredchilli/ca63430518f0daa4dfa9
Ying

52

Encontré esto AviarySDKen Xcode 7 GM, mientras lo enviaba a la App Store.

Primero verificaría si está en la última versión de su biblioteca; es posible que el proveedor ya lo haya solucionado. Sin embargo, si todavía se enfrenta a este problema, como describe Sleiman, debe eliminar la CFBundleExecutableclave del archivo plist de la biblioteca infractora.

Cmd + Shift + O y escriba "Info.plist", luego puede encontrar el archivo apropiado:

ingrese la descripción de la imagen aquí

Una vez que edite el plist, es posible que vea nombres descriptivos (en lugar de CFBundleExecutabley otras claves. No pude editar este archivo en un editor externo, así que tuve que cambiar para ver las claves / valores sin procesar haciendo clic derecho en la lista:

ingrese la descripción de la imagen aquí

Ahora puede ver la CFBundleExecutableclave (que tiene una descripción de "Archivo ejecutable") que puede eliminar.

Para AviarySDK hice esto dos veces, una por cada Info.plistvista en la imagen de arriba, y luego pude enviarla con éxito.


¿Sabes cuáles son los efectos secundarios de esto? Tengo el mismo problema con el paquete Polljoy. ¿Crees que la entrada está en plist erróneamente?
Stoff81

1
"Xcode agrega automáticamente esta clave al archivo de lista de propiedades de información de los proyectos apropiados". Lamento no poder decirte los efectos secundarios, sin embargo, sospecho que se debe al uso de una biblioteca más antigua que no se ha distribuido con soporte para Frameworks, y luego Xcode intenta tratarlo de la misma manera que uno que tiene soporte. para Frameworks.
Adam S

Desafortunadamente para algunas bibliotecas (es decir, AppIndexing, etc.), el contenido del archivo plist parece estar codificado. Le permite ver pero no guarda ningún cambio. Al intentar abrir un archivo fuera de XCode, está claro que el archivo está encriptado (sin texto sin formato).
Mike Keskinov

esto funcionó para el inicio de sesión de Google y me permitió subir a la tienda de aplicaciones
James

2
Acabo de enunciar el mismo problema con Aviary y Cocoapods 0.39. La solución sugerida parece funcionar. Parece que podría ser hora de morder la bala y cambiar a AdobeCreativeSDK :(
Keab42

11

Resuelvo este problema de la siguiente manera: Tenemos que eliminar todos los "Archivos ejecutables" de los siguientes paquetes:

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

Asegúrese de que el "Código de tipo de paquete" sea igual a BNDL

Importante: No edite nada en el info.plist del proyecto principal.

Pantallas adjuntas como deberían ser su "info.plist" enumeradas encima de cada paquete.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí



5

Si la compilación se envía a través de Menos de (<) Xcode 7.0, entonces se enviará y también lo he resuelto de la siguiente manera para Xcode 7 :

Buscado info.plisten los proyectos Project Navigator como en la siguiente imagen:

ingrese la descripción de la imagen aquí

Ahora abrí estos info.plistarchivos uno por uno y borré la BundleExecutableclave EXCEPTO la del objetivoinfo.plist

Ahora se limpió el proyecto y se logró y se envía sin problema.


4

Tuve el mismo problema en la biblioteca de Google Maps, eliminé la CFBundleExecutableclave dentro GMSCoreResources.bundle(Info.plist , eliminé la ), que es el proyecto limpio info.plist del SDK y lo cargué en la tienda de aplicaciones.

Programación feliz.

ingrese la descripción de la imagen aquí


1

Simplemente verifique su Configuración de compilación => Habilitar código de bits y configúrelo como NO


0

Una nota adicional: a veces, si tiene destinos adicionales, habrá propiedades de destino que también pueden incluir la clave (en la sección "Información"), así que asegúrese de verificarlas y eliminarlas también. Descubrí esto con uno de los paquetes que estaba tratando de incluir. Eliminé la información del plist, pero seguí recibiendo el error.


0

Si ve este error en una biblioteca instalada a través de CocoaPods, intente un pod update <OFFENDING POD NAME>

Eso me resolvió el problema.


0

Acabo de agregar la palabra "BNDL" al lugar apropiado en el plist"Código de tipo de sistema operativo del creador del paquete".

Ese era el problema


0

En mi caso, simplemente arrastro y suelto el SDKarchivo de inclusión de la carpeta In info.plistque no está en uso. Eso me crea el problema. Así que busque el info.plistarchivo no utilizado y elimínelo del código fuente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.