Solución de problemas de compilación de iOS
Importante
Visual Studio App Center está programado para retirarse el 31 de marzo de 2025. Aunque puede seguir usando Visual Studio App Center hasta que se retire por completo, hay varias alternativas recomendadas a las que puede considerar la posibilidad de migrar.
Obtenga más información sobre las escalas de tiempo y las alternativas de soporte técnico.
No se encuentra ningún esquema Xcode
La creación de o xcworkspace
un xcproject
objeto requiere un esquema Xcode compartido. Los esquemas de Xcode se guardan localmente para que Xcode pueda acceder a ellos. De forma predeterminada, los esquemas no se comparten con otros ni se incluyen en el control de código fuente.
Para compartir un esquema en Xcode, siga estos pasos:
- Seleccione Esquema de > producto > Administrar esquemas.
- Establezca el esquema de xcproject/xcworkspace como compartido.
- El contenedor del esquema debe establecerse en el proyecto o área de trabajo de Xcode que desea compilar.
- Agregue el
.xcscheme
archivo al control de código fuente y se inserte en el repositorio remoto para que App Center pueda acceder a él.
Advertencia
Asegúrese de que la xcshareddata/xcschemes/
carpeta no está en el .gitignore
archivo. Aquí es donde Xcode almacena los .xcscheme
archivos. App Center se basa en estos archivos para compilar el proyecto correctamente. Si se exporta a .xcscheme
otra carpeta, no funcionará.
Se produce un error en las compilaciones de iOS con "clang: error: error: error en el comando del enlazador con el código de salida 1"
El error podría deberse a la compilación de App Center con xcodeproj en lugar del área de trabajo. Al agregar CocoaPods al proyecto, cambie al uso del área de trabajo al compilar en App Center.
Indicador: busque esta línea en el registro de compilación:
ld: library not found for -lPods-GarageController
clang: error: linker command failed with exit code 1 (use -v to see invocation)
** ARCHIVE FAILED **
Para corregir este error, abra la configuración de compilación del proyecto y haga clic en Guardar. App Center elegirá automáticamente el área de trabajo correctamente para futuras compilaciones.
Problemas de firma de iOS explicados
Nota
Las identidades de firma que usan caracteres no ascii no se admiten en Build.
Trabajar con perfiles y certificados de aprovisionamiento puede ser un proceso complicado. Las siguientes sugerencias deben ayudarle a firmar correctamente las aplicaciones de iOS:
Guarde la configuración de compilación en App Center después de insertar los cambios de firma en el proyecto. En App Center, la configuración de compilación de cualquier rama almacena dos valores del proyecto de Xcode: y
DEVELOPMENT_TEAM
CODE_SIGN_STYLE
(se establece en el archivo de laproject.pbxproj
.xcodeproj
carpeta). Siempre que cambie entre la firma manual y automática o cambie el equipo de desarrollo, asegúrese de guardar la configuración de compilación en App Center después de insertar los cambios. Si no guarda después de insertarla, es posible que se produzca un error de firma en la compilación.Arrastre y coloque el perfil de aprovisionamiento correcto al usar la firma automática. En Xcode, en la pestaña General del destino, en Firma, haga clic en el icono de información situado junto a Perfil administrado de Xcode. A continuación, verá un elemento emergente con información de perfil. Haga clic y arrastre el icono de PROV de la parte superior izquierda a la ubicación deseada (como se muestra a continuación).
Tome nota de las opciones admitidas actualmente de App Center al usar la firma manual y automática. App Center es totalmente compatible con la firma manual de aplicaciones iOS, por lo que puede usar cualquier tipo de perfil o certificado. Compruebe que el perfil de aprovisionamiento y el certificado que cargue en App Center coincidan con lo que ha especificado en el proyecto. Si ha habilitado Administrar automáticamente el inicio de sesión en Xcode, App Center admite la firma de aplicaciones con perfiles y certificados de desarrollador (no con distribución). Al cargar en App Center, deberá usar el perfil de aprovisionamiento generado automáticamente desde Xcode.
¿Sigue teniendo problemas?
Para solucionar problemas y obtener el registro y la ejecución de la compilación, se sugieren los pasos siguientes:
- Configure el inicio de sesión manual en el proyecto de Xcode y asegúrese de que funciona localmente.
- Una vez comprobado, confirme e inserte los cambios en el repositorio.
- Prepare el perfil de aprovisionamiento y el certificado seleccionados en el destino de Xcode y cárguelos en la configuración de compilación de App Center.
- Lo más importante: asegúrese de que ha insertado el estado más reciente del proyecto antes de guardar el nuevo certificado y el perfil en la configuración de compilación.
¿Dónde está mi archivo .ipa?
Xcodebuild, a diferencia de xcrun, no permite generar un .ipa
archivo si la compilación no está firmada. En su lugar, las compilaciones sin firmar generan ..xcarchive
Si desea generar un .ipa
archivo con los artefactos de una compilación sin firmar, puede usar el .xcarchive
archivo para hacerlo.
Se produce un error en la aplicación iOS con Xcode con un error de versión de código de bits no válido
Si se produce un error en las compilaciones, error: Invalid bitcode version (Producer: '802.0.38.0_0' Reader: '800.0.42.1_0')
usa una biblioteca o pod compilada por una versión más reciente de Xcode que el proyecto. Puede actualizar el proyecto y la configuración de compilación en App Center para usar una versión más reciente de Xcode o cambiar a una versión alternativa de la biblioteca problemática, que se compila con una versión coincidente de Xcode.
Mi aplicación iOS no puede ejecutar una prueba
Un motivo común para que se produzca un error en las pruebas es que los comandos del enlazador alcanzan un error similar al siguiente:
ld: directory not found for option iPhoneSimulator10.3.sdk/Developer/Library/Frameworks
❌ ld: embedded dylibs/frameworks are only supported on iOS 8.0 and later (@rpath/XCTest.framework/XCTest) for architecture x86_64
❌ clang: error: linker command failed with exit code 1 (use -v to see invocation)
La causa probable de este error es que el tipo de vinculación de Apple Mach-O Linker no esté establecido en biblioteca estática. Para compilar y probar correctamente la aplicación, asegúrese de que el tipo de vinculación de Apple Mach-O Linker en el destino de prueba está establecido en biblioteca estática.
Mis compilaciones de iOS con CocoaPods en Xcode 9 siguen fallando, ¿qué debo hacer?
Puede deberse a que la configuración de firma en el proyecto pods difiere de la del proyecto principal. ¿Están protegidos los pods en el repositorio? Si es así, el proyecto pods debe usar el mismo método de firma que el proyecto principal.
Si los pods no están protegidos, es posible que haya problemas diferentes. Hay algunas soluciones alternativas que puede usar en este problema de GitHub con scripts previos a la compilación.
Puesto que he actualizado mi proyecto a Xcode 10 beta, mi aplicación no se puede compilar con el ciclo de error en dependencias entre destinos
El nuevo sistema de compilación de Xcode 10 detecta ciclos de dependencia en la compilación y produce un error en la compilación si hay alguno.
Para obtener más información sobre cómo corregir la compilación, consulte la documentación de Apple sobre cómo resolver tipos comunes de ciclos de dependencia.