Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Ez a cikk 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 folyamatlánc 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óért lásd: Hozzáférés a GitHub-tárházakhoz.
- Az Azure DevOps-projektben válassza a > 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 építé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á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.
Fejlesztési 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
Éles build az App Store-hoz:
Éles kiadások esetén adja meg az explicit Xcode-verziót, az alkalmazás sémáját és a kiadási konfigurációt:
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'
A gyártási környezet főbb eltérései:
-
xcodeVersion: Konzisztens, reprodukálható buildek helyett
'14'adjon meg rögzített verziót (pl.'default') - séma: Cserélje le az üres sztringet az alkalmazás tényleges sémanevére.
-
sdk: Eszköz buildekhez;
'iphoneos'szimulátor-buildekhez használható'iphonesimulator'. -
konfiguráció: Éles használatra;
'Release'fejlesztésre használható'Debug'. -
packageApp: Úgy van beállítva, hogy
trueegy fájlt hozzon létre.ipaa terjesztéshez. - exportPath: A csomag kimenetét a build előkészítési könyvtárába irányítja az összetevők közzétételéhez.
Mentse és futtassa a pipeline-t
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 az adattárban egy működő YAML-pipeline-nel (azure-pipelines.yml), amely készen áll a testreszabásra.
A munkafolyamat 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 ismertetik az Xcode-folyamat egyedi igények szerinti testreszabásának néhány gyakori módját:
- Aláírás és kiépítés: A fizikai eszközökön vagy az App Store-ban való üzembe helyezéshez szükséges.
- Függőségkezelés: A magánadattárak hitelesítésének konfigurálása.
- Összetevők kezelése: Buildkimenetek tárolása teszteléshez és üzembe helyezéshez.
- Elosztás: A TestFlight vagy az App Store kiadásának automatizálása.
Aláírási és telepítési feladatok hozzáadása
Az Xcode-alkalmazás fizikai eszközön való futtatásához vagy az App Store-ban való közzétételéhez alá kell írnia és ki kell építenie az alkalmazást. Ez a folyamat magában foglalja egy P12 aláíró tanúsítványnak (egy biztonsági hitelesítő adat, amely ellenőrzi az alkalmazás identitását) és telepítési profiloknak (amelyek engedélyezik az alkalmazást adott eszközökre vagy terjesztésre) a felhasználását. 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.
Függőségek kezelése
Az Xcode-projekt függőségkezelőkkel kezelheti a külső kódtárakat és keretrendszereket. A következő szakaszok bemutatják, hogyan konfigurálható a hitelesítés a különböző függőségkezelőkkel rendelkező magánadattárakhoz.
Swift Package Manager
A Swift Package Manager (SPM) az Apple natív függőségkezelője, és közvetlenül az Xcode-ba van integrálva. Az SPM-et magáncsomagokkal használó projektek esetében konfigurálnia kell a Git-hitelesítést.
Ha a privát Swift-csomagokat a GitHubon üzemelteti, állítson be hitelesítést egy olyan környezeti változóval, GITHUB_ACCESS_TOKEN amely egy személyes hozzáférési jogkivonat értékével rendelkezik, amely rendelkezik hozzáféréssel az adattárhoz.
Ne adja hozzá a titkos jogkivonatot közvetlenül a folyamat YAML-éhez, mivel ez a művelet a forráskódban teszi elérhetővé. További információ: Titkos kódváltozók beállítása.
A következő folyamatkód egy hitelesítéshez elnevezett myGitHubAccessToken titkos változót használ a Swift Package-függőségek feloldásakor:
- task: Xcode@5
inputs:
actions: 'build'
scheme: ''
sdk: 'iphoneos'
configuration: 'Release'
xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
env:
GITHUB_ACCESS_TOKEN: $(myGitHubAccessToken)
Az Azure Reposon vagy más Git-szolgáltatókon üzemeltetett privát csomagok esetében a buildelési lépés előtt konfigurálja a megfelelő Git-hitelesítő adatokat.
CocoaPods
Ha a projekt CocoaPodsot használ, a CocoaPods-feladat használatával telepítse a függőségeket.
- task: CocoaPods@0
inputs:
workingDirectory: '$(System.DefaultWorkingDirectory)'
forceRepo: false
Karthágó
Ha a projekt a Carthage-t (iOS/macOS-projektek függőségkezelőjét) használja egy privát Carthage-adattárral, állítson be hitelesítést egy olyan környezeti változóval, amely egy olyan jogkivonat értékével van elnevezve GITHUB_ACCESS_TOKEN , amely hozzáfér 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, mivel ez a művelet a forráskódban teszi elérhetővé. További információ: Titkos kódváltozók beállítása.
Az alábbi folyamatkód egy myGitHubAccessToken nevű titkos változót használ a GITHUB_ACCESS_TOKEN környezeti változó értékeként.
- script: carthage update --platform iOS
displayName: 'Update Carthage dependencies'
env:
GITHUB_ACCESS_TOKEN: $(myGitHubAccessToken)
Tesztelés Az Azure által üzemeltetett eszközökön
A Visual Studio App Center 2025. március 31-én megszűnt. Megismerheti az ajánlott alternatívákat.
Ö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 Folyamatösszetevők közzététele feladatokat a folyamathoz.
- task: CopyFiles@2
inputs:
contents: '**/*.ipa'
targetFolder: '$(build.artifactStagingDirectory)'
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(build.artifactStagingDirectory)'
artifact: 'drop'
Üzembe helyezés az Apple App Store-ban vagy a TestFlightban
Ha egy alkalmazást tesztelőknek vagy bétafelhasználóknak szeretne terjeszteni, használja az Apple TestFlightot, vagy helyezze üzembe közvetlenül az App Store-ban. Az Apple App Store üzembe helyezéséről az alábbi szakaszban olvashat.
A bétateszteléshez és a felhasználói visszajelzésekhez fontolja meg az alábbiak használatát:
- Apple TestFlight
- Külső bétatesztelési platformok, például a Firebase alkalmazásterjesztése
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.
A feladat Apple kéttényezős hitelesítéssel történő használatakor korlátozások vannak érvényben. Az Apple-hitelesítés régióspecifikus, és a fastlane munkamenet-jogkivonatok (az Apple-hitelesítéshez használt ideiglenes hitelesítő adatok) gyorsan lejárnak, és rendszeresen ú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-től.
- 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