CI/CD

Costruzione automatica di Capacitor per IOS con Codemagic

Cómo configurar un pipeline de CI/CD para tu aplicación IOS Ionic usando Codemagic y Codemagic en 5 minutos (2024)

Martin Donadieu

Martin Donadieu

Marketer di Contenuti

Costruzione automatica di Capacitor per IOS con Codemagic

Mar livre para iOS usando Codemagic

Pré-requisitos

Antes de continuar com o tutorial…

  • Assinatura do programa de desenvolvedor iOS.
  • Desejo de ler 😆…

Importante sobre o preço

Preço Codemagic Action

https://codemagic.io/pricing/

O serviço é ‘gratuito’ até 500 minutos de macOS M1 por mês, dependendo da máquina escolhida.
Vamos usar uma máquina macOS M1, você pode ver no screenshot seu preço e limites (preços na data da criação do tutorial, eles podem sofrer alterações no futuro)

🔴 Uma vez avisados sobre requisitos e preços, se você quiser, continuamos…

📣 No post, assumimos que temos o aplicativo criado no iTunes Connect, temos os certificados do ecossistema Apple, tudo será configurado pelo Codemagic!

Vamos mergulhar 🤿

Passos a seguir no post

  1. Usando a API do App Store Connect com Codemagic
  2. Requisitos
  3. Criando uma Chave da API do App Store Connect
  4. Usando uma Chave da API do App Store Connect
  5. Copiar arquivos Fastlane
  6. Configurar Codemagic

1. Usando a API do App Store Connect com Codemagic

A partir de fevereiro de 2021, a autenticação de dois fatores ou verificação em duas etapas é obrigatória para todos os usuários fazerem login no App Store Connect. Esta camada extra de segurança para seu ID Apple ajuda a garantir que você é a única pessoa que pode acessar sua conta.
De Suporte da Apple

Para começar com match, você precisa revogar seus certificados existentes. Mas não se preocupe, você terá um novo diretamente.

Requisitos

Para poder utilizar a API do App Store Connect, o Codemagic precisa de três coisas.

  1. ID do emissor.
  2. ID da chave.
  3. Arquivo da chave ou conteúdo da chave.

Criando uma Chave da API do App Store Connect

Para gerar chaves, você deve ter permissão de Admin no App Store Connect. Se você não tiver essa permissão, pode direcionar a pessoa relevante para este artigo e seguir as próximas instruções.

1 — Faça login no App Store Connect.

2 — Selecione Usuários e Acesso.

Acesso do usuário do App Store Connect

3 — Selecione a aba Chaves da API.

Chaves da API do App Store Connect

4 — Clique em Gerar Chave da API ou no botão Adicionar (+).

Criar chaves da API do App Store Connect

5 — Digite o nome da chave e selecione um nível de acesso. Recomendamos escolher os direitos de acesso App Manager, leia mais sobre permissões de funções do Programa de Desenvolvedor da Apple aqui

Criar nome da chave da API do App Store Connect

6 — Clique em Gerar.

O acesso de uma chave API não pode ser limitado a aplicativos específicos.

O nome da nova chave, ID da chave, um link para download e outras informações aparecem na página.

Baixar chaves do App Store Connect

Pegue todas as três informações necessárias aqui:
<1> ID do Emissor.
<2> ID da Chave.
<3> Clique “Baixar Chave da API” para baixar sua chave privada da API. O link de download aparece apenas se a chave privada ainda não tiver sido baixada. A Apple não mantém uma cópia da chave privada. Portanto, você pode baixá-la apenas uma vez.

🔴 Armazene sua chave privada em um lugar seguro. Você nunca deve compartilhar suas chaves, armazenar chaves em um repositório de código ou incluir chaves em código do lado do cliente.

