Sestavování, testování a nasazování aplikací Xcode
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
V tomto rychlém startu se dozvíte, jak sestavovat a nasazovat projekty Xcode s kanály YAML v Azure Pipelines.
Požadavky
- Organizace a projekt Azure DevOps, kde máte oprávnění vytvářet kanály a nasazovat aplikace.
- Projekt a aplikace Xcode 9+ v úložišti GitHub. Další informace najdete v tématu Vytvoření projektu Xcode pro aplikaci.
Vytvořte kanál
Důležité
Během postupů GitHubu se může zobrazit výzva k vytvoření připojení služby GitHub nebo k přesměrování na GitHub, abyste se mohli přihlásit, nainstalovat Azure Pipelines nebo autorizovat Azure Pipelines. Dokončete proces podle pokynů na obrazovce. Další informace najdete v tématu Přístup k úložištím GitHub.
- V projektu Azure DevOps vyberte Kanály>Nový kanál nebo Vytvořte kanál, pokud je tento kanál v projektu prvním kanálem.
- Jako umístění zdrojového kódu vyberte GitHub .
- Na obrazovce Vybrat úložiště vyberte úložiště pro váš projekt Xcode.
- Na obrazovce Konfigurace kanálu vyberte Xcode.
Azure Pipelines poskytuje počáteční kanál založený na šabloně Xcode . Zkontrolujte kód v azure-pipelines.yml.
Sestavení prostředí
Xcode je předinstalovaný na agentech macOS hostovaných Microsoftem v Azure Pipelines, takže nemusíte nastavovat žádnou infrastrukturu. Přesné verze Xcode, které jsou předinstalované, najdete v softwaru agentů hostovaných Microsoftem.
Uzel pool
v horní části souboru azure-pipelines.yml vybere příslušný fond agentů.
pool:
vmImage: 'macOS-latest'
Úloha sestavení Xcode
Úloha Xcode sestaví, testuje nebo archivuje pracovní prostor Xcode v systému macOS a volitelně může zabalit aplikaci. Krok Xcode v počátečním azure-pipelines.yml souboru sestaví projekt iOS pomocí výchozího schématu simulátoru a bez balení. Můžete změnit hodnoty a přidat parametry tak, aby odpovídaly konfiguraci projektu.
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
Ulož a spusť pipeline
Až dokončíte kontrolu kódu v azure-pipelines.yml, vyberte Uložit a spustit.
Volitelně můžete upravit commit zprávu a zadat popis. Potom vyberte Uložit a spusťte znovu, aby se soubor azure-pipelines.yml uložil do úložiště a spustil sestavení.
Na stránce běhu sestavení se zobrazují podrobnosti sestavení a jeho průběh. Pokud chcete sledovat pipeline v akci, vyberte Úlohu v dolní části stránky.
Teď máte v úložišti funkční kanál YAML, azure-pipelines.yml, který je připravený k přizpůsobení.
Přizpůsobte si svůj pipeline
Pokud chcete v kanálu udělat změny, na stránce kanálu vyberte Upravit . Následující části popisují některé běžné způsoby přizpůsobení kanálu Xcode.
Přidejte úlohy podepisování a zřizování
Aplikace Xcode musí být podepsaná a zřízená, aby mohla běžet na zařízení nebo publikovat do App Storu. Proces podepisování a zřizování musí mít přístup k podpisovému certifikátu P12 a k jednomu nebo více zřizovacím profilům. Další informace najdete v tématu Podepsání mobilní aplikace.
Pokud chcete certifikát a profil zpřístupnit Xcode během sestavování, přidejte do kanálu úlohy Instalace certifikátu Apple a Instalace zřizovacího profilu Apple.
Použití proměnné prostředí Carthage
Pokud váš projekt používá Carthage s privátním úložištěm Carthage, můžete nastavit ověřování pomocí proměnné prostředí s názvem GITHUB_ACCESS_TOKEN
s hodnotou tokenu, který má přístup k úložišti. Carthage automaticky detekuje a používá tuto proměnnou prostředí.
Nepřidávejte tajný token přímo do YAML souboru. Místo toho výběrem proměnných na stránce kanálu otevřete podokno Proměnné a vytvořte pro tento token proměnnou. Nezapomeňte povolit ikonu zámku pro šifrování hodnoty proměnné. Další informace naleznete v tématu Nastavení tajných proměnných.
Tento kód pipeline používá tajnou proměnnou pojmenovanou myGitHubAccessToken
pro hodnotu proměnné prostředí GITHUB_ACCESS_TOKEN
.
- script: carthage update --platform iOS
env:
GITHUB_ACCESS_TOKEN: $(myGitHubAccessToken)
Testování na zařízeních hostovaných v Azure
Pokud chcete svou aplikaci otestovat v hostovaném testovacím prostředí zařízení s iOSem v Centru aplikací sady Visual Studio, přidejte úlohu App Center Test do svého kanálu.
Tato úloha vyžaduje bezplatný zkušební účet App Center, který se po 30 dnech musí změnit na placený, aby bylo možné nadále používat testovací prostředí. Před použitím této úlohy si zaregistrujte účet App Center.
Varování
31. března 2025 je naplánované vyřazení sady Visual Studio App Center. Další informace o časových osách podpory a doporučených alternativách.
Nejprve se zaregistrujte pomocí App Center.
Následující příklad spustí testovací sadu App Center. Úloha používá připojení služby, které musíte nastavit.
Úplnou syntaxi úlohy a referenční informace najdete v tématu Testovací úloha App Center. Další informace najdete v tématu Použití Azure DevOps pro testování uživatelského rozhraní.
- 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'
Zachování artefaktů pomocí záznamu buildu
Pokud chcete uložit soubor balíčku AppStore pro iOS (IPA) se záznamem sestavení nebo ho otestovat a nasadit v následujících kanálech, přidejte úlohy Kopírovat soubory a Publikovat artefakty sestavení do vašeho kanálu. Další informace naleznete v dokumentu Publikování a stahování artefaktů kanálu.
- task: CopyFiles@2
inputs:
contents: '**/*.ipa'
targetFolder: '$(build.artifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
Nasazení do App Center
K distribuci aplikace skupině testerů nebo beta uživatelů, nebo pro její propagaci do Intune nebo Apple App Storu, přidejte úlohu App Center Distribute. Úkol vyžaduje bezplatný účet App Center , který zůstane zdarma.
Následující příklad distribuuje aplikaci uživatelům. Úplnou syntaxi úloh a referenční informace najdete v tématu Distribuce v App Center. Další informace najdete v tématu Nasazení buildů Azure DevOps pomocí 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'
Instalace rozšíření Apple App Store a nasazení do Apple App Storu
Pokud chcete automatizovat interakci s Apple App Storem, nainstalujte rozšíření Apple App Store a pak použijte ve svém kanálu následující úlohy. Ve výchozím nastavení se tyto úlohy ověřují u Společnosti Apple pomocí připojení služby, které musíte nakonfigurovat.
Pokud chcete automatizovat vydávání aktualizací stávajících beta aplikací pro iOS TestFlight nebo produkčních aplikací v App Storu, přidejte úlohu vydání z App Storu.
Používání této úlohy s dvoufaktorovým ověřováním Apple má určitá omezení. Ověřování Applu je specifické pro region a tokeny relace fastlane rychle vyprší, takže je třeba je opět vytvořit a znovu nakonfigurovat.
- 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
Pokud chcete automatizovat propagaci aplikace, která byla dříve odeslána z iTunes Connect do App Storu, přidejte úlohu App Store Promote.
- 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
Související rozšíření
- Apple App Store od Microsoftu
- Kodifikované zabezpečení z kodifikovaného zabezpečení
- MacinCloud od Moboware Inc.
- Úlohy mobilních aplikací pro iOS a Android od Jamese Montemagna
- Mobilní testovací laboratoř z Perfecto Mobile
- Raygun z Raygun
- React Native od Microsoftu
- Nastavovač verzí od Toma Gildera