Sdílet prostřednictvím


Sestavování, testování a nasazování aplikací Xcode

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

V tomto článku 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.

  1. 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.
  2. Jako umístění zdrojového kódu vyberte GitHub .
  3. Na obrazovce Vybrat úložiště vyberte úložiště pro váš projekt Xcode.
  4. 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 může volitelně zabalit aplikaci. Krok Xcode ve startovacím souboru azure-pipelines.yml sestaví projekt iOS pomocí svého výchozího schématu pro simulátor a bez balení. Můžete změnit hodnoty a přidat parametry tak, aby odpovídaly konfiguraci projektu.

Vývojový build:

steps:
- task: Xcode@5
  inputs:
    actions: 'build'
    scheme: ''
    sdk: 'iphonesimulator'
    configuration: 'Debug'
    xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
    xcodeVersion: 'default' # Options: 10, 11, 12, 13, 14, default, specifyPath

Produkční sestavení pro App Store:

V případě produkčních verzí zadejte explicitní verzi Xcode, schéma vaší aplikace a konfiguraci vydané verze:

steps:
- task: Xcode@5
  inputs:
    actions: 'build'
    scheme: 'YourAppScheme'
    sdk: 'iphoneos'
    configuration: 'Release'
    xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
    xcodeVersion: '14'
    packageApp: true
    exportPath: '$(build.artifactStagingDirectory)'
    exportOptions: 'automatic'

Hlavní rozdíly v produkčním prostředí:

  • xcodeVersion: Místo konzistentních reprodukovatelných buildů zadejte pevnou verzi (např '14'. ) 'default' .
  • scheme: Nahraďte prázdný řetězec skutečným názvem schématu vaší aplikace.
  • SDK: Používá se 'iphoneos' pro sestavení zařízení, používá 'iphonesimulator' se pro sestavení simulátoru.
  • konfigurace: Použití 'Release' pro produkční prostředí, použití 'Debug' pro vývoj.
  • packageApp: Nastavte na vygenerování true.ipa souboru pro distribuci.
  • exportPath: Směruje výstup balíčku do přípravného adresáře sestavení pro publikování artefaktů.

Ulož a spusť pipeline

Až dokončíte kontrolu kódu v azure-pipelines.yml, vyberte Uložit a spustit.

Snímek obrazovky s tlačítkem Uložit a spustit v novém kanálu YAML

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 na základě vašich konkrétních potřeb:

  • Podepisování a zřizování: Vyžaduje se k nasazení do fyzických zařízení nebo App Storu.
  • Správa závislostí: Nakonfigurujte ověřování pro privátní úložiště.
  • Správa artefaktů: Uložte výstupy sestavení pro testování a nasazení.
  • Distribuce: Automatizujte vydání do TestFlightu nebo App Storu.

Přidejte úlohy podepisování a zřizování

Pokud chcete spustit svou aplikaci Xcode na fyzickém zařízení nebo ji publikovat do App Store, musíte aplikaci podepsat a připravit pro zveřejnění. Tento proces zahrnuje použití podpisového certifikátu P12 (přihlašovacích údajů zabezpečení, které ověřuje identitu vaší aplikace) a zřizovacích profilů (které autorizuje vaši aplikaci pro konkrétní zařízení nebo distribuci). 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.

Správa závislostí

Váš projekt Xcode může používat správce závislostí ke zpracování knihoven a architektur třetích stran. Následující části popisují, jak nakonfigurovat ověřování pro privátní úložiště s různými správci závislostí.

Správce balíčků Swift

Swift Package Manager (SPM) je nativní správce závislostí společnosti Apple a je integrovaný přímo do Xcode. U projektů, které používají SPM s privátními balíčky, je potřeba nakonfigurovat ověřování Gitu.

Pokud jsou vaše privátní balíčky Swift hostované na GitHubu, nastavte ověřování pomocí proměnné prostředí s názvem GITHUB_ACCESS_TOKEN s hodnotou osobního přístupového tokenu, který má přístup k úložišti.

Nepřidávejte tajný token přímo do YAML konfigurace, protože tato akce ho zveřejňuje ve zdrojovém kódu. Další informace naleznete v tématu Nastavení tajných proměnných.

Následující kód pipeliny používá při překladu závislostí balíčku Swift tajnou proměnnou pojmenovanou myGitHubAccessToken pro ověřování:

- task: Xcode@5
  inputs:
    actions: 'build'
    scheme: ''
    sdk: 'iphoneos'
    configuration: 'Release'
    xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
  env:
    GITHUB_ACCESS_TOKEN: $(myGitHubAccessToken)

Pro privátní balíčky hostované v Azure Repos nebo jiných poskytovatelích Gitu nakonfigurujte příslušné přihlašovací údaje Gitu před krokem sestavení.

Kakaopodi

Pokud váš projekt používá CocoaPods, použijte úlohu CocoaPods k instalaci závislostí.

- task: CocoaPods@0
  inputs:
    workingDirectory: '$(System.DefaultWorkingDirectory)'
    forceRepo: false

Kartágo

Pokud váš projekt používá Carthage (správce závislostí pro projekty iOS/macOS) s privátním úložištěm Carthage, nastavte 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 konfigurace, protože tato akce ho zveřejňuje ve zdrojovém kódu. 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
  displayName: 'Update Carthage dependencies'
  env:
    GITHUB_ACCESS_TOKEN: $(myGitHubAccessToken)

Testování na zařízeních hostovaných v Azure

Visual Studio App Center bylo vyřazeno 31. března 2025. Přečtěte si o doporučených alternativách.

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 dalších potrubích, přidejte do potrubí úlohy Kopírovat soubory a Publikovat artefakty potrubí.

- task: CopyFiles@2
  inputs:
    contents: '**/*.ipa'
    targetFolder: '$(build.artifactStagingDirectory)'
- task: PublishPipelineArtifact@1
  inputs:
    targetPath: '$(build.artifactStagingDirectory)'
    artifact: 'drop'

Nasazení do Apple App Storu nebo TestFlight

Pokud chcete aplikaci distribuovat testerům nebo beta uživatelům, použijte TestFlight společnosti Apple nebo ji nasaďte přímo do App Storu. Podívejte se na následující část nasazení Apple App Storu.

V případě beta testování a zpětné vazby uživatelů zvažte použití:

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.

Při použití této úlohy s dvoufaktorovým ověřováním Apple platí určitá omezení. Ověřování Apple je specifické pro jednotlivé oblasti a platnost tokenů relace fastlane (dočasné přihlašovací údaje používané k ověření pomocí Apple) vyprší rychle a musí se pravidelně znovu 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