Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
fastlane
Requisitos previos
Para completar este tutorial, primero debe haber configurado lo siguiente:
-
Un Cuenta de AWS
-
Un depósito de S3 para almacenar certificados
-
fastlane instalado en su proyecto: guía
para instalar fastlane
Paso 1: Configura Fastlane Match con S3 en tu máquina local
Fastlane Match
En este ejemplo de configuración, configurará y usará un bucket de Amazon S3 para el almacenamiento.
-
Inicializa la coincidencia en tu proyecto:
fastlane match init
-
Cuando se le solicite, elija S3 como modo de almacenamiento.
-
Actualiza tu `Matchfile `para usar S3:
storage_mode("s3") s3_bucket("your-s3-bucket-name") s3_region("your-aws-region") type("appstore") # The default type, can be: appstore, adhoc, enterprise or development
Paso 2: Configura tu Fastfile
Crea o actualiza tu `Fastfile` con la siguiente línea.
CodeBuildActivado, tendrás que ejecutar Fastlane Match cada vez que crees y firmes tu aplicación. La forma más sencilla de hacerlo es añadir la match
acción al carril en el que se crea la aplicación.
default_platform(:ios)
platform :ios do
before_all do
setup_ci
end
desc "Build and sign the app"
lane :build do
match(type: "appstore", readonly: true)
gym(
scheme: "YourScheme",
export_method: "app-store"
)
end
end
nota
Asegúrate de añadirlo setup_ci
a la before_all
sección Fastfile
para que la acción de coincidencia funcione correctamente. Esto garantiza que se utilice un llavero temporal de Fastlane con los permisos adecuados. Si no lo usa, es posible que vea errores de compilación o resultados inconsistentes.
Paso 3: ejecute el fastlane match
comando para generar los certificados y perfiles respectivos
El comando fastlane match para el tipo indicado (es decir, desarrollo, tienda de aplicaciones, adhoc, empresa) generará el certificado y el perfil si no están disponibles en el almacén remoto. Fastlane almacenará los certificados y perfiles en S3.
bundle exec fastlane match appstore
La ejecución del comando será interactiva y fastlane solicitará establecer una contraseña para descifrar los certificados.
Paso 4: Crea el archivo de aplicación para tu proyecto
Cree o añada el archivo de aplicación según corresponda a su proyecto.
-
Cree o añada el Gymfile, Appfile
, Snapfile y Deliverfile en función de los requisitos de creación de su proyecto. -
Confirme los cambios en su repositorio remoto
Paso 5: Crear variables de entorno en Secrets Manager
Cree dos secretos para almacenar la cookie de sesión de Fastlane y la contraseña correspondiente. Para obtener más información sobre la creación de secretos en Secrets Manager, consulte Crear un AWS Secrets Manager secreto.
-
Acceda a su cookie de sesión de Fastlane de la siguiente manera.
-
Clave secreta -
FASTLANE_SESSION
-
Valor secreto: cookie de sesión generada al ejecutar el siguiente comando en su máquina local.
nota
Este valor está disponible después de la autenticación en un archivo local:
~/.fastlane/spaceship/my_appleid_username/cookie
.fastlane spaceauth -u <apple account>
-
-
Contraseña de Fastlane Match: para que Fastlane Match pueda descifrar los certificados y perfiles almacenados en el depósito de S3, es necesario añadir la contraseña de cifrado que configuró en el paso de configuración de Match a las variables de entorno del proyecto. CodeBuild
-
Clave secreta:
MATCH_PASSWORD
-
Valor secreto -
<match passphrase to decrypt certificates>
. La contraseña se establece al generar los certificados en el paso 3.
-
nota
Al crear los secretos anteriores en Secrets Manager, recuerde dar un nombre secreto con el siguiente prefijo: /CodeBuild/
Paso 6: Cree una flota informática
Cree la flota informática para su proyecto.
-
En la consola, vaya a CodeBuild y cree una nueva flota de procesamiento.
-
Elija «macOS» como sistema operativo y seleccione el tipo de procesamiento y la imagen adecuados.
Paso 7: Crea un proyecto en CodeBuild
Crea tu proyecto en CodeBuild.
Abre la AWS CodeBuild consola en https://console.aws.amazon.com/codesuite/codebuild/home
. -
Cree un proyecto de compilación. Para obtener más información, consulte Creación de un proyecto de compilación (consola) y Ejecutar una compilación (consola).
-
Configura tu proveedor de código fuente (por ejemplo,). GitHub CodeCommit Este es el repositorio de fuentes de proyectos de iOS y no el repositorio de certificados.
-
En Environment (Entorno):
-
Elija Capacidad reservada.
-
En Flota, seleccione la flota creada anteriormente.
-
Indique el nombre del rol de servicio que CodeBuild se va a crear para usted.
-
Proporcione las siguientes variables de entorno.
-
Nombre:
MATCH_PASSWORD
, Valor:<secrets arn>
, Tipo: Secrets Manager (el ARN secreto se creó en el paso 5 para MATCH_PASSWORD) -
Nombre:
FASTLANE_SESSION
, Valor:<secrets arn>
, Tipo: Secrets Manager (el ARN de secretos creado en el paso 5 para FASTLANE_SESSION)
-
-
-
En Buildspec, agrega lo siguiente:
version: 0.2 phases: install: commands: - gem install bundler - bundle install build: commands: - echo "Building and signing the app..." - bundle exec fastlane build post_build: commands: - echo "Build completed on date" artifacts: files: - '*/.ipa' name: app-$(date +%Y-%m-%d)
Paso 8: Configurar la función de IAM
Una vez creado el proyecto, asegúrese de que el rol de servicio del CodeBuild proyecto tenga permisos para acceder al depósito de S3 que contiene los certificados. Agregue la siguiente política al rol:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::your-s3-bucket-name"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::your-s3-bucket-name/*"
}
]
}
Paso 9: ejecuta la compilación
Ejecute la compilación. Puedes revisar el estado de la compilación e iniciar sesión CodeBuild.
Una vez que se haya completado el trabajo, podrá ver el registro de este.
Solución de problemas
-
Si tienes problemas con la obtención de certificados, asegúrate de que tus permisos de IAM estén configurados correctamente para el acceso a S3.
-
Si tiene problemas al descifrar los certificados, asegúrese de establecer la contraseña correcta en la variable de entorno MATCH_PASSWORD.
-
En caso de problemas con la firma de código, comprueba que tu cuenta de desarrollador de Apple tiene los certificados y perfiles necesarios y que el identificador del paquete de tu proyecto de Xcode coincide con el de tu perfil de aprovisionamiento.
Consideraciones de seguridad
Las siguientes son consideraciones de seguridad para este tutorial.
-
Asegúrese de que su bucket de S3 tenga la configuración de seguridad adecuada, incluido el cifrado en reposo. En concreto, asegúrese de que el depósito no tenga acceso público y restrinja el acceso únicamente CodeBuild al sistema al que debe acceder.
-
Considere usarlo AWS Secrets Manager para almacenar información confidencial, como MATCH_PASSWORD y FASTLANE_SESSION.
En este ejemplo, se proporciona una configuración para la firma de código de iOS con Fastlane CodeBuild mediante Amazon S3 para el almacenamiento de certificados. Es posible que tengas que ajustar algunos pasos en función de los requisitos y el CodeBuild entorno específicos de tu proyecto. Este enfoque aprovecha los AWS servicios para mejorar la seguridad y la integración dentro del AWS ecosistema.