program developer desarrollador cuenta apple app ios swift xcode cocoapods bundle-identifier

developer - Xcode intenta hacer coincidir la ID del paquete de marcos al cargar la aplicación iOS en App Store



itunes developer (7)

Después de 4 meses de desarrollar mi primera aplicación iOS, es hora de enviarla a la App Store . Creé la aplicación en iTunes Connect , completé todos los detalles, configuré la Bundle ID correcta tanto en Connect como en Xcode . Sin embargo, he luchado los últimos 3 días tratando de resolver este problema extraño. Parece que xcode está intentando cargar los frameworks de Cocoapods , no mi aplicación principal.

Después de archivar, fui a Window > Organizer > Validate... Veo la siguiente pantalla:

El error:

(Para los usuarios de Google: no se encontraron registros de aplicación adecuados. Verifique que su identificador de paquete '' org.cocoapods.Alamofire '' sea correcto).

El mensaje de error indica que está intentando hacer coincidir una Bundle ID según el nombre de un marco, no mi propio paquete (por ejemplo, com.organization.AppName ). No puedo encontrar respuestas en ningún lado. Intenté hacer lo siguiente en mi Podfile (que tiene use_frameworks!), Así como mis diferentes combinaciones de conf, pero no tuve éxito.

post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings[''EXPANDED_CODE_SIGN_IDENTITY''] = "" config.build_settings[''CODE_SIGNING_REQUIRED''] = "NO" config.build_settings[''CODE_SIGNING_ALLOWED''] = "NO" end end end

Preguntas:

  • ¿Los pasos que estoy haciendo son correctos?
  • ¿Por qué Xcode intenta hacer coincidir framework''s bundle id un framework''s bundle id lugar de solo mi aplicación principal?
  • ¿Cómo puedo superar este problema para finalmente enviar mi aplicación?

EDIT 1: pude superar este problema, pero eso causó otro problema más tarde, así que todavía no tengo una solución. Básicamente, Alamofire Pod (de Cocoapods) tiene un ID de paquete com.xxx.Alamofire . Lo cambié a com.xxx.myAppName . Con eso, pude enviarlo a la App Store, sin embargo no puedo instalar la aplicación en mi iPhone desde TestFlight debido al siguiente error:

4/22/16, 12:50:29 AM itunesstored[124]: [ApplicationWorkspace]: Failed to install application: com.xxx.myAppName; /var/mobile/Media/Downloads/5927832272594571027/-6969961974973998640; Error Domain=LaunchServicesError Code=0 "(null)" UserInfo={Error=DuplicateIdentifier, ErrorDescription=The parent bundle has the same identifier (com.xxx.myAppName) as sub-bundle at /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.IVHCuO/extracted/Payload/MyApp.app/Frameworks/Alamofire.framework}


Acabo de experimentar este problema con el siguiente error que se muestra al intentar cargar en la App Store.

La operación de la tienda iTunes falló.

No se encontraron registros de aplicación adecuados. Verifique la organización de su identificador de paquete. Cocodrilos .Alamofire ''es correcto

Nos encontramos con esto cuando intentamos cargar (mientras usábamos Cocoapods) y al no encontrar una solución, tomamos la acción drástica de eliminar Cocoapods de nuestro proyecto por completo y en su lugar agregamos manualmente cada pod como marco.

Y ...... ¡la carga a la App Store sigue fallando básicamente con el mismo error! 🤔

La operación de la tienda iTunes falló.

No se encontraron registros de aplicación adecuados. Verifique la organización de su identificador de paquete. Alamofire .Alamofire ''es correcto

Por lo tanto, parece que posiblemente sea un error relacionado con el uso del marco dentro de Xcode.

Al descubrir que esto no fue necesariamente causado por Cocoapods, decidimos seguir usando Cocoapods y surgieron los siguientes pasos para solucionarlo.

La solución:

Nuestro proyecto contiene 2 objetivos (ignorando objetivos de prueba de unidad, etc.). 1 para la aplicación (llamémosla MyApp ) y otra que contiene la capa de red y otra funcionalidad no específica de la aplicación (llamémosla MyAppKit ).

  1. Agregue CFBundlePackageType (también conocido como Bundle OS Type code ) a Info.plist de Info.plist y Info.plist en APPL .
  2. Asegúrese de que tanto el proyecto MyApp como el objetivo MyApp tengan la configuración de compilación Always Embed Swift Standard Libraires en Yes .
  3. Asegúrese de que el MyAppKit de destino tenga la configuración de compilación Always Embed Swift Standard Libraires en No

