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.
- 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.
- Válassza a GitHubot a forráskód helyeként.
- Az Adattár kiválasztása képernyőn válassza ki az Xcode-projekt adattárát.
- 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.
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
Kapcsolódó bővítmények
- Apple App Store a Microsofttól
- Kodifikált biztonság a kodifikált biztonságból
- MacinCloud a Moboware Inc.
- Mobilalkalmazás-feladatok iOS-hez és Androidhoz James Montemagno-tól
- Mobile Testing Lab a Perfecto Mobile-tól
- Raygun a Rayguntól
- React Native a Microsofttól
- Verzióválasztó Tom Gildertől