Megosztás a következőn keresztül:


Xcode-alkalmazások készítése, tesztelése és üzembe helyezése

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Ez a rövid útmutató bemutatja, hogyan hozhat létre és helyezhet üzembe Xcode-projekteket YAML-folyamatokkal az Azure Pipelinesban.

Előfeltételek

  • Egy Azure DevOps-szervezet és -projekt, amelyben engedéllyel rendelkezik folyamatok létrehozására és alkalmazások üzembe helyezésére.
  • Xcode 9+ projekt és alkalmazás egy GitHub-adattárban. További információ: Xcode-projekt létrehozása alkalmazáshoz.

A folyamat létrehozása

Fontos

A GitHub-eljárások során előfordulhat, hogy a rendszer arra kéri, hogy hozzon létre egy GitHub-szolgáltatáskapcsolatot , vagy átirányítsa a GitHubra a bejelentkezéshez, az Azure Pipelines telepítéséhez vagy az Azure Pipelines engedélyezéséhez. A folyamat befejezéséhez kövesse a képernyőn megjelenő utasításokat. További információ: Access to GitHub-adattárak.

  1. Az Azure DevOps-projektben válassza a Pipelines>New (Folyamatok új) vagy a Create pipeline (Folyamat létrehozása) lehetőséget, ha ez a folyamat az első a projektben.
  2. Válassza a GitHubot a forráskód helyeként.
  3. Az Adattár kiválasztása képernyőn válassza ki az Xcode-projekt adattárát.
  4. A folyamat konfigurálása képernyőn válassza az Xcode lehetőséget.

Az Azure Pipelines egy Xcode-sablonon alapuló kezdőfolyamatot biztosít. Tekintse át a kódot a azure-pipelines.yml.

Környezet létrehozása

Az Xcode előre telepítve van a Microsoft által üzemeltetett macOS-ügynökökre az Azure Pipelinesban, így nem kell infrastruktúrát beállítania. Az előre telepített Xcode pontos verzióiért lásd a Microsoft által üzemeltetett ügynökök szoftverét.

A pool azure-pipelines.yml fájl tetején lévő csomópont kiválasztja a megfelelő ügynökkészletet.

pool:
  vmImage: 'macOS-latest'

Xcode buildelési feladat

Az Xcode-feladat létrehoz, tesztel vagy archivál egy Xcode-munkaterületet macOS rendszeren, és opcionálisan becsomagolhat egy alkalmazást. A kezdő azure-pipelines.yml fájl Xcode lépése az iOS-projektet az alapértelmezett sémájával, a szimulátorhoz és csomagolás nélkül hozza létre. Módosíthatja az értékeket, és paramétereket adhat hozzá a projektkonfigurációnak megfelelően.

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

A folyamat mentése és futtatása

Amikor befejezte a kód áttekintését a azure-pipelines.yml, válassza a Mentés és futtatás lehetőséget.

Képernyőkép egy új YAML-folyamat Mentés és futtatás gombjáról.

Igény szerint szerkessze a véglegesítési üzenetet , és adjon meg egy leírást. Ezután válassza a Mentés lehetőséget, és futtassa újra a azure-pipelines.yml fájlt az adattárban való véglegesítéséhez, és indítsa el a buildet.

A buildelési oldal a build részleteit és a folyamat előrehaladását mutatja. Ha működés közben szeretné megtekinteni a folyamatot, válassza a Feladat lehetőséget a lap alsó részén.

Most már rendelkezik egy működő YAML-folyamat( azure-pipelines.yml) az adattárban, amely készen áll a testreszabásra.

A folyamat testreszabása

Ha módosítani szeretné a folyamatot, válassza a Szerkesztés lehetőséget a folyamat lapján. Az alábbi szakaszok az Xcode-folyamat testreszabásának néhány gyakori módját ismertetik.

Aláírási és kiépítési feladatok hozzáadása

Az Xcode-alkalmazásokat alá kell írni és ki kell építeni ahhoz, hogy egy eszközön fussanak, vagy közzétehessék az App Store-ban. Az aláírási és kiépítési folyamatnak hozzá kell férnie a P12 aláíró tanúsítványához és egy vagy több kiépítési profilhoz. További információ: A mobilalkalmazás aláírása.

