Mobil uygulamayı imzalama
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Android veya Apple işletim sistemleri için bir mobil uygulama imzalamak ve sağlamak için imzalama sertifikalarını ve Apple sağlama profillerini yönetmeniz gerekir. Bu makalede, Azure Pipelines'da uygulamanızı imzalamak ve sağlamak için sertifikaları ve profilleri güvenli bir şekilde yönetme adımları açıklanmaktadır.
Not
Derleme veya yayın çalıştırmak için en az bir aracıya ihtiyacınız vardır. Microsoft tarafından barındırılan bir Linux, macOS veya Windows derleme aracısı kullanabilir veya kendi aracınızı ayarlayabilirsiniz. Daha fazla bilgi için bkz . Derleme ve sürüm aracıları.
Android uygulamanızı imzalama
İmzalama sertifikanızı güvenli tutarken Android uygulamanızı imzalamak için bu adımları izleyin.
Keystore dosyasını karşıya yükleme
İmzalama sertifikanızı içeren bir keystore dosyası alın. Android belgelerinde bir keystore dosyası ve buna karşılık gelen anahtar oluşturma işlemi açıklanmaktadır.
Azure Pipelines'da Kitaplıklar>Güvenli dosyalar'a gidin. + Güvenli dosya'ya tıklayın ve keystore dosyanızı güvenli dosyalar kitaplığına yükleyin. Karşıya yükleme sırasında anahtar deponuz şifrelenir ve güvenli bir şekilde depolanır.
İşlem hattına imzalama görevi ekleme
Uygulamanızı oluşturan adımdan sonra yaml işlem hattınıza AndroidSigning@3 görevi ekleyin. AndroidSigning@3
Görevde:
<apkFiles>
gereklidir ve imzalanacak APK dosyalarının yolu ve adlarıdır. Varsayılan değer:**/*.apk
.<apksign>
varsayılan değertrue
olan olmalıdır.<keystore-file>
, güvenli dosyalar kitaplığında karşıya yüklenen keystore dosyanızın adıdır.<apksignerKeystorePassword>
şifrelenmemiş keystore dosyasının parolasıdır.<apksignerKeystoreAlias>
, imzalama sertifikasının anahtar diğer adıdır.<apksignerKeyPassword>
, belirtilen diğer adla ilişkilendirilmiş anahtarın parolasıdır.
YAML'de değişkenleri ayarlayabilir ve kullanabilir veya Azure Pipelines kullanıcı arabirimindeki Değişkenler sekmesini kullanarak değişkenleri ayarlayabilir ve YAML'de bunlara başvurabilirsiniz.
variables:
keystore-password: <keystore file password>
key-alias: <key alias for the signing certificater>
key-password: <password for the key associated with the alias>
steps:
- task: AndroidSigning@3
displayName: 'Signing and aligning APK file(s) **/*.apk'
inputs:
apkFiles: '**/*.apk'
apksign: true
apksignerKeystoreFile: <keystore-filename.keystore>
apksignerKeystorePassword: $(keystore-password)
apksignerKeystoreAlias: $(key-alias)
apksignerKeyPassword: $(key-password)
Artık herhangi bir derleme aracısı, derleme makinesinde herhangi bir sertifika yönetimi olmadan uygulamanızı güvenli bir şekilde imzalayabilir.
Apple iOS, macOS, tvOS veya watchOS uygulamanızı imzalama
Uygulamanızı imzalamak ve sağlamak için Xcode veya Xamarin.iOS derlemenizin P12 imzalama sertifikanıza ve bir veya daha fazla sağlama profiline erişmesi gerekir. Aşağıdaki adımlarda bu dosyaların nasıl edin yapılacağı açıklanmaktadır.
P12 imzalama sertifikanızı alma
Geliştirme veya dağıtım imzalama sertifikanızı Xcode veya macOS'ta Anahtarlık Erişimi uygulamasını kullanarak bir .p12 dosyasına aktarın.
Xcode kullanarak dışarı aktarmak için:
Xcode>Tercihleri>Hesapları'na gidin.
Sol sütunda Apple kimliğinizi seçin.
Sağ tarafta kişisel hesabınızı veya ekip hesabınızı seçin ve Sertifikaları Yönet'i seçin.
Ctrl+Dışarı aktarmak istediğiniz sertifikayı seçin ve menüden Sertifikayı dışarı aktar'ı seçin.
İletişim kutusuna sertifika adını, dosyayı kaydedecek konumu ve sertifikanın güvenliğini sağlamak için bir parola girin.
Alternatif olarak, macOS'ta AnahtarLık Erişimi uygulamasını kullanarak benzer bir işlemi izlemek veya Windows'ta bir imzalama sertifikası oluşturmak için iOS İmzalama'da açıklanan yordamı kullanın.
P12 dosyanızı Azure Pipelines güvenli dosyalar kitaplığına yükleyin. Karşıya yükleme sırasında sertifikanız şifrelenir ve güvenli bir şekilde depolanır.
İşlem hattınızda Değişkenler sekmesine gidin ve değer olarak sertifika parolanızı içeren P12password adlı bir değişken ekleyin. Parolanızın güvenliğini sağlamak ve günlüklerde gizlemek için kilit simgesini seçtiğinizden emin olun.
Sağlama profilinizi alma
Uygulamanız otomatik imzalama kullanmıyorsa uygulama sağlama profilinizi Apple Geliştirici portalından indirebilirsiniz. Daha fazla bilgi için bkz . Sağlama profillerini düzenleme, indirme veya silme.
Mac bilgisayarınızda yüklü olan sağlama profillerine erişmek için Xcode'u da kullanabilirsiniz. Xcode'da Xcode>Tercih Hesapları'na> gidin. Apple Kimliğinizi ve ekibinizi seçin ve ardından El ile Profilleri İndir'i seçin.
Azure Pipelines'da sağlama profilinizi güvenli dosyalar kitaplığına yükleyin. Karşıya yükleme sırasında dosyanız şifrelenir ve güvenli bir şekilde depolanır.
İşlem hattına imzalama ve sağlama görevlerini ekleme
Uygulamanızı imzalamak ve sağlamak için, her derleme sırasında sertifikayı ve profili yükleyebilir veya dosyaları bir macOS derleme aracısına önceden yükleyebilirsiniz.
Her derleme sırasında sertifikayı ve profili yükleme
Her derleme sırasında, örneğin barındırılan macOS aracılarını kullanırken, derleme aracısına kalıcı erişiminiz olmadığında sertifikayı ve profili yükleyin. P12 sertifikası ve sağlama profili derlemenin başında yüklenir ve derleme tamamlandığında kaldırılır.
Xcode veya Xamarin.iOS görevinden önce yaml işlem hattınıza InstallAppleCertificate@2 görevi ekleyin. Kodda öğesini karşıya yüklediğiniz .p12 dosyasının adıyla değiştirin
<secure-file.p12>
. güvenliP12password
için değişkenini kullanın.- task: InstallAppleCertificate@2 inputs: certSecureFile: '<secure-file.p12>' certPwd: '$(P12password)'
Not
InstallAppleCertificate@2
Görevde parametresideleteCert
varsayılan olaraktrue
değerini alır ve bu da derlemeden sonra sertifikayı kaldırır.Xcode veya Xamarin.iOS görevinden önce YAML'nize InstallAppleProvisioningProfile@1 görevi ekleyin. değerini sağlama profili dosyanızın adıyla değiştirin
<secure-file.mobileprovision>
.- task: InstallAppleProvisioningProfile@1 inputs: provProfileSecureFile: '<secure-file.mobileprovision>'
Not
InstallAppleProvisioningProfile@1
Görevde parametresiremoveProfile
varsayılan olaraktrue
değerini alır ve bu da derlemeden sonra profili kaldırır.
Artık herhangi bir derleme aracısı, derleme makinesinin kendisinde herhangi bir sertifika veya profil yönetimi olmadan uygulamanızı güvenli bir şekilde imzalayabilir.
Sertifikayı ve profili macOS derleme aracısı üzerine önceden yükleme
Derleme sırasında imzalama sertifikasını ve sağlama profillerini yüklemek yerine, bunları bir macOS derleme aracısında önceden yükleyebilirsiniz. Dosyalar daha sonra derlemeler tarafından kullanılmaya devam edilebilir. Bu yöntemi yalnızca aracı makinede macOS anahtar zincirine erişimi olan kişilere ve işlemlere güveniyorsanız kullanın.
P12 sertifikasını önceden yükleme
P12 sertifikasını varsayılan anahtarlığa yüklemek için, derleme aracısı üzerindeki bir macOS Terminal penceresinden aşağıdaki komutu çalıştırın. değerini P12 dosyanızın yolu ve adıyla değiştirin
<certificate.p12>
. değerini P12 dosyanızın şifreleme parolası ile değiştirin<password>
.sudo security import <certificate.p12> -P <password>
İşlem hattınıza KEYCHAIN_PWD adlı yeni bir değişken ekleyin. Değeri varsayılan anahtarlığa parola olarak ayarlayın. Bu, normalde aracıyı başlatan kullanıcının parolasıdır. Bu parolanın güvenliğini sağlamak için kilit simgesini seçtiğinizden emin olun.
Sağlama profilini önceden yükleme
bir macOS Terminal penceresi açıp girerek
security find-identity -v -p codesigning
imzalama kimliğinizin tam adını bulun. biçimindeiPhone Developer/Distribution: Developer Name (ID)
imza kimliklerinin listesini görürsünüz. Kimlik geçersizse, kimlik sonrası gibi(CSSMERR_TP_CERT_REVOKED)
bir şey görürsünüz.Sağlama profilini aracı makinesine yüklemek için bir macOS Terminal penceresinden aşağıdaki komutu çalıştırın. değerini sağlama profili dosyanızın yoluyla, öğesini ise uzantısı olmayan sağlama profili dosya adı olan sağlama profili UUID'siyle
.mobileprovision
değiştirin<profile>
<UUID>
.sudo cp <profile> ~/Library/MobileDevice/Provisioning Profiles/<UUID>.mobileprovision
Varsayılan anahtar zincirini kullanan imzalama ve sağlama görevleri ekleme
Xcode veya Xamarin.iOS görevinden önce yaml işlem hattınıza InstallAppleCertificate@2 görevi ekleyin. Kodda aşağıdaki değerleri ayarlayın:
certSecureFile
: Karşıya yüklenen .p12 dosyanızın adı.certPwd
: güvenliP12password
değişkeni.signingIdentity
: İmzalama kimliğinizin tam adı.keychain
:default
, varsayılan anahtarlığa erişime izin vermek için.keychainPassword
KEYCHAIN_PWD
: Değişkeni.deleteCert
:false
, derlemeler arasında sertifikayı korumak için.
- task: InstallAppleCertificate@2 inputs: certSecureFile: '<secure-file.p12>' certPwd: '$(P12password)' signingIdentity: <full-signing-identity> keychain: default keychainPassword: `$(KEYCHAIN_PWD) deleteCert: false
InstallAppleProvisioningProfile@1 görevini ekleyin. Kodda:
- Sağlama profili dosyanızın adına ayarlayın
provProfileSecureFile
. - Profilin derlemeler arasında saklanması için
false
olarak ayarlayınremoveProfile
.
- task: InstallAppleProvisioningProfile@1 inputs: provProfileSecureFile: '<secure-file.mobileprovision>' removeProfile: false
- Sağlama profili dosyanızın adına ayarlayın
macOS derleme aracısı artık daha fazla sertifika veya profil yönetimi olmadan uygulamanızı güvenli bir şekilde imzalayabilir ve tüm derlemeler için sağlayabilir.
Xcode veya Xamarin.iOS derleme görevinde güvenli dosyalara başvurma
İşlem hatlarınızdaki güvenli sertifikayı ve profili kullanmak için Xcode veya Xamarin.iOS derleme görevlerinizde aşağıdaki ayarları yapılandırın.
Derleme görevlerindeki güvenli dosya başvuruları ve provisioningProfileUuid
için signingIdentity
değişkenleri kullanır. Bu değişkenler, seçtiğiniz sertifika ve sağlama profili için Apple Sertifikasını Yükle ve Apple Sağlama Profili Yükle görevleri tarafından otomatik olarak ayarlanır.
Xcode için:
- task: Xcode@5
inputs:
signingOption: 'manual'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
Xamarin.iOS için:
- task: XamariniOS@2
inputs:
solutionFile: '**/*.iOS.csproj'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
signingProvisioningProfileID: '$(APPLE_PROV_PROFILE_UUID)'
İşlem hattı derleme aracısı artık derleme makinesinde daha fazla sertifika veya profil yönetimi olmadan uygulamanızı güvenli bir şekilde imzalar ve sağlar.
İlgili içerik
Aşağıdakiler hakkında daha fazla bilgi için:
- Android uygulamaları için işlem hatları, bkz . Android uygulamalarını derleme, test etme ve dağıtma.
- iOS uygulamaları için işlem hatları, bkz . Xcode uygulamalarını derleme, test etme ve dağıtma.
- Aracılar, bkz . Azure Pipelines aracıları.
- Aracı havuzları ve kuyrukları, bkz . Aracı havuzları oluşturma ve yönetme.
- İşlem hatlarındaki değişkenler, bkz . Değişkenleri tanımlama.
- İşlem hattı sorunlarını giderme, bkz . İşlem hattı çalıştırma sorunlarını giderme.