ios xcode itunesconnect carthage xcode9

ios - Xcode 9, Cartago. Error de conexión de iTunes: "Paquete no válido-Instrumentación LLVM no permitida"



itunesconnect carthage (4)

Hoy descargué Xcode 9 e hice los cambios necesarios para compilar mi aplicación. La aplicación se está compilando y ejecutando localmente sin ningún problema.

Usando Xcode 9 lo subí a la App Store. Subida fue exitosa sin ningún error.

A continuación voy el siguiente correo electrónico de Apple:

Estimado desarrollador,

Hemos descubierto uno o más problemas con su entrega reciente para "KiteSpotter: pronóstico del viento y el clima de Kitesurf". Para procesar su entrega, se deben corregir los siguientes problemas:

Paquete inválido - Instrumentación LLVM no permitida. No envíe aplicaciones que tengan habilitada la recopilación de cobertura o instrumentación de perfiles LLVM. Desactive el perfil de LLVM o la cobertura de código, reconstruya su aplicación y vuelva a enviarla.

Una vez que se han corregido estos problemas, puede volver a enviar el binario corregido.

Saludos,

El equipo de la App Store

Fui y apagué la cobertura de código para mi objetivo y el objetivo de vainas de cacao, que fue el único ajuste relevante que pude encontrar:

Vuelva a enviar la aplicación y me aparece el mismo error.

En mi proyecto estoy usando Cartago, que tiene más de 15 dependencias. Buscando una solución, encontré que todos los proyectos deben actualizarse con la configuración anterior.

  • ¿Existe alguna solución para automatizar esta configuración para todos los marcos, si eso está causando el problema?
  • ¿Alguien más ha enfrentado este problema y lo ha solucionado? ¿Los marcos de Cartago estaban creando el problema o algo más?

Como solución rápida, ejecute estos comandos en la Terminal (asegúrese de ir a la carpeta raíz de su proyecto):

  • carthage update --platform iOS --no-use-binaries --no-build Esto actualizará sus dependencias, pero no construirá nada.

  • grep -lR "codeCoverageEnabled" --include *.xcscheme --null Carthage | xargs -0 sed -i '''' -e ''s/codeCoverageEnabled = "YES"/codeCoverageEnabled = "NO"/g'' grep -lR "codeCoverageEnabled" --include *.xcscheme --null Carthage | xargs -0 sed -i '''' -e ''s/codeCoverageEnabled = "YES"/codeCoverageEnabled = "NO"/g'' Esto establecerá la cobertura del código en NO .

  • carthage build --platform iOS Esto finalmente construirá todos los marcos sin cobertura de código.

Ahora puedes archivar tu proyecto y subirlo a iTunes Connect.

La buena gente en el proyecto de Carthage ya está trabajando en una solución más fácil de usar, así que asegúrese de revisar los lanzamientos allí.


La solución para automatizar la cobertura del código de configuración en falso para todas las dependencias es ejecutar el siguiente comando en el terminal (vaya al directorio de su proyecto):

grep -lR "codeCoverageEnabled" --include *.xcscheme --null Carthage | xargs -0 sed -i '''' -e ''s/codeCoverageEnabled = "YES"/codeCoverageEnabled = "NO"/g''

Esto establecerá la cobertura del código en NO y iTunes connect no se quejará.

La secuencia para hacer que todo funcione es la siguiente

  • Ejecute la carthage update --platform iOS --no-use-binaries --no-build . Esto actualizará y descargará todas las dependecies. Cuando Carthage comience a compilar, puede presionar ctrl + c para cancelar.
  • Ejecute el comando anterior para establecer la cobertura del código en NO
  • Ahora que todo está en su lugar, ejecute carthage build --platform iOS . Esto construirá todo con cobertura de código a NO

Ahora puede archivar y subir a iTC.

El comando fue dado por https://github.com/gunterhager , así que el crédito va para él

Como alternativa para los usuarios de fastlane , agregue lo siguiente a su archivo de fastlane, que automatizará todo:

desc "Update Carthage" lane :update_carthage do carthage( command: "update", # One of: build, bootstrap, update, archive. (default: bootstrap) use_binaries: false, # Check out dependency repositories even when prebuilt frameworks exist no_build: true, # When bootstrapping Carthage do not build platform: "iOS" # Define which platform to build for (one of ‘all’, ‘Mac’, ‘iOS’, ‘watchOS’, ‘tvOS‘, or comma-separated values of the formers except for ‘all’) ) sh("grep -lR ''codeCoverageEnabled'' --include *.xcscheme --null Carthage | xargs -0 sed -i '''' -e ''s/codeCoverageEnabled = ''YES''/codeCoverageEnabled = ''NO''/g''") carthage( command: "build", # One of: build, bootstrap, update, archive. (default: bootstrap) platform: "iOS" # Define which platform to build for (one of ‘all’, ‘Mac’, ‘iOS’, ‘watchOS’, ‘tvOS‘, or comma-separated values of the formers except for ‘all’) ) end


Simplemente actualice Carthage a la versión 0.26.0 o superior y luego ejecute nuevamente el comando de carthage update .


También recibí el mismo error de Xcode 9.1, aunque he actualizado Carthage a la última versión https://github.com/Carthage/Carthage/releases No he podido cargar la versión en iTunes.

Trabajó para mí de esta manera: -

Si ha actualizado su Xcode a 9.1 entonces

Actualice su descarga de carthage.pkg desde https://github.com/Carthage/Carthage/releases

Instale .pkg y

Da el comando de carthage update en la Terminal refiriéndose a tu proyecto

y

luego diríjase a su proyecto Build Settings encontrar Enable Code Coverage Support cambiar esa configuración de Yes a No

Luego archivar y subir a AppStore . Tu construcción estará ready . Happy