working usemodernbuildsystem not modern mobileprovision missing build code-signing ipa xcode6.1

usemodernbuildsystem - Error de Xcode 6.1 al compilar IPA



missing provisioning profile xcode 10 (7)

Acabo de actualizar a Xcode 6.1 hoy, y adivine qué: ahora estoy teniendo problemas para enviar compilaciones usando la aplicación de escritorio TestFlight. Aquí está el error que recibo mientras la aplicación comienza a construir el IPA:

error: / usr / bin / codesign --force --preserve-metadata = identificador, autorizaciones, reglas de recursos --sign 854059d45eed724593debef577a562e1ba96ab55 --resource-rules = / tmp / QYFSJIvu7W / Payload / XX.app / ResourceRules.plist / tmp /QYFSJIvu7W/Payload/XX.app ha fallado con el error 1. Salida: Advertencia: uso de --preserve-metadata con la opción "resource-rules" (obsoleto en Mac OS X> = 10.10). Advertencia: --resource-rules ha quedado en desuso en Mac OS X> = 10.10! /tmp/QYFSJIvu7W/Payload/XX.app/ResourceRules.plist: no se pueden leer los recursos

El ''Artículo de Ayuda'' no tiene idea de lo que está pasando.

No parece ser un problema de TestFlight porque sucede lo mismo en un entorno de CI como Jenkins que usa xcrun o herramientas similares.

La aplicación no se actualizó durante meses, por lo que sé que no debería esperar ninguna actualización para arreglar esto pronto. Solía ​​funcionar muy bien para mí y para mis clientes, así que no estoy dispuesto a abandonarlo por otra cosa tampoco.

Cualquier idea sobre de qué se trata este error, y cómo solucionarlo sería muy apreciada.


Como se especifica en otra respuesta , también puede simplemente no especificar el certificado de distribución para firmar y se empaquetará correctamente. TestFlight necesitaría actualizar su aplicación para hacer esto.


Desearía saber por qué funciona, pero aquí hay una solución que funcionó para mí:

¡Encontré la solución!

Haga clic en su proyecto> Objetivos> Seleccione su destino> Configuraciones de compilación>

Code Signing Resource Rules Path

y añadir :

$(SDKROOT)/ResourceRules.plist


El siguiente parche para PackageApplications me lo arregló, eliminé las reglas de recursos porque dice que está obsoleto en 10.10.

Testflight genera trabajo sin él. Appstore también.

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin % diff PackageApplication PackageApplicationFixed 155,157c155,156 < my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements,resource-rules", < "--sign", $opt{sign}, < "--resource-rules=$destApp/ResourceRules.plist"); --- > my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements", > "--sign", $opt{sign});


En Yosemite con XCode 6.4 incluso con el parche SDKROOT, falla la asignación de nombres. El siguiente artículo explica cómo aplicar parches al script XCode para evitar esto. Tenga en cuenta que esto es parchear XCode, por lo que es específico de la versión, pero soluciona el problema.

http://www.jayway.com/2015/05/21/fixing-your-ios-build-scripts


Envié un correo electrónico al soporte de TestFlight y obtuve esta respuesta:

Nuestro equipo actualmente está investigando este problema con la aplicación de escritorio TestFlight. Mientras tanto, utilice Xcode para crear el archivo IPA y luego cárguelo usando la aplicación de escritorio o el sitio web de TestFlight.

La solución sugerida funcionó.


La answer de Alistra funciona para mí, pero no quiero cambiar un script que no sea mío (una futura versión de Xcode podría cambiar este archivo y la corrección se perderá).

diff PackageApplication PackageApplicationFixed 155,157c155,156 <- my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements,resource-rules", <- "--sign", $opt{sign}, <- "--resource-rules=$destApp/ResourceRules.plist"); --- -> my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements", -> "--sign", $opt{sign});

Creo que la answer de Vladimir Grigorov es la mejor si tienes un archivo usando:

xcodebuild -exportArchive -archivePath [path to archive] -exportPath [path to output directory] -exportOptionsPlist [path to options.plist file]

En mi caso, no tengo el archivo, porque modifico la aplicación después de compilarla y necesito cambiar la identificación del paquete y el certificado de firma.

La solución que encontré es llamarme a PackageApplication antes de utilizar PackageApplication y pedirle a PackageApplication que no PackageApplication sesión. Me gusta esto :

replace : /usr/bin/xcrun -sdk iphoneos PackageApplication -v "<app_path>" -o "<ipa_path>" --sign "<provisioning_profile.certificateSubject>" --embed "<provisioning_profile.path>" by : /bin/cp -rpfv "<provisioning_profile.path>" "<app_path>/embedded.mobileprovision" /usr/bin/codesign -v -vvvv -f -s "<provisioning_profile.certificateSubject>" --entitlements="<entitlement_path>" "<app_path>" /usr/bin/xcrun -sdk iphoneos PackageApplication -v "<app_path>" -o "<ipa_path>"

No te olvides de incrustar el archivo .mobileprovision usando para firmar con cp .


La answer de Tim Gostony ya no funciona desde el lanzamiento de Xcode 7. Ahora el proceso de envío de App Store falla cuando las reglas de recursos están presentes. La solución es borrar su ruta de reglas de recursos de firma de código y reemplazar xcrun con la herramienta xcodebuild:

xcodebuild -exportArchive -archivePath [path to archive] -exportPath [path to output directory] -exportOptionsPlist [path to options.plist file]

El más simple Options.plist para exportar archivos ipa de distribución ad-hoc se ve así:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>iCloudContainerEnvironment</key> <string>Production</string> <key>teamID</key> <string>[YOUR TEAM ID]</string> <key>method</key> <string>ad-hoc</string> </dict> </plist>

Hay otras opciones disponibles para este archivo plist con respecto a bitcode, thinning de aplicaciones, etc. Por eso creo que la herramienta xcodebuild es la herramienta adecuada para exportar archivos ipa para iOS 9 y posteriores.

Hay más detalles sobre las opciones disponibles con el comando xcodebuild -help.