Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Layanan Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Artikel ini memperlihatkan kepada Anda cara membangun dan menyebarkan proyek Xcode dengan alur YAML di Azure Pipelines.
Prasyarat
- Organisasi dan proyek Azure DevOps tempat Anda memiliki izin untuk membuat alur dan menyebarkan aplikasi.
- Proyek dan aplikasi Xcode 9+ di repositori GitHub. Untuk informasi selengkapnya, lihat Membuat Proyek Xcode untuk Aplikasi.
Membuat alur kerja
Penting
Selama prosedur GitHub, Anda mungkin diminta untuk membuat koneksi layanan GitHub atau dialihkan ke GitHub untuk masuk, menginstal Azure Pipelines, atau mengotorisasi Azure Pipelines. Ikuti instruksi di layar untuk menyelesaikan proses. Untuk informasi selengkapnya, lihat Akses ke repositori GitHub.
- Dalam proyek Azure DevOps Anda, pilih Pipeline>Pipeline baru, atau Buat pipeline jika pipeline ini adalah yang pertama dalam proyek.
- Pilih GitHub sebagai lokasi kode sumber Anda.
- Pada layar Pilih repositori, pilih repositori untuk proyek Xcode Anda.
- Pada layar Konfigurasikan alur Anda, pilih Xcode.
Azure Pipelines menyediakan alur kerja pemula berdasarkan templat Xcode. Tinjau kode di azure-pipelines.yml.
Membangun lingkungan
Xcode telah diinstal sebelumnya pada agen macOS yang dihosting Microsoft di Azure Pipelines, sehingga Anda tidak perlu menyiapkan infrastruktur apa pun. Untuk versi tepat dari Xcode yang telah diinstal sebelumnya, lihat perangkat lunak agen yang dihosting oleh Microsoft.
Simpul pool di bagian atas file azure-pipelines.yml Anda memilih kumpulan agen yang sesuai.
pool:
vmImage: 'macOS-latest'
Tugas Penyusunan Xcode
Tugas Xcode membangun, menguji, atau mengarsipkan ruang kerja Xcode di macOS, dan dapat secara opsional mengemas aplikasi. Langkah Xcode dalam file azure-pipelines.yml starter membangun proyek iOS dengan menggunakan skema defaultnya, untuk Simulator, dan tanpa kemasan. Anda dapat mengubah nilai dan menambahkan parameter agar sesuai dengan konfigurasi proyek Anda.
Build pengembangan:
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
Build untuk rilis di App Store:
Untuk rilis produksi, tentukan versi Xcode eksplisit, skema aplikasi Anda, dan konfigurasi Rilis:
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'
Perbedaan utama untuk produksi:
-
xcodeVersion: Tentukan versi tetap (misalnya,
'14') alih-alih'default'untuk build yang konsisten dan dapat direproduksi. - skema: Ganti string kosong dengan nama skema aplikasi Anda yang sebenarnya.
-
sdk: Gunakan
'iphoneos'untuk build perangkat; gunakan'iphonesimulator'untuk build simulator. -
konfigurasi: Gunakan
'Release'untuk produksi; gunakan'Debug'untuk pengembangan. -
packageApp: Atur ke
trueuntuk menghasilkan.ipafile untuk distribusi. - exportPath: Mengarahkan output paket ke direktori penahapan build untuk penerbitan artefak.
Simpan dan jalankan pipeline
Saat Anda selesai meninjau kode di azure-pipelines.yml, pilih Simpan dan jalankan.
Secara opsional, edit pesan Commit dan berikan deskripsi. Lalu pilih Simpan dan jalankan lagi untuk menerapkan file azure-pipelines.yml ke repositori Anda dan memulai build.
Halaman jalur build menunjukkan detail dan progres build. Jika Anda ingin menonton pipeline Anda beraksi, pilih Tugas di bagian bawah halaman.
Anda sekarang memiliki alur YAML yang berfungsi, azure-pipelines.yml, di repositori Anda yang siap untuk disesuaikan.
Personalisasikan alur Anda
Untuk membuat perubahan pada alur Anda, pilih Edit di halaman alur. Bagian berikut menjelaskan beberapa cara umum untuk menyesuaikan alur Xcode Anda berdasarkan kebutuhan spesifik Anda:
- Penandatanganan dan provisi: Diperlukan untuk menyebarkan ke perangkat fisik atau App Store.
- Manajemen dependensi: Konfigurasikan autentikasi untuk repositori privat.
- Manajemen artefak: Simpan output build untuk pengujian dan penyebaran.
- Distribusi: Mengotomatiskan rilis ke TestFlight atau App Store.
Menambahkan tugas penandatanganan dan penyediaan
Untuk menjalankan aplikasi Xcode di perangkat fisik atau menerbitkannya ke App Store, Anda perlu menandatangani dan memprovisikan aplikasi. Proses ini melibatkan penggunaan sertifikat penandatanganan P12 (kredensial keamanan yang memverifikasi identitas aplikasi Anda) dan profil provisi (yang mengotorisasi aplikasi Anda untuk perangkat atau distribusi tertentu). Untuk informasi selengkapnya, lihat Menandatangani aplikasi seluler Anda.
Untuk membuat sertifikat dan profil tersedia untuk Xcode selama proses build, tambahkan tugas Instal Sertifikat Apple dan tugas Instal Profil Provisi Apple ke alur Anda.
Mengelola dependensi
Proyek Xcode Anda mungkin menggunakan manajer dependensi untuk menangani pustaka dan kerangka kerja pihak ketiga. Bagian berikut menjelaskan cara mengonfigurasi autentikasi untuk repositori privat dengan manajer dependensi yang berbeda.
Pengelola Paket Swift
Swift Package Manager (SPM) adalah manajer dependensi asli Apple dan diintegrasikan langsung ke dalam Xcode. Untuk proyek yang menggunakan SPM dengan paket privat, Anda perlu mengonfigurasi autentikasi Git.
Jika paket Swift privat Anda dihosting di GitHub, siapkan autentikasi dengan menggunakan variabel lingkungan bernama GITHUB_ACCESS_TOKEN dengan nilai token akses pribadi yang memiliki akses ke repositori.
Jangan tambahkan token rahasia langsung ke YAML alur Anda, karena tindakan ini mengeksposnya dalam kode sumber Anda. Untuk informasi selengkapnya, lihat Mengatur variabel rahasia.
Kode alur berikut menggunakan variabel rahasia bernama myGitHubAccessToken untuk autentikasi saat menyelesaikan dependensi Paket Swift:
- task: Xcode@5
inputs:
actions: 'build'
scheme: ''
sdk: 'iphoneos'
configuration: 'Release'
xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
env:
GITHUB_ACCESS_TOKEN: $(myGitHubAccessToken)
Untuk paket privat yang dihosting di Azure Repos atau penyedia Git lainnya, konfigurasikan kredensial Git yang sesuai sebelum langkah build.
CocoaPods
Jika proyek Anda menggunakan CocoaPods, gunakan tugas CocoaPods untuk menginstal dependensi.
- task: CocoaPods@0
inputs:
workingDirectory: '$(System.DefaultWorkingDirectory)'
forceRepo: false
Carthage
Jika proyek Anda menggunakan Carthage (manajer dependensi untuk proyek iOS/macOS) dengan repositori Carthage privat, siapkan autentikasi dengan menggunakan variabel lingkungan bernama GITHUB_ACCESS_TOKEN dengan nilai token yang memiliki akses ke repositori. Carthage secara otomatis mendeteksi dan menggunakan variabel lingkungan ini.
Jangan tambahkan token rahasia langsung ke YAML alur Anda, karena tindakan ini mengeksposnya dalam kode sumber Anda. Untuk informasi selengkapnya, lihat Mengatur variabel rahasia.
Kode alur berikut menggunakan variabel rahasia bernama myGitHubAccessToken untuk nilai GITHUB_ACCESS_TOKEN variabel lingkungan.
- script: carthage update --platform iOS
displayName: 'Update Carthage dependencies'
env:
GITHUB_ACCESS_TOKEN: $(myGitHubAccessToken)
Uji di perangkat yang dihosting Azure
Visual Studio App Center dihentikan pada 31 Maret 2025. Pelajari tentang alternatif yang direkomendasikan.
Simpan artefak dengan catatan build
Untuk menyimpan file Paket AppStore (IPA) iOS Anda bersama catatan build atau untuk uji coba dan menerapkannya di pipeline berikutnya, tambahkan tugas Salin File dan Terbitkan Artefak Pipeline ke pipeline Anda.
- task: CopyFiles@2
inputs:
contents: '**/*.ipa'
targetFolder: '$(build.artifactStagingDirectory)'
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(build.artifactStagingDirectory)'
artifact: 'drop'
Menyebarkan ke Apple App Store atau TestFlight
Untuk mendistribusikan aplikasi kepada penguji atau pengguna beta, gunakan TestFlight Apple atau sebarkan langsung ke App Store. Lihat bagian di bawah ini untuk distribusi Apple App Store.
Untuk pengujian beta dan umpan balik pengguna, pertimbangkan untuk menggunakan:
- Apple TestFlight
- Platform pengujian beta pihak ketiga seperti Firebase App Distribution
Instal ekstensi Apple App Store dan sebarkan ke Apple App Store
Untuk mengotomatiskan interaksi dengan Apple App Store, instal ekstensi Apple App Store, lalu gunakan tugas berikut di alur Anda. Secara default, tugas-tugas ini mengautentikasi ke Apple dengan menggunakan koneksi layanan yang harus Anda konfigurasi.
Untuk mengotomatiskan rilis pembaruan ke aplikasi beta TestFlight iOS atau aplikasi produksi yang ada di App Store, tambahkan tugas Rilis App Store.
Ada batasan saat menggunakan tugas ini dengan autentikasi dua faktor Apple. Autentikasi Apple khusus wilayah, dan token sesi fastlane (kredensial sementara yang digunakan untuk mengautentikasi dengan Apple) kedaluwarsa dengan cepat dan harus dibuat ulang dan dikonfigurasi ulang secara berkala.
- 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
Untuk mengotomatiskan promosi aplikasi yang dikirim sebelumnya dari iTunes Connect ke App Store, tambahkan Tugas Promosi App Store.
- 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
Ekstensi terkait
- Apple App Store dari Microsoft
- Keamanan Terkodifikasi dari Codified Security
- MacinCloud dari Moboware Inc.
- Tugas Aplikasi Seluler untuk iOS dan Android dari James Montemagno
- Mobile Testing Lab dari Perfecto Mobile
- Raygun dari Raygun
- React Native dari Microsoft
- Pengeset Versi dari Tom Gilder