Pregunta

Finalmente hemos llegado al punto de presentar nuestra primera aplicación para el iPhone a la tienda de aplicaciones (o intentar), pero me parece que no puede conseguir iTunes Connect para aceptar la carga.

He intentado tanto a través del sitio web ( "El binario que ha subido no era válida. La firma no es válida, o no fue firmado con un certificado de presentación de Apple.") Y el cargador de aplicaciones ( "Info.plist no lo hace contener un CFBundleResourceSpecification ").

Después de un montón de lectura (incluyendo ), relectura, y buscando en google, puedo decir lo siguiente:

  • Estoy seguro de que el identificador del paquete coincide con el AppID.
  • Hay una Icon.png, es un archivo PNG 57x57 píxeles, y ese es el nombre exacto en el Info.plist.
  • que estoy haciendo un dispositivo, no simulador, de construcción.
  • El proceso de firma tiene éxito:. Los resultados se basan muestran esto, y codesign -vvvv MyApp.app corriendo indica que no hay problemas
  • No hay caracteres extraños en la ruta al archivo ZIP.
  • He eliminado la carpeta de compilación y reconstruido el binario unas cuantas veces.

Ahora bien, es cierto que en la aplicación de edificio, Info.plist no contiene una clave CFBundleResourceSpecification, pero no es del todo claro para mí cuando dicho valor debe ser, o qué más tengo que añadir para que este trabajo. (La única referencia que pueda encontrar mediante la búsqueda de Apple es un poco href="http://developer.apple.com/mac/library/releasenotes/Security/RN-CodeSigning/" rel="nofollow noreferrer"> comunicado de la firma de código notas ... pero, como he mencionado anteriormente, la etapa de firma de código está teniendo éxito, por lo que yo puedo decir.)

Se ha ejecutado a nadie a través de las explicaciones para este problema que no he mencionado ya?

EDIT: Aquí está el (ligeramente editada) de salida de la etapa de firma de código de la construcción, Fwiw:

de firma de código pantalla http://img70.yfrog.com/img70/8988/ codesign.png

¿Fue útil?

Solución

El problema parece haber sido que yo estaba usando JSON-marco en mi aplicación, e incluyéndolo como un SDK adicional por las instrucciones la wiki. Mi conjetura es que XCode se confundió por la presencia de> 1 SDK, y por lo tanto no pudo encontrar el ResourceRules.plist por defecto como se supone a.

he encontrado dos soluciones (bueno, soluciones, de todos modos):

  1. Uso de la "firma de código Reglas de Recursos Path" ajuste de acumulación (que es blanco de forma predeterminada) para especificar la ruta de acceso al archivo de XCode debe utilizar: $(SDKROOT)/ResourceRules.plist. Esto funciona, y parece razonablemente inofensivo, pero es frustrante en el sentido de que XCode debe ser capaz de resolver esto por sí solo. (He encontrado esta solución en un muy antiguo problema presentada el JSON-marco.)
  2. No utilice el enfoque SDK. En lugar de ello, basta con incluir los archivos directamente en el proyecto, y actualizar las declaraciones #import con rutas locales. Este es el enfoque acabé teniendo, desde que hicimos una decisión general de doblar todas las dependencias externas en el proyecto en sí (para que otros desarrolladores tienen menos necesita configuración en sus máquinas para poner en marcha).

No estoy seguro de si esto es un error en XCode, o algo malo con JSON-marco, pero he presentó un problema sobre este último por si acaso.

ACTUALIZACIÓN 30 de junio de 2010: el tema que presenté se ha cerrado, y el Sr. planes Brautaset para eliminar el soporte para la opción SDK en la próxima versión (2.3) del proyecto. Además, el href="http://github.com/stig/json-framework" rel="nofollow noreferrer"> código , aunque las páginas de código de Google todavía existen por ahora.

Otros consejos

Para mí, después de comprobar todas las cosas (codiseño, el archivo de icono ...) pero no se puede cargar su aplicación, intenta eliminar el archivo incorporado. Recuerde copiar file.app para comprimir su aplicación.

¿Está seguro de que estamos construyendo con una distribución, en contraposición al desarrollo, certificado y mobileprovision?

Me supongo que va a subir un archivo .zip.

I acaba de comprobar una aplicación que he subido, y CFBundleResourceSpecification es sólo en las versiones firmados (es decir, el dispositivo se basa).

¿Estás haciendo cualquiera de su edificio / copiar / comprimir desde la línea de comandos? Si es así, hay que tener mucho cuidado con los enlaces simbólicos. El .app viene con un subdirectorio como un enlace simbólico a otro, y si lo copia o zip sin las banderas correctas, que va difíciles de copiar el contenido, que se mete con la codesigning.

Esto me sucedió -. Y lo peor de todo es que el ad-hoc construye funcionan bien sin el enlace simbólico, por lo que no se dan cuenta del problema hasta que la tienda de aplicaciones de construcción

Para mí la solución fue la creación de una certificación de distribución en: Apple Developer Provisioning Portal .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top