tools from for additional ios xcode terminal xcodebuild

ios - from - xcodebuild no copia el archivo de.app



xcodebuild install (2)

Mi respuesta se consideraría una solución alternativa, pero resolvió el problema. No sé por qué no se copió el archivo, pero encontré una manera, así que no era importante.

Reemplace el segundo comando xcodebuild con esto, que utiliza xcrun:

/usr/bin/xcrun -sdk iphoneos PackageApplication -v /Path/To/Archive/name.xcarchive/Products/Applications/name.app -o /Path/To/Archive/DiplomatStaples.ipa --sign "identity" - -embed "provProfile"

Esto crea un IPA usando el xcarchive y luego vuelve a incrustar la identidad y el perfil de aprovisionamiento, por lo que aunque el mismo error que aparece arriba se imprima y se imprima, el doble inmersión con identidad de firma de código y perfil de aprovisionamiento lo hace insignificante . Ahora puedo instalar la aplicación en los dispositivos.

Para las mentes inquisitivas: La razón por la que no solo uso xcrun es porque incluso si especifico un perfil prov y una identidad de firma, xcrun usará el perfil incrustado y la identidad de firma en el proyecto en función de la configuración (Debug, AppStore , Release, etc.) que especifico. xcodebuild realmente firmará con los certs que yo le proporciono.

El objetivo de esta operación era eliminar la necesidad de aprovisionar certificados de perfil que el sistema de CI requería de las máquinas de desarrollador, lo que permitía probar la configuración de "AppStore" para que se firmara con certificados de distribución AdHoc, y permitir volver a firmar xcarchive más adelante con el los certificados de distribución de App Store reales.

Creé un archivo .xcarchive firmado utilizando el comando xcodebuild.

Dentro de .xcarchive hay un archivo .app. Dentro de .app hay un archivo llamado archived-expanded-entitlements.xcent. Este archivo es la clave de mi problema.

Ejecuto un comando xcodebuild diferente que crea un archivo .IPA desde .xcarchive.

La creación de IPA falla porque falta el archivo archived-expanded-entitlements.xcent. El caso es que xcodebuild está creando un directorio temporal donde se copia sobre mi archivo .app, y dentro de ESA archivo .app, no hay ningún archivo archivado-expand-entitlements.xcent.

Todos los otros archivos están ahí excepto este.

Los comandos que ejecuto están a continuación:

Esto crea el xcarchive:

xcodebuild -project diplomat.xcodeproj -scheme schemeName archive -archivePath /Path/To/Archive/name.xcarchive -configuration AppStore CODE_SIGN_IDENTITY="identity" PROVISIONING_PROFILE=provProfile

Esto crea el IPA:

xcodebuild -exportArchive -exportFormat IPA -archivePath /Path/To/Archive/name.xcarchive -exportPath /Path/To/Archive/name.ipa

A pesar de especificar la ubicación de .xcarchive, crea un directorio temporal y no incluye el archivo importante. Tenga en cuenta que el archivo archived-expanded-entitlements.xcent se crea durante el proceso .xcarchive (el primer comando que se ejecuta) y no se puede copiar en el directorio temporal durante la ejecución del segundo comando.

Este es el error exacto. Google y StackOverflow han arrojado errores similares, pero nada con este problema real.

Checking original app + /usr/bin/codesign --verify -vvvv /var/folders/sl/_wdkd56d5pb05snr559cmcww0000gn/T/D2133E2C-DC66-427C-A3C5-903A88DD0541- 42128-00007ED35037747A/name.app Program /usr/bin/codesign returned 1 : [/var/folders/sl/_wdkd56d5pb05snr559cmcww0000gn/T/D2133E2C-DC66-427C-A3C5-903A88DD0541-42128-00007ED35037747A/name.app: a sealed resource is missing or invalid file missing: /private/var/folders/sl/_wdkd56d5pb05snr559cmcww0000gn/T/D2133E2C-DC66-427C-A3C5-903A88DD0541-42128-00007ED35037747A/name.app/archived-expanded-entitlements.xcent ] Codesign check fails : /var/folders/sl/_wdkd56d5pb05snr559cmcww0000gn/T/D2133E2C-DC66-427C-A3C5-903A88DD0541-42128-00007ED35037747A/name.app: a sealed resource is missing or invalid file missing: /private/var/folders/sl/_wdkd56d5pb05snr559cmcww0000gn/T/D2133E2C-DC66-427C-A3C5-903A88DD0541-42128-00007ED35037747A/name.app/archived-expanded-entitlements.xcent Done checking the original app


Este es de hecho un comportamiento extraño de xcodebuild, pero aún puede usar el comando exportArchive y especificar el perfil de aprovisionamiento usando exportProvisioningProfile:

xcodebuild -exportArchive -exportFormat IPA / -archivePath /Path/To/Archive/name.xcarchive / -exportPath /Path/To/Archive/name.ipa / -exportProvisioningProfile ''PROVISIONING_PROFILE_NAME''

Esto cambiará el perfil de aprovisionamiento dentro de la aplicación y no necesitará especificar nuevamente la identidad de firma de código, porque el archivo ya debe estar firmado durante el proceso de archivado.