Todavía estoy investigando exactamente qué está pasando aquí, pero pensé que esto podría ser útil para cualquier persona que esté experimentando esto actualmente.


Después de bastante tiempo luchando con esto, pude hacerlo funcionar. Básicamente, solo Alamofire presentaba este tema. Esto es lo que hice:

  1. En el navegador , haga clic en Pods .
  2. En Objetivos , verá todos los marcos que usa su aplicación.
  3. Haga clic en Alamofire (o en el marco que está causando el problema).
  4. Editar el identificador de paquete . Si su aplicación Bundle Id es com.company.appName , escriba com.company.appName.Alamofire en ella.

Intenté com.company.appName para el marco, com.company.Alamofire , nada funcionó.


En mi caso tuve que eliminar la configuración del perfil de aprovisionamiento del subproyecto Pods


Funciona perfectamente para mí. Acabo de localizar Info.plist, haga clic con el botón derecho en "Código fuente" y cambié <key>CFBundlePackageType</key> a la cadena APPL

<key>CFBundlePackageType</key> <string>APPL</string>


Recibí este error exacto al intentar enviar la aplicación a iTunes Connect: "No se encontraron registros de aplicación adecuados. Verifique que su identificador de paquete ''org.cocoapods.Alamofire'' sea correcto".

Finalmente lo arreglé cambiando el código de tipo de sistema operativo del paquete a APPL .


Recientemente, también tuve el mismo problema mientras publico la aplicación utilizando cocoapods. Fue el proyecto Objective-C y ha estado integrando pods como frameworks dinámicos.

Esto ya se ha informado de error .

Así que recomiendo las siguientes 2 alternativas para solucionar este problema:

  • Utilice la biblioteca estática en lugar del marco dinámico. Para eso, puedes comentar # use_frameworks! línea en su archivo pod.

  • Si necesita usar framework, puede probar los siguientes pasos:

    1. Agregue su marco como binario incrustado en el destino de Xcode.

    2. En las fases de construcción de su objetivo, agregue un script de ejecución:

Ejemplo de guión:

# Stripping framework only for archive if [ "$ACTION" = "install" ]; then FRAMEWORK_NAME="Framework name" SCRIPT_FILE_NAME="strip-framework.sh" # Set working directory to product’s embedded frameworks cd "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/${FRAMEWORK_NAME}.framework" # Get architectures for current file ARCHS="$(lipo -info "${FRAMEWORK_NAME}" | rev | cut -d '':'' -f1 | rev)" for ARCH in $ARCHS; do if ! [[ "${VALID_ARCHS}" == *"$ARCH"* ]]; then # Strip non-valid architectures in-place lipo -remove "$ARCH" -output "$FRAMEWORK_NAME" "$FRAMEWORK_NAME" || exit 1 fi done echo "Framework was successfully stripped with unsupported architectures" fi # Removing script from framework folder if [ -f ${SCRIPT_FILE_NAME} ]; then rm -rf "${SCRIPT_FILE_NAME}" fi

Nota: ¡Reemplace el nombre de su marco en este script! Asegúrese de colocar este archivo de script llamado "strip-framework.sh" en el nivel superior del directorio del marco.

Marcos de terceros nunca firmados por los proveedores y su deber de los consumidores. Entonces, cuando archiva, firma sus marcos junto con su paquete de aplicaciones. Pero después de hacer eso, el cargador de aplicaciones considera su identificador de paquete como uno de los marcos. Es algo extraño todavía.

Después de 2 días trabajando alrededor, pude publicar mi aplicación finalmente.

Incluso si pudieras enviarlo haciendo esto complicado, nunca se instalará en los dispositivos.

Finalmente, obtuve una solución perfecta y descubrí la razón. Esto está sucediendo porque los marcos de terceros tienen algunos problemas. Por ejemplo, en mi caso, Quickblox framework nunca ha soportado el código de bits todavía. Así que tuve que deshabilitar totalmente el código de bits en la configuración de compilación para el objetivo principal y los marcos. Esto solucionará su problema seguro.

Por favor revise esta captura de pantalla: Espero que esto les ayude chicos. ¡Aclamaciones!


Si su apptitle tiene una barra inclinada "/", entonces xcode no pudo firmarlo y cree que estoy cargando el primer framework org.cocoapods. ***

Lo que hice - cambié barra a símbolo similar

(primera barra, la siguiente - otro símbolo de Unicode: ∕/)