Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Bu makalede, Azure Pipelines'da YAML işlem hatları ile Xcode projeleri derleme ve dağıtma adımları gösterilmektedir.
Önkoşullar
- İşlem hatları oluşturma ve uygulama dağıtma izninizin olduğu bir Azure DevOps kuruluşu ve projesi.
- GitHub deposundaki bir Xcode 9+ projesi ve uygulaması. Daha fazla bilgi için bkz . Uygulama için Xcode Projesi Oluşturma.
İşlem hattını oluşturma
Önemli
GitHub yordamları sırasında, oturum açmak, Azure Pipelines'ı yüklemek veya Azure Pipelines'ı yetkilendirmek için GitHub hizmet bağlantısı oluşturmanız veya GitHub'a yönlendirilmeniz istenebilir. İşlemi tamamlamak için ekrandaki yönergeleri izleyin. Daha fazla bilgi için bkz . GitHub depolarına erişim.
- Azure DevOps projenizde İşlem Hatları> veya projenin ilk işlem hattıysa İşlem hattı oluştur'u seçin.
- Kaynak kodunuzun konumu olarak GitHub'ı seçin.
- Depo seçin ekranında Xcode projenizin deposunu seçin.
- İşlem hattınızı yapılandırın ekranında Xcode'ı seçin.
Azure Pipelines, Xcode şablonunu temel alan bir başlangıç işlem hattı sağlar. kodu azure-pipelines.yml gözden geçirin.
Derleme ortamı
Xcode, Azure Pipelines'da Microsoft tarafından barındırılan macOS aracılarına önceden yüklenmiştir, bu nedenle herhangi bir altyapı ayarlamanız gerekmez. Önceden yüklenmiş Xcode'un tam sürümleri için bkz . Microsoft tarafından barındırılan aracılar yazılımı.
pool azure-pipelines.yml dosyanızın üst kısmındaki düğüm uygun aracı havuzunu seçer.
pool:
vmImage: 'macOS-latest'
Xcode derleme görevi
Xcode görevi macOS üzerinde bir Xcode çalışma alanı oluşturur, test eder veya arşivler ve isteğe bağlı olarak bir uygulamayı paketleyebilir. Starter azure-pipelines.yml dosyasındaki Xcode adımı, iOS projesini simülatör için varsayılan şemasını kullanarak ve paketlemeden oluşturur. Proje yapılandırmanızla eşleşecek şekilde değerleri değiştirebilir ve parametreler ekleyebilirsiniz.
Geliştirme derlemesi:
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
App Store için üretim derlemesi:
Üretim sürümleri için açık bir Xcode sürümü, uygulamanızın şeması ve Yayın yapılandırması belirtin:
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'
Üretim için önemli farklar:
-
xcodeVersion: Tutarlı, yeniden üretilebilir derlemeler yerine
'14'sabit bir sürüm (ör'default'. ) belirtin. - scheme: Boş dizeyi uygulamanızın gerçek düzen adıyla değiştirin.
-
sdk: Cihaz derlemeleri için kullanın
'iphoneos'; simülatör derlemeleri için kullanın'iphonesimulator'. -
yapılandırma: Üretim için kullanın
'Release'; geliştirme için kullanın'Debug'. -
packageApp: Dağıtım için bir
truedosya oluşturmak üzere olarak ayarlayın.ipa. - exportPath: Yapıt yayımlama için paket çıkışını derleme hazırlama dizinine yönlendirir.
İşlem hattını kaydetme ve çalıştırma
azure-pipelines.yml'da kodu gözden geçirmeyi bitirdiğinizde Kaydet ve çalıştır'ı seçin.
İsteğe bağlı olarak, İşleme iletisini düzenleyin ve bir açıklama sağlayın. Ardından Kaydet'i seçip yeniden çalıştırarak azure-pipelines.yml dosyasını deponuza işleyip bir derleme başlatın.
Derleme çalıştırması sayfasında derleme ayrıntıları ve ilerleme durumu gösterilir. İşlem hattınızın nasıl çalıştığını izlemek istiyorsanız sayfanın alt kısmındaki İş'i seçin.
Artık deponuzda özelleştirmeye hazır azure-pipelines.yml çalışan bir YAML işlem hattınız var.
İşlem hattınızı özelleştirme
İşlem hattınızda değişiklik yapmak için işlem hattı sayfasında Düzenle'yi seçin. Aşağıdaki bölümlerde Xcode işlem hattınızı özel gereksinimlerinize göre özelleştirmenin bazı yaygın yolları açıklanmaktadır:
- İmzalama ve sağlama: Fiziksel cihazlara veya App Store'a dağıtmak için gereklidir.
- Bağımlılık yönetimi: Özel depolar için kimlik doğrulamasını yapılandırın.
- Yapıt yönetimi: Test ve dağıtım için derleme çıkışlarını depolayın.
- Dağıtım: TestFlight veya App Store'a sürümü otomatikleştirin.
İmzalama ve sağlama görevleri ekleme
Xcode uygulamanızı fiziksel bir cihazda çalıştırmak veya App Store'da yayımlamak için uygulamayı imzalamanız ve sağlamanız gerekir. Bu işlem, bir P12 imzalama sertifikası (uygulamanızın kimliğini doğrulayan bir güvenlik kimlik bilgisi) ve sağlama profilleri (uygulamanızı belirli cihazlar veya dağıtım için yetkilendiren) kullanmayı içerir. Daha fazla bilgi için bkz . Mobil uygulamanızı imzalama.
Sertifikayı ve profili derleme sırasında Xcode'un kullanımına açmak için, işlem hattınıza Apple Sertifikasını Yükle ve Apple Sağlama Profili Yükle görevlerini ekleyin.
Bağımlılıkları yönetme
Xcode projeniz, üçüncü taraf kitaplıkları ve çerçeveleri işlemek için bağımlılık yöneticilerini kullanabilir. Aşağıdaki bölümlerde, farklı bağımlılık yöneticileriyle özel depolar için kimlik doğrulamasının nasıl yapılandırıldığı açıklanmaktadır.
Swift Paket Yöneticisi
Swift Paket Yöneticisi (SPM), Apple'ın yerel bağımlılık yöneticisidir ve doğrudan Xcode ile tümleşiktir. Özel paketlerle SPM kullanan projeler için Git kimlik doğrulamasını yapılandırmanız gerekir.
Özel Swift paketleriniz GitHub'da barındırılıyorsa, depoya erişimi olan kişisel erişim belirtecinin değeriyle adlı GITHUB_ACCESS_TOKEN bir ortam değişkeni kullanarak kimlik doğrulamasını ayarlayın.
Bu eylem kaynak kodunuzda kullanıma sunarken gizli dizi belirtecini doğrudan işlem hattı YAML'nize eklemeyin. Daha fazla bilgi için bkz . Gizli dizi değişkenlerini ayarlama.
Aşağıdaki işlem hattı kodu, Swift Paketi bağımlılıklarını çözerken kimlik doğrulaması için adlı myGitHubAccessToken bir gizli dizi değişkeni kullanır:
- task: Xcode@5
inputs:
actions: 'build'
scheme: ''
sdk: 'iphoneos'
configuration: 'Release'
xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
env:
GITHUB_ACCESS_TOKEN: $(myGitHubAccessToken)
Azure Repos'ta veya diğer Git sağlayıcılarında barındırılan özel paketler için derleme adımından önce uygun Git kimlik bilgilerini yapılandırın.
Kakao Kapsülleri
Projeniz CocoaPods kullanıyorsa, bağımlılıkları yüklemek için CocoaPods görevini kullanın.
- task: CocoaPods@0
inputs:
workingDirectory: '$(System.DefaultWorkingDirectory)'
forceRepo: false
Kartaca
Projeniz özel bir Carthage deposuyla Carthage (iOS/macOS projeleri için bağımlılık yöneticisi) kullanıyorsa, depoya erişimi olan bir belirtecin değeriyle adlı GITHUB_ACCESS_TOKEN ortam değişkenini kullanarak kimlik doğrulamasını ayarlayın. Carthage bu ortam değişkenlerini otomatik olarak algılar ve kullanır.
Bu eylem kaynak kodunuzda kullanıma sunarken gizli dizi belirtecini doğrudan işlem hattı YAML'nize eklemeyin. Daha fazla bilgi için bkz . Gizli dizi değişkenlerini ayarlama.
Aşağıdaki işlem hattı kodu, ortam değişkeninin değeri myGitHubAccessToken için adlı GITHUB_ACCESS_TOKEN bir gizli dizi değişkeni kullanır.
- script: carthage update --platform iOS
displayName: 'Update Carthage dependencies'
env:
GITHUB_ACCESS_TOKEN: $(myGitHubAccessToken)
Azure tarafından barındırılan cihazlarda test edin
Visual Studio App Center 31 Mart 2025'te kullanımdan kaldırıldı. Önerilen alternatifler hakkında bilgi edinin.
Yapıtları derleme kaydıyla tutma
Derleme kaydıyla iOS AppStore Paketi (IPA) dosyanızı depolamak veya sonraki işlem hatlarında test etmek ve dağıtmak için dosya kopyalama ve İşlem Hattı Yapıtlarını Yayımlama görevlerini işlem hattınıza ekleyin.
- task: CopyFiles@2
inputs:
contents: '**/*.ipa'
targetFolder: '$(build.artifactStagingDirectory)'
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(build.artifactStagingDirectory)'
artifact: 'drop'
Apple App Store'a veya TestFlight'a dağıtma
Bir uygulamayı test eden kullanıcılara veya beta kullanıcılarına dağıtmak için Apple'ın TestFlight'ını kullanın veya doğrudan App Store'a dağıtın. Apple App Store dağıtımı için aşağıdaki bölüme bakın.
Beta testi ve kullanıcı geri bildirimi için şunları kullanmayı göz önünde bulundurun:
- Apple TestFlight
- Firebase Uygulama Dağıtımı gibi üçüncü taraf beta test platformları
Apple App Store uzantısını yükleme ve Apple App Store'a dağıtma
Apple App Store ile etkileşimi otomatikleştirmek için Apple App Store uzantısını yükleyin ve işlem hattınızda aşağıdaki görevleri kullanın. Varsayılan olarak, bu görevler yapılandırmanız gereken bir hizmet bağlantısını kullanarak Apple'da kimlik doğrulaması yapar.
Mevcut iOS TestFlight beta uygulamalarına veya App Store'daki üretim uygulamalarına güncelleştirmelerin yayımlanmasını otomatikleştirmek için App Store Yayın görevi ekleyin.
Bu görevi Apple iki öğeli kimlik doğrulamasıyla kullanırken sınırlamalar vardır. Apple kimlik doğrulaması bölgeye özgüdür ve fastlane oturum belirteçlerinin (Apple'da kimlik doğrulaması için kullanılan geçici kimlik bilgileri) süresi hızla dolar ve düzenli aralıklarla yeniden oluşturulması ve yeniden yapılandırılması gerekir.
- 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
Daha önce iTunes Connect'ten App Store'a gönderilen bir uygulamanın yükseltılmasını otomatikleştirmek için App Store Yükseltme görevini ekleyin.
- 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
İlgili uzantılar
- Microsoft'tan Apple App Store
- Codified Security'den Codified Security
- Moboware Inc.'den MacinCloud
- James Montemagno'dan iOS ve Android için Mobil Uygulama Görevleri
- Perfecto Mobile'dan Mobil Test Laboratuvarı
- Raygun ' dan Raygun
- Microsoft'tan React Native
- Tom Gilder'dan Sürüm Ayarlayıcısı