Fabric Crashlytics entornos múltiples para la aplicación iOS

Hay una sección de Aplicaciones con entornos múltiples en la Configuración avanzada de Fabric Crashlytics que sugiere utilizar una organización separada para cada versión.

He creado 3 organizaciones separadas por cada configuration de compilation:

  • MyApp
  • MyApp (debugging)
  • MyApp (AdHoc)

Tengo un condicional en mi fase de compilation de Run Script que ejecuta el script de estructura de tela con diferentes keys de API y Build Secret y puedo confirmar que el condicional está siendo correcto, pero aún no consigo actualizar las keys de API en mi plist (que supongo que usa Fabric). Parece que Fabric está enviando mis lockings a la última key / organización de API que abordo usando la aplicación Fabric. ¿Hay algo que me falta? Sé que puedo usar [Crashlytics initWithApiKey:@""] , pero por lo que he leído esto se considera código henetworkingado.

Aquí está mi Run Run Build Phase:

 if [ "${CONFIGURATION}" = "Distribution" ]; then echo "Building Fabric for Distribution." ./Fabric.framework/run dist_api_key dist_build_secret fi if [ "${CONFIGURATION}" = "AdHoc" ]; then echo "Building Fabric for AdHoc." ./Fabric.framework/run adhoc_api_key adhoc_build_secret fi if [ "${CONFIGURATION}" = "Debug" ]; then echo "Building Fabric for Debug." ./Fabric.framework/run debug_api_key debug_build_secret fi 

El original Q / A

En un bash por lograr que esto funcione, hice esto:

  1. agregue una configuration personalizada definida por el usuario a la configuration de compilation, por ejemplo MY_CRASHLYTICS_API_KEY y MY_CRASHLYTICS_BUILD_SECRET
  2. reemplace concreto APIKey en Info.plist en el grupo Fabric con ${MY_CRASHLYTICS_API_KEY}
  3. agregue las keys de API respectivas y los secretos de compilation de las organizaciones que haya creado según el entorno para crear configuraciones bajo la key del paso 1
  4. cambie el script en la fase Ejecutar script para que sea algo así como el siguiente
  5. configure aplicaciones a través del widget Mac de Crashlytics. Esta no es una parte fácil también. Las aplicaciones se agregan a sus organizaciones solo cuando se ejecutan con la configuration de Depuración. La razón es que la aplicación debe permanecer un time funcionando, por lo que Crashlytics podría localizarla. Esto requirió que cambie Api Keys y Build Secrets para ambos, el script y la key de configuration de Build y obtenga la aplicación registrada. Después de eso, pude cambiar Info.plist para usar el entorno var desde la configuration de compilation.

El script de ejecución:

 echo "Running Crashlytics (${CONFIGURATION})" "${PODS_ROOT}/Fabric/Fabric.framework/run" ${MY_CRASHLYTICS_API_KEY} ${MY_CRASHLYTICS_BUILD_SECRET}