La ruta de las Reglas de resources de firma de código falla en Jenkins, CODE_SIGN_RESOURCE_RULES_PATH

Me preocupa poco cómo las personas tratan el siguiente problema.

Básicamente suena como "La construcción falla en Jenkins con ResourceRules.plist: cannot read resources "

Mis circunstancias son:

1) Jenkins

2) Localmente trabajo en Xcode 7 beta (en una twig separada)

3) Mis compañeros trabajan en 6.4.1 y para ellos todo funciona bien

4) Jenkins slave tiene instalado Xcode 6.4.1

Algunos de ustedes dirán "esta pregunta fue hecha millones de veces", como aquí , aquí , aquí , aquí .

Pero la documentation dice lo siguiente:

Reglas de resources

Los sistemas anteriores a OS X Mavericks v10.9 documentaron una function de firma (–resource-rules) para controlar qué files de un package deberían estar sellados con una firma de código. Esta característica ha quedado obsoleta para los Mavericks. Las firmas de código hechas en Mavericks y luego siempre sellan todos los files en un package; No hay necesidad de especificar esto más explícitamente. Esto también significa que la configuration de compilation Ruta de reglas de resources de firma de código en Xcode ya no debe usarse y debe dejarse en blanco.

Entonces, mi pregunta es ¿por qué todos están tan listos para omitir, hackear y solucionar este problema, cuando la documentation claramente dice que debería estar en blanco y obsoleto?

¿Cuál es el verdadero problema detrás de esto? ¿Por qué la construcción falla en algo que no se requiere durante varios años?

Yo tuve el mismo problema. La solución sugerida por Mr.Dan Cutting aquí funciona para mí.

Solo para ahorrar time, esto es lo que necesitamos del enlace web.

"A partir de Mavericks, la opción de reglas de resources no debe includese cuando se firman aplicaciones, pero por alguna razón el script todavía pasa esta opción junto con la herramienta de firma de código.

La solución es modificar el script de ApplicationApplication para que ya no lo haga (lo que requerirá acceso sudo). La línea 155 del script construye los parameters para pasar al firmante de código, por lo que simplemente podemos eliminar las references a las reglas de resources: "

 //Remove - Begin - my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements,resource-rules", - "--sign", $opt{sign}, - "--resource-rules=$destApp/ResourceRules.plist"); //Remove - End //Add - Begin + my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements", + "--sign", $opt{sign}); //Add - Starts 

Si ha utilizado la versión Xcode mayor 6.1, cambie la siguiente línea

$ (SDKROOT) /ResourceRules.plist

A CODE_SIGN_RESOURCE_RULES_PATH = $ (SDKROOT) /ResourceRules.plist