Skapa, testa och distribuera Xcode-appar
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Den här snabbstarten visar hur du skapar och distribuerar Xcode-projekt med YAML-pipelines i Azure Pipelines.
Förutsättningar
- En Azure DevOps-organisation och ett projekt där du har behörighet att skapa pipelines och distribuera appar.
- Ett Xcode 9+-projekt och en app på en GitHub-lagringsplats. Mer information finns i Skapa ett Xcode-projekt för en app.
Skapa pipelinen
Viktigt!
Under GitHub-procedurerna kan du uppmanas att skapa en GitHub-tjänstanslutning eller omdirigeras till GitHub för att logga in, installera Azure Pipelines eller auktorisera Azure Pipelines. Följ anvisningarna på skärmen för att slutföra processen. Mer information finns i Åtkomst till GitHub-lagringsplatser.
- I ditt Azure DevOps-projekt väljer du Pipelines>Ny pipeline eller Skapa pipeline om den här pipelinen är den första i projektet.
- Välj GitHub som plats för källkoden.
- På skärmen Välj en lagringsplats väljer du lagringsplatsen för Xcode-projektet.
- På skärmen Konfigurera pipeline väljer du Xcode.
Azure Pipelines tillhandahåller en startpipeline baserat på Xcode-mallen . Granska koden i azure-pipelines.yml.
Skapa miljö
Xcode är förinstallerat på De Microsoft-värdbaserade macOS-agenterna i Azure Pipelines, så du behöver inte konfigurera någon infrastruktur. Exakta versioner av Xcode som är förinstallerade finns i Programvara för Microsoft-värdbaserade agenter.
Noden pool
längst upp i filen azure-pipelines.yml väljer lämplig agentpool.
pool:
vmImage: 'macOS-latest'
Xcode-bygguppgift
Xcode-aktiviteten skapar, testar eller arkiverar en Xcode-arbetsyta på macOS och kan eventuellt paketera en app. Xcode-steget i startfilen azure-pipelines.yml bygger iOS-projektet med dess standardschema, för simulatorn och utan paketering. Du kan ändra värden och lägga till parametrar som matchar projektkonfigurationen.
steps:
- task: Xcode@5
inputs:
actions: 'build'
scheme: ''
sdk: 'iphoneos'
configuration: 'Release'
xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
xcodeVersion: 'default' # Options: 10, 11, 12, 13, 14, default, specifyPath
Spara och kör pipelinen
När du har granskat koden i azure-pipelines.yml väljer du Spara och kör.
Du kan också redigera incheckningsmeddelandet och ange en beskrivning. Välj sedan Spara och kör igen för att checka in azure-pipelines.yml filen till lagringsplatsen och starta en version.
På byggkörningssidan visas bygginformation och förlopp. Om du vill se din pipeline i praktiken väljer du Jobb på den nedre delen av sidan.
Nu har du en fungerande YAML-pipeline, azure-pipelines.yml, på din lagringsplats som är redo att anpassas.
Anpassa din pipeline
Om du vill göra ändringar i pipelinen väljer du Redigera på pipelinesidan. I följande avsnitt beskrivs några vanliga sätt att anpassa Xcode-pipelinen.
Lägga till signerings- och etableringsuppgifter
En Xcode-app måste signeras och etableras för att kunna köras på en enhet eller publicera till App Store. Signerings- och etableringsprocessen måste komma åt ditt P12-signeringscertifikat och en eller flera etableringsprofiler. Mer information finns i Signera din mobilapp.
Om du vill göra certifikatet och profilen tillgängliga för Xcode under en version lägger du till uppgifterna Installera Apple-certifikat och Installera Apple-etableringsprofil i din pipeline.
Använda en miljövariabel för karthage
Om ditt projekt använder Carthage med en privat Carthage-lagringsplats kan du konfigurera autentisering med hjälp av en miljövariabel med namnet GITHUB_ACCESS_TOKEN
med värdet för en token som har åtkomst till lagringsplatsen. Karthage identifierar och använder automatiskt den här miljövariabeln.
Lägg inte till den hemliga token direkt i din YAML-pipeline. Välj i stället Variabler på pipelinesidan för att öppna fönstret Variabler och skapa en variabel för den här token. Se till att aktivera låsikonen för att kryptera värdet för variabeln. Mer information finns i Ange hemliga variabler.
Följande pipelinekod använder en hemlig variabel med namnet myGitHubAccessToken
för värdet för GITHUB_ACCESS_TOKEN
miljövariabeln.
- script: carthage update --platform iOS
env:
GITHUB_ACCESS_TOKEN: $(myGitHubAccessToken)
Testa på Azure-värdbaserade enheter
Om du vill testa din app i ett värdbaserat labb med iOS-enheter i Visual Studio App Center lägger du till App Center-testuppgiften i din pipeline.
Den här uppgiften kräver ett kostnadsfritt utvärderingskonto för App Center , som måste konverteras till betalt efter 30 dagar för att fortsätta att använda testlabbet. Registrera dig för ett App Center-konto innan du använder den här uppgiften.
I följande exempel körs en App Center-testsvit. Uppgiften använder en tjänstanslutning som du måste konfigurera.
Fullständig aktivitetssyntax och referens finns i App Center-testaktivitet. Mer information finns i Använda Azure DevOps för användargränssnittstestning.
- task: AppCenterTest@1
inputs:
appFile: path/myapp.ipa
artifactsDirectory: '$(Build.ArtifactStagingDirectory)/AppCenterTest'
frameworkOption: 'appium'
appiumBuildDirectory: test/upload
serverEndpoint: 'My App Center service connection'
appSlug: username/appIdentifier
devices: 'devicelist'
Behåll artefakter med byggposten
Om du vill lagra IPA-filen (iOS AppStore Package) med byggposten eller testa och distribuera den i efterföljande pipelines lägger du till uppgifterna Kopiera filer och Publicera byggartefakter i pipelinen. Mer information finns i Publicera och ladda ned pipelineartefakter.
- task: CopyFiles@2
inputs:
contents: '**/*.ipa'
targetFolder: '$(build.artifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
Distribuera till App Center
Om du vill distribuera en app till en grupp testare eller betaanvändare, eller flytta upp appen till Intune eller Apple App Store, lägger du till uppgiften Distribuera i App Center . Uppgiften kräver ett kostnadsfritt App Center-konto som förblir kostnadsfritt.
I följande exempel distribueras en app till användare. Fullständig aktivitetssyntax och referens finns i Distribuera i App Center. Mer information finns i Distribuera Azure DevOps-versioner med App Center.
- task: AppCenterDistribute@3
inputs:
serverEndpoint: 'AppCenter'
appSlug: '$(APP_CENTER_SLUG)'
appFile: '$(APP_FILE)' # Relative path from the repo root to the IPA file you want to publish
symbolsOption: 'Apple'
releaseNotesOption: 'input'
releaseNotesInput: 'Here are the release notes for this version.'
destinationType: 'groups'
Installera Apple App Store-tillägget och distribuera till Apple App Store
Om du vill automatisera interaktionen med Apple App Store installerar du Apple App Store-tillägget och använder sedan följande uppgifter i pipelinen. Som standard autentiseras dessa uppgifter till Apple med hjälp av en tjänstanslutning som du måste konfigurera.
Om du vill automatisera lanseringen av uppdateringar till befintliga betaappar för iOS TestFlight eller produktionsappar i App Store lägger du till uppgiften App Store-versionen .
Det finns begränsningar för att använda den här uppgiften med Apple-tvåfaktorsautentisering. Apple-autentisering är regionspecifik och snabblane-sessionstoken upphör att gälla snabbt och måste återskapas och konfigureras om.
- task: AppStoreRelease@1
displayName: 'Publish to the App Store TestFlight track'
inputs:
serviceEndpoint: 'My Apple App Store service connection'
appIdentifier: com.yourorganization.testapplication.etc
ipaPath: '$(build.artifactstagingdirectory)/**/*.ipa'
shouldSkipWaitingForProcessing: true
shouldSkipSubmission: true
Om du vill automatisera upphöjningen av en app som skickats tidigare från iTunes Connect till App Store lägger du till uppgiften App Store-upphöjning .
- task: AppStorePromote@1
displayName: 'Submit to the App Store for review'
inputs:
serviceEndpoint: 'My Apple App Store service connection'
appIdentifier: com.yourorganization.testapplication.etc
shouldAutoRelease: false
Relaterade tillägg
- Apple App Store från Microsoft
- Kodifierad säkerhet från kodifierad säkerhet
- MacinCloud från Moboware Inc.
- Mobilappsuppgifter för iOS och Android från James Montemagno
- Testlabb för mobila enheter från Perfecto Mobile
- Raygun från Raygun
- React Native från Microsoft
- Version Setter från Tom Gilder