Adicionando a chave da API do App Store Connect ao Codemagic

  1. Abra as configurações da sua equipe Codemagic,
    Selecionar integrações da equipe
    Abrir equipe
    Selecione identidades de assinatura de código
    Selecionar identidades de assinatura de código
    E faça o upload do certificado
    Fazer upload do certificado

  2. Clique no botão Adicionar chave.

  3. Digite o nome da chave da API do App Store Connect. Este é um nome legível para humanos que será usado para se referir à chave mais tarde nas configurações do aplicativo.

  4. Digite os valores de ID do Emissor e ID da Chave.

  5. Clique em Escolher um arquivo .p8 ou arraste o arquivo para fazer o upload da chave da API do App Store Connect baixada anteriormente.

  6. Clique em Salvar.

Now we can manage Codemagic with the App Store Connect API key, great!

2. Criar certificados e perfis de provisionamento

Certificados

Abra o XCode e vá para Configurações > Contas > ID Apple > Equipes e selecione sua equipe.

Identidades de assinatura de código

Clique em Gerenciar certificados > + e selecione Distribuição Apple.

Distribuição Apple

Então você pode criar um novo certificado.

Depois você precisa ir para o chaveiro para baixar o certificado como um arquivo .p12.

Para fazer isso, você precisa ir para o chaveiro, mudar para o chaveiro login e, em seguida, a aba Meus Certificados.

Meus Certificados

Então você pode selecionar o certificado que deseja baixar. (Procure pela data do certificado)

E, em seguida, clique com o botão direito no certificado e selecione Exportar.

Escolha o formato de arquivo Personal Information Exchange (.p12).

Isso fará o download do certificado como um arquivo .p12.

Perfis de provisionamento

Abra Apple Developer e selecione a equipe correta.

Então crie um novo perfil, clicando em +

Criar um novo perfil

E selecione App Store Connect.

Selecionar App Store Connect

Então você precisa selecionar o aplicativo correto, tenha cuidado, você não pode usar wildcards, caso contrário, a assinatura falhará.

Selecionar o aplicativo correto

Selecione o certificado correto que você criou anteriormente (procure pela data de expiração, deve ser o mesmo dia e mês de hoje) e clique em Continuar.

Selecionar o certificado correto

Finalmente, digite o nome do perfil e clique em Gerar.

O nome será usado para identificar o perfil no Codemagic.

Gerar o perfil

Você pode baixar o perfil como um arquivo .mobileprovision.

Baixar o perfil

Adicionando o certificado de assinatura de código

O Codemagic permite que você faça upload de certificados de assinatura de código como arquivos PKCS#12 que contêm tanto o certificado quanto a chave privada que é necessária para usá-lo. Ao fazer o upload, o Codemagic pedirá que você forneça a senha do certificado (se o certificado estiver protegido por senha) junto com um Nome de Referência exclusivo, que pode ser usado na configuração do codemagic.yaml para buscar o arquivo específico.

  • Fazer upload do certificado
  • Gerar um novo certificado
  • Recuperar do Portal do Desenvolvedor
  1. Abra as configurações da sua equipe Codemagic, vá para configurações do codemagic.yaml > Identidades de assinatura de código.
  2. Abra a aba certificados iOS.
  3. Faça o upload do arquivo do certificado clicando em Escolher um arquivo .p12 ou .pem ou arrastando-o para o quadro indicado.
  4. Digite a senha do certificado e escolha um Nome de Referência.
  5. Clique em Adicionar certificado

Adicionando o perfil de provisionamento

O Codemagic permite que você faça upload de um perfil de provisionamento a ser usado para o aplicativo ou recupere um perfil do Portal do Desenvolvedor da Apple.

O tipo do perfil, equipe, id do pacote e data de expiração são exibidos para cada perfil adicionado às identidades de assinatura de código. Além disso, o Codemagic informará se um certificado de assinatura de código correspondente está disponível nas identidades de assinatura de código (um sinal verde no campo Certificado) ou não.

3. Configurar Codemagic

Configurar segredos do Codemagic

Já se perguntou de onde vêm os valores do ENV? Bem, não é mais um segredo – vem do segredo do seu projeto. 🤦

4. Configurar arquivo de fluxo de trabalho do Codemagic

Crie um arquivo chamado codemagic.yml na raiz do seu projeto e adicione o seguinte.

