Se requiere la firma de código para el paquete de prueba de unidad de tipo de producto en SDK iOS 8.0

128

Consiguiendo

Se requiere la firma de código para el tipo de producto 'Unit Test Bundle' en SDK 'iOS 8.0'

El objetivo de mi aplicación es la firma de código bien, pero mi objetivo de prueba no lo es. Compré una nueva computadora, creé un nuevo certificado de desarrollo de la computadora, actualicé el perfil de aprovisionamiento en consecuencia, instalé ambos, pero no puedo superar este error de firma de código.

¿Alguna forma de borrar todos los certificados / perfiles localmente para que pueda reinstalar?

Probablemente algún tipo de error.

Spentak
fuente
Tuve un error similar: mi solución fue ir a la configuración de compilación y seleccionar los perfiles de aprovisionamiento, en lugar de seleccionarlos automáticamente.
scb998

Respuestas:

129

El problema es que el proyecto está bajo control de fuente y cada vez que saco el .xcodeproj se actualiza. Y dado que mi perfil de aprovisionamiento es diferente al de control de origen, el objetivo de Prueba de unidad cambia automáticamente a "No firmar código". Entonces, simplemente tengo que establecer el perfil allí después de cada extracción de git.

Aparentemente, si se implementa en un dispositivo, si hay un objetivo de prueba de unidad, debe estar firmado por código.

Pasos:

1) Cambie el objetivo a su objetivo de prueba (AppnameTests)

ingrese la descripción de la imagen aquí

2) Asegúrese de que "Identidad de firma de código" NO sea "No firmar con código". Elija un perfil para firmar con

ingrese la descripción de la imagen aquí

Eso es todo lo que tuve que cambiar para que funcione.

Spentak
fuente
Estoy enfrentando el mismo problema que se menciona en la pregunta anterior, pero no puedo resolver cómo resolverlo y he publicado una pregunta sobre el mismo. stackoverflow.com/questions/27312745/…
Neal
¿Podría por favor decirme un proceso paso a paso sobre cómo hacerlo?
Neal
Tuve el problema en Xcode 8. La resolución no era idéntica a la tuya, pero sí cercana. Gracias por mostrarme el camino!
user3259235
Además, además de configurar 'Identidad de firma de código', es posible que también deba configurar el 'Equipo de desarrollo'.
bitsand
100

Solucioné el problema (temporalmente) yendo a Editar esquema, luego en la sección Construir, eliminando mi objetivo de prueba de unidad de ser invocado en "Ejecutar".

ZS
fuente
1
¡Buena atrapada! ¿Por qué dices temporalmente ? A mí me parece una solución razonable. ¿Enviaste la aplicación a la tienda?
mokagio
No hay problema al enviar la aplicación a la App Store. Dije "temporalmente" porque pensé que hay una solución más permanente posible jugando con la firma de código, pero esta fue la solución rápida y sin problemas.
ZS
2
Genial, gracias. Me parece una buena solución, el objetivo de la prueba de unidad no debería ejecutarse de todos modos. +1
mokagio
¿Me puede explicar más detalles? quieres decir que tengo que 'construir'? y no entiendo 'eliminar mi prueba de unidad de ser invocado en Run'
LKM
66

El otro consejo aquí no me ayudó, pero solucioné este error yendo a Product > Scheme > Edit Scheme. Luego hice clic Builden el lado izquierdo y deseleccioné las casillas de verificación al lado AppNameTests. Estoy usando XCode 6.3

ingrese la descripción de la imagen aquí

