Archivo en Xcode 4.5: sin errores, pero la construcción se canceló

Llevo más de dos años desarrollando aplicaciones para iOS y nunca he encontrado este problema. Estoy intentando archivar una aplicación para la distribución beta. La compilation tiene éxito, pero al final del process, Xcode informa 'Archivo cancelado'.

introduzca la descripción de la imagen aquí

Los loggings de construcción no muestran advertencias ni errores de ningún tipo.

introduzca la descripción de la imagen aquí

A veces, al limpiar / limpiar la carpeta de creación / borrar los datos derivados, puedo lograr que el file tenga éxito, pero parece que no hay ningún patrón. ¿Alguien ha encontrado este problema? Ni siquiera tengo nada para seguir hasta un post de error en este caso.

¿Tiene un Run Script personalizado que rebota en la versión con agvtool? Encontré esto para causar este comportamiento exacto. Casi 100% de falla en el file, y falta de construcción común. Eliminar esto solucionó el problema para mí.

Primero: +1 en la respuesta de ConfusedNoob, porque ese era el problema (que me llevó a numerosos experimentos y finalmente a esta solución). Si mi respuesta te ayuda, ¡+1 su también, porque su sugerencia era enorme!

(También, vea mi otra respuesta, a continuación, que omite por completo a agvtool. Finalmente me decidí a usar eso en todos mis proyectos).

He estado jugando con eso un poco y lo único que he encontrado que funciona de manera confiable para resolverlo es usar Agvtool como una acción previa en el esquema (s) apropiado (s), en lugar de como un run-script en la compilation -fases

  • CMD-SHIFT-comma para editar esquemas (XCode 6.x)
  • Twiddle-abrir cualquier esquema que desee esto. Lo hice en Run and Archive , pero probablemente solo lo necesito en el file.
  • Seleccione el ícono "+" y "Nueva acción de secuencia de commands de ejecución".
  • Agregue su script agvtool. Si te importa, el mío es:

     cd ${PROJECT_DIR} ; xcrun agvtool next-version -all 

( NOTA: las acciones previas no se ejecutan naturalmente en ${PROJECT_DIR} , por lo que tiene que cd .)

Cierre y guarde y ya está.

El problema es que agvtool modifica el file del proyecto (innecesariamente, ya que todos los numbers de compilation que nos importan están en otro lugar), y la modificación del file del proyecto hace que la compilation se cancele.

+1 uno sobre la pregunta, también: ¡cripes, eso fue difícil!

Otra técnica es omitir agvtool completo el agvtool . Simplemente agregue este script de time de ejecución al final de sus fases de compilation (después de copyr los resources del package).

  • Seleccione su proyecto

Seleccione su proyecto

  • Seleccione las fases de compilation y +

Seleccione las fases de compilación y +

  • Agregar una nueva fase de Run Script

Agregar nueva fase de secuencia de comandos

  • Ingrese el guion

Ingrese el guion

El guión, para copyr / pegar fácilmente:

 buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE") buildNumber=$(($buildNumber + 1)) /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE" 

Asegúrese de que su secuencia de commands se ejecute después de las fases de copy de package de su compilation

Para mí, la fase de creación de carthage update estaba causando el problema.

También verifique si tiene otras fases de compilation con scripts que modifiquen files o código.