Ha elérhetővé szeretné tenni a tanúsítványt és a profilt az Xcode számára a buildelés során, adja hozzá az Apple-tanúsítvány telepítését és az Apple Provisioning Profile-feladatok telepítését a folyamathoz.

Carthage környezeti változó használata

Ha a projekt a Carthage-t privát Karthage-adattárral használja, a hitelesítést egy olyan környezeti változóval állíthatja be, amely egy olyan jogkivonat értékével van elnevezve GITHUB_ACCESS_TOKEN , amely rendelkezik hozzáféréssel az adattárhoz. A Karthage automatikusan észleli és használja ezt a környezeti változót.

Ne adja hozzá a titkos jogkivonatot közvetlenül a folyamat YAML-éhez. Ehelyett válassza a Változók lehetőséget a folyamatoldalon a Változók panel megnyitásához, és hozzon létre egy változót ehhez a jogkivonathoz. Mindenképpen engedélyezze a zárolás ikont a változó értékének titkosításához. További információ: Titkos kódváltozók beállítása.

Az alábbi folyamatkód egy, a környezeti változó értékéhez elnevezett myGitHubAccessToken titkos változót GITHUB_ACCESS_TOKEN használ.

- script: carthage update --platform iOS
  env:
    GITHUB_ACCESS_TOKEN: $(myGitHubAccessToken)

Tesztelés Az Azure által üzemeltetett eszközökön

Ha a Visual Studio App Centerben iOS-eszközök üzemeltetett tesztkörnyezetében szeretné tesztelni az alkalmazást, adja hozzá az App Center tesztelési feladatát a folyamathoz.

Ehhez a feladathoz egy ingyenes App Center-próbafiókra van szükség, amelyet 30 nap után fizetőssé kell alakítani a tesztlabor használatához. A feladat használata előtt regisztráljon egy App Center-fiókot .

Az alábbi példa egy App Center-tesztcsomagot futtat. A feladat egy szolgáltatáskapcsolatot használ, amelyet be kell állítania.

A teljes tevékenységszintaxis és -referencia az App Center tesztelési feladatában található. További információ: Az Azure DevOps használata felhasználói felületi teszteléshez.

- 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'

Összetevők megőrzése a buildrekorddal

Ha az iOS AppStore-csomag (IPA) fájlját a buildrekorddal szeretné tárolni, vagy tesztelni szeretné és üzembe szeretné helyezni a későbbi folyamatokban, adja hozzá a Fájlok másolása és a Build Artifacts-feladatok közzététele a folyamathoz. További információ: Folyamatösszetevők közzététele és letöltése.

- task: CopyFiles@2
  inputs:
    contents: '**/*.ipa'
    targetFolder: '$(build.artifactStagingDirectory)'
- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'

Üzembe helyezés az App Centerben

Ha egy alkalmazást tesztelők vagy bétafelhasználók egy csoportjának szeretne terjeszteni, vagy elő szeretné segíteni az alkalmazást az Intune-ban vagy az Apple App Store-ban, adja hozzá az App Center Distribute feladatot. A feladathoz ingyenes App Center-fiók szükséges, amely továbbra is ingyenes.

Az alábbi példa egy alkalmazást terjeszt a felhasználók között. A teljes tevékenységszintaxis és -referencia az App Center Distribute című témakörben található. További információ: Azure DevOps-buildek üzembe helyezése az App Centerrel.

- 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'

Az Apple App Store bővítmény telepítése és üzembe helyezése az Apple App Store-ban

Az Apple App Store-ral való interakció automatizálásához telepítse az Apple App Store bővítményt, majd használja a folyamat következő feladatait. Alapértelmezés szerint ezek a feladatok egy konfigurálni kívánt szolgáltatáskapcsolat használatával hitelesítik az Apple-t.

Ha automatizálni szeretné a meglévő iOS TestFlight bétaalkalmazások vagy éles alkalmazások frissítéseinek kiadását az App Store-ban, adja hozzá az App Store kiadási feladatát.

Ennek a feladatnak az Apple kéttényezős hitelesítéssel való használatára korlátozások vonatkoznak. Az Apple-hitelesítés régióspecifikus, és a fastlane munkamenet-jogkivonatok gyorsan lejárnak, és újra létre kell hozni és újra kell konfigurálni.

- 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

Ha automatizálni szeretné egy korábban elküldött alkalmazás előléptetését az iTunes Connectből az App Store-ba, adja hozzá az App Store előléptetési feladatát.

- 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