Olivia Stork
fuente
@Almo No desmarque ninguna casilla debajo de "Prueba", sino que desmarque todo (que puede desmarcar) en la fila denominada APPNAMEtests. Incluiré una captura de pantalla en mi respuesta para ayudar a aclarar.
Olivia Stork
1
Hice eso, y tenía todo sin marcar excepto Test. Resultó que tuve que eliminar un archivo .plist para que dejara de intentar firmar el código de la prueba. Mi proyecto construye una biblioteca estática, por lo que nada de esto debe ser firmado con código.
Almo
1
Ah, está bien. Bueno, parece que hay muchas razones por las que este problema puede ser causado y tantas formas de solucionarlo. Si nadie más mencionó su solución, podría considerar publicarla como otra posible respuesta.
Olivia Stork
3
@huggie ¯ \ _ (ツ) _ / ¯ ¡Bienvenido a la programación de iOS!
Olivia Stork
1
@OliviaStork me has obligado. Muchas gracias por salvar mi trabajo.
Anurag Shrivastava
29

Lo arreglé seleccionando manualmente un perfil de aprovisionamiento en la configuración de compilación para el objetivo de prueba.

Pruebe la configuración de destino -> Configuración de compilación -> Firma de código -> Identidad de signo de código. Anteriormente, se configuraba en "No firmar el código".

escarcha
fuente
Seleccionar el perfil de aprovisionamiento me funcionó explícitamente, gracias.
Mike Weller
También asegúrese de que el filtro "Todos" esté seleccionado en la parte superior, no "Básico".
Marty
13

Además, si configura su dispositivo de destino de compilación, el problema desaparecerá cuando pruebe y depure. El código firmado solo es necesario cuando intenta implementar su aplicación en un dispositivo realmente físicohigo

Cambié el mío de "myIphone" al simulador de iPhone 6 Plus, y resuelve el problema mientras desarrollo la aplicación.

Ian Zhao
fuente
1
pero ¿qué pasa si QUIERES implementar tu aplicación en un dispositivo físico?
Marwen Trabelsi
8

En mi caso, el problema que enfrenté fue:

Error de CodeSign: se requiere la firma del código para el tipo de producto 'Unit Test Bundle' en SDK 'iOS 8.4'

Afortunadamente, el objetivo no implementó nada, por lo que una solución rápida es eliminarlo.

ingrese la descripción de la imagen aquí

Javier Calatrava Llavería
fuente
2

Recibí este error al ejecutar xcodebuild desde la línea de comandos para pruebas de integración en el CI de mi trabajo. Logré hacerlo funcionar estableciendo la configuración del nivel del proyecto en codeign. Por alguna razón, la configuración de destino se estaba ignorando y volvió a la configuración del proyecto.

Bolita
fuente
2

Si nada funciona con las soluciones anteriores, siga estos pasos

De los objetivos, seleccione appnameTests en "Información"

Cambiar siguiente

Identificador del paquete: com.ProjectName. $ (PRODUCT_NAME: rfc1034identifier)

com.ProjectName.appname

Nombre del paquete: $ (PRODUCT_NAME)

Nombre del paquete: nombre de la aplicación

Compilar y ejecutar

nirvana74v
fuente
1

Resuelvo el problema cambiando el 'Perfil de aprovisionamiento' en la misma sección ('Firma de código') de Automático a 'Nombre de perfil de Mi aprovisionamiento'

arniotaki
fuente
0

Hola, hoy me enfrento al mismo problema. Después de leer la respuesta de "Spentak", traté de firmar el código de mi objetivo para configurarlo en iOSDeveloper, y todavía no funcionó. Pero después de cambiar "Perfil de aprovisionamiento" a "Automático", el proyecto se compiló y ejecutó sin ningún error de firma de código.

Sahan Maldeniya
fuente
0

A veces esto sucede cuando descarga un proyecto desde github u otros sitios de tutoría de terceros. Estas aplicaciones generalmente están firmadas con una identidad o compañía / nombre diferente. Cuando esto sucede, si no puede resolver la solución, simplemente cree un nuevo proyecto xcode y copie todos los archivos de encabezado e implementación en su nuevo proyecto. Tampoco olvide los archivos de dependencia ... como los archivos de marco. Esto funciona para mí.

BrainyMonkey
fuente