Aracılığıyla paylaş


Xcode uygulamaları derleme, test etme ve dağıtma

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.

  1. Azure DevOps projenizde İşlem Hatları> veya projenin ilk işlem hattıysa İşlem hattı oluştur'u seçin.
  2. Kaynak kodunuzun konumu olarak GitHub'ı seçin.
  3. Depo seçin ekranında Xcode projenizin deposunu seçin.
  4. İş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 true dosya 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.

Yeni bir YAML işlem hattında Kaydet ve çalıştır düğmesinin ekran görüntüsü.

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