Xcode uygulamaları derleme, test etme ve dağıtma
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Bu hızlı başlangıçta 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ı>Yeni işlem hattı'nı 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.
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
İş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ı özelleştirmenin bazı yaygın yolları açıklanmaktadır.
İmzalama ve sağlama görevleri ekleme
Bir cihazda çalıştırılabilmesi veya App Store'da yayımlanabilmesi için bir Xcode uygulamasının imzalanması ve sağlanması gerekir. İmzalama ve sağlama işleminin P12 imzalama sertifikanıza ve bir veya daha fazla sağlama profiline erişmesi gerekir. 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.
Kartaj ortam değişkeni kullanma
Projeniz özel bir Carthage deposuyla Carthage kullanıyorsa, depoya erişimi olan bir belirtecin değeriyle adlı GITHUB_ACCESS_TOKEN
ortam değişkenini kullanarak kimlik doğrulamasını ayarlayabilirsiniz. Carthage bu ortam değişkenlerini otomatik olarak algılar ve kullanır.
Gizli belirteci doğrudan işlem hattı YAML'nize eklemeyin. Bunun yerine, işlem hattı sayfasında Değişkenler bölmesini açmak ve bu belirteç için bir değişken oluşturmak için Değişkenler'i seçin. Değişkenin değerini şifrelemek için kilit simgesini etkinleştirdiğinizden emin olun. 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 GITHUB_ACCESS_TOKEN
için adlı myGitHubAccessToken
bir gizli dizi değişkeni kullanır.
- script: carthage update --platform iOS
env:
GITHUB_ACCESS_TOKEN: $(myGitHubAccessToken)
Azure tarafından barındırılan cihazlarda test edin
Uygulamanızı Visual Studio App Center'da barındırılan bir iOS cihaz laboratuvarında test etmek için işlem hattınıza App Center Test görevini ekleyin.
Bu görev, test laboratuvarını kullanmaya devam etmek için 30 gün sonra ücretliye dönüştürülmesi gereken bir App Center ücretsiz deneme hesabı gerektirir. Bu görevi kullanmadan önce bir App Center hesabına kaydolun.
Aşağıdaki örnekte bir App Center test paketi çalıştırılır. Görev, ayarlamanız gereken bir hizmet bağlantısı kullanır.
Tam görev söz dizimi ve başvurusu için bkz . App Center Test görevi. Daha fazla bilgi için bkz . Ui Testi için Azure DevOps kullanma.
- 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'
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 dosyaları kopyalama ve derleme yapıtlarını yayımlama görevlerini işlem hattınıza ekleyin. Daha fazla bilgi için bkz . İşlem hattı yapıtlarını yayımlama ve indirme.
- task: CopyFiles@2
inputs:
contents: '**/*.ipa'
targetFolder: '$(build.artifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
App Center'a dağıtma
Bir uygulamayı bir test eden veya beta kullanıcısı grubuna dağıtmak veya uygulamayı Intune'a veya Apple App Store'a yükseltmek için App Center Distribute görevini ekleyin. Görev, ücretsiz olarak kalan ücretsiz bir App Center hesabı gerektirir.
Aşağıdaki örnek bir uygulamayı kullanıcılara dağıtır. Tam görev söz dizimi ve başvurusu için bkz . App Center Distribute. Daha fazla bilgi için bkz . App Center ile Azure DevOps Derlemelerini Dağıtma.
- 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'
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 kullanmanın sınırlamaları vardır. Apple kimlik doğrulaması bölgeye özgüdür ve fastlane oturum belirteçlerinin süresi hızla dolar ve yeniden oluşturulup 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ı