workflows:
ionic-capacitor-ios-workflow:
name: Capacitor iOS Workflow
max_build_duration: 120
instance_type: mac_mini_m1
integrations:
app_store_connect: CodeMagic
environment:
ios_signing:
distribution_type: app_store
bundle_identifier: YOUR_BUNDLE_IDENTIFIER
vars:
XCODE_WORKSPACE: ios/App/App.xcworkspace
XCODE_SCHEME: App
APP_STORE_APP_ID: YOUR_APP_STORE_APP_ID
node: v20.14.0
xcode: 15.4
cocoapods: default
triggering:
events:
- tag
tag_patterns:
- pattern: '*'
include: true
scripts:
- name: Install dependencies
script: |
npm install
- name: Cocoapods installation
script: |
cd ios/App && pod install
- name: Update dependencies and copy web assets to native project
script: |
npm run build
npx cap sync ios
- name: Set up code signing settings on Xcode project
script: |
xcode-project use-profiles
- name: Increment build number
script: |
cd $CM_BUILD_DIR/ios/App
LATEST_BUILD_NUMBER=$(app-store-connect get-latest-app-store-build-number "$APP_ID")
agvtool new-version -all $(($LATEST_BUILD_NUMBER + 1))
- name: Build ipa for distribution
script: |
xcode-project build-ipa \
--workspace "$XCODE_WORKSPACE" \
--scheme "$XCODE_SCHEME"
artifacts:
- build/ios/ipa/*.ipa
- /tmp/xcodebuild_logs/*.log
- $HOME/Library/Developer/Xcode/DerivedData/**/Build/**/*.app
- $HOME/Library/Developer/Xcode/DerivedData/**/Build/**/*.dSYM
publishing:
email:
recipients:
- YOUR_EMAIL
notify:
success: true # To not receive a notification when a build succeeds
failure: false # To not receive a notification when a build fails
app_store_connect:
auth: integration
# Configuration related to TestFlight (optional)
# Note: This action is performed during post-processing.
submit_to_testflight: true
# Configuration related to App Store (optional)
# Note: This action is performed during post-processing.
submit_to_app_store: false

Este fluxo de trabalho deve ser acionado manualmente ou após cada tag do GitHub, se você precisar automatizar a tag, por favor, consulte Construção e lançamento automático com ações do GitHub primeiro.

Então este fluxo de trabalho irá puxar suas dependências do NodeJS, instalá-las e construir seu aplicativo JavaScript.

Cada vez que você enviar uma nova tag, um lançamento será construído no TestFlight.

Seu aplicativo não precisa usar Ionic, apenas a base do Capacitor é obrigatória, ele pode ter um antigo módulo Cordova, mas o plugin do Capacitor JS deve ser preferido.

5. Acionar fluxo de trabalho

Acionar o fluxo de trabalho

Envie os novos commits para o branch main ou developement para acionar o fluxo de trabalho.

Iniciado com commit

Depois de alguns minutos, a construção deve estar disponível no seu painel do App Store Connect.

Painel do Testflight

Iniciar manualmente

Você pode iniciar o fluxo de trabalho manualmente.

Primeiro, selecione o aplicativo que você deseja construir, depois clique em Iniciar nova construção.

Selecionar aplicativo

Então selecione o branch que você deseja construir.

Selecionar branch

E clique em Iniciar nova construção.

Depois vá para a lista de construções

Lista de construção

E clique na construção para ver o resultado.

Resultado da construção

Pode implantar do computador local

Sim, você pode, e é muito fácil.

Você pode usar o Xcode para construir e assinar seu aplicativo, como sempre.

Obrigado

Este blog é baseado nos seguintes artigos:

Aggiornamenti Istantanei per le App di CapacitorJS

Invia aggiornamenti, correzioni e funzionalità istantaneamente alle tue app CapacitorJS senza ritardi dell'app store. Sperimenta un'integrazione senza soluzione di continuità, crittografia end-to-end e aggiornamenti in tempo reale con Capgo.

Inizia Ora

Ultimissime notizie

Capgo te ofrece las mejores ideas que necesitas para crear una aplicación móvil verdaderamente profesional.