App Center'da React Native iOS derlemesi yapılandırma
Önemli
Visual Studio App Center 31 Mart 2025'te kullanımdan kaldırılıyor. Tamamen kullanımdan kaldırılana kadar Visual Studio App Center'ı kullanmaya devam edebilirsiniz ancak geçiş yapmayı düşünebileceğiniz birkaç önerilen alternatif vardır.
Destek zaman çizelgeleri ve alternatifleri hakkında daha fazla bilgi edinin.
App Center, React Native sürüm 0.34 veya daha yeni bir sürümde yazılmış React Native uygulamalar oluşturabilir.
iOS için React Native uygulaması oluşturmak için:
- Depo hizmeti hesabınıza bağlanın (örneğin: Azure DevOps, Bitbucket, GitHub veya VSTS).
- Bir depo ve uygulamanızın yaşadığı bir dal seçin.
- Derlemenin projesini veya çalışma alanını ve oluşturmak istediğiniz düzeni yapılandırın.
Not
Uygulamanın gerçek bir cihazda çalışması için derlemenin geçerli bir sağlama profili ve sertifika ile kod imzalanması gerekir.
1. Deponuzu bağlama
İlk olarak, depo hizmet hesabınızı App Center'a bağlayın. Hesabınız bağlandıktan sonra iOS projenizin bulunduğu depoyu seçin. Depo için yönetici ve çekme izniniz olmalıdır.
2. Dal seçme
Bir depo seçtikten sonra, oluşturmak istediğiniz dalı seçin. Varsayılan olarak, tüm etkin dallar listelenir.
3. İlk derlemenizi ayarlama
İlk derlemenizden önce React Native projesinin yapılandırılması gerekir.
3.1. Project
Projenizin package.json
öğesini seçin. App Center, ilişkili Xcode projesini/çalışma alanını otomatik olarak algılar.
3.2. Xcode sürümü
Açılan listeden derlemeyi çalıştırmak için Xcode sürümünü seçin.
"Eski derleme sistemini kullan" iki durumlu düğmesi ise On
, eski derleme sistemi proje veya çalışma alanı ayarları ne olursa olsun kullanılır.
"Eski derleme sistemini kullan" iki durumlu düğmesi ise Off
, proje veya çalışma alanı ayarlarından derleme sistemi yapılandırması kullanılır.
Not
- Çalışma alanı ayarı depoya işlenmelidir
- Çalışma alanı ayarı işlenmediyse modern derleme sistemi kullanılır
3.3. Node.js sürümü
Derleme için kullanılacak Node.js sürümünü seçin. Node.js sürümü seçme hakkında daha fazla bilgi edinin
3.4. Derleme tetikleyicileri
Varsayılan olarak, geliştirici yapılandırılmış bir dala her gönderildiğinde yeni bir derleme tetiklenir. Yeni bir derlemeyi el ile tetiklemek isterseniz, yapılandırma bölmesinde bu ayarı değiştirebilirsiniz.
3.5. Derleme numarasını artırma
Etkinleştirildiğinde, CFBundleVersion
uygulamanızın projenin Info.plist dosyasındaki her derleme için otomatik olarak artırılır. Değişiklik derleme öncesi gerçekleşir ve deponuza işlenmez.
3.6. Kod imzalama
Başarılı bir derleme bir .ipa
dosya oluşturur. Derlemeyi bir cihaza yüklemek için derlemenin geçerli bir sağlama profili ve sertifikasıyla imzalanması gerekir. Bir daldan oluşturulan derlemeleri imzalamak için yapılandırma bölmesinde kod imzalamayı etkinleştirin ve sertifikanın parolası ile birlikte bir sağlama profili (.mobileprovision
dosya) ve geçerli bir sertifika (.p12) yükleyin.
Xcode projenizdeki ayarlar, karşıya yüklediğiniz dosyalarla uyumlu olmalıdır. App Center'ın iOS kod imzalaması ve Apple Geliştirici belgeleri hakkında daha fazla bilgi edinin.
Uygulama veya watchOS uzantılarıyla uygulama imzalamak için uzantı başına ek bir sağlama profili gerekir.
3.7. Başarılı derlemenizi gerçek bir cihazda başlatma
Uygulamanızın gerçek bir cihazda başlayıp başlamadiğini test etmek için yeni oluşturulan .ipa
dosyayı kullanın; başlatma testi toplam derleme süresine yaklaşık 10 dakika daha ekler. Başlatma testlerini yapılandırma hakkında daha fazla bilgi edinin.
3.8. CocoaPods
App Center seçili dalı tarar ve pod dosyası bulursa, her derlemenin başında otomatik olarak bir pod install
adım gerçekleştirir. Bu, tüm bağımlılıkların yüklenmesini sağlar.
3.9. Dağıtım grubuna dağıtma
Bir daldan her başarılı derlemeyi daha önce oluşturulmuş bir dağıtım grubuna dağıtılacak şekilde yapılandırın. Dağıt bölümünden yeni bir dağıtım grubu ekleyin. Her zaman uygulamaya erişimi olan tüm kullanıcıları içeren "Ortak Çalışanlar" adlı bir varsayılan dağıtım grubu vardır.
Yapılandırmayı kaydettikten sonra yeni bir derleme otomatik olarak başlatılır.
4. Derleme sonuçları
Derlemeler aşağıdaki durumlardan birinde olabilir:
- kuyruğa alındı - derleme kullanılabilir kaynaklar beklenerek sıraya alındı
- building - derleme çalışıyor ve önceden tanımlanmış görevleri yürütüyor
- başarılı - derleme başarıyla tamamlandı
- failed - derleme başarısız bir şekilde tamamlandı; derleme günlüğünü indirip inceleyerek sorun giderme
- iptal edildi - derleme kullanıcı eylemi aracılığıyla iptal edildi veya zaman aşımına uğradı
4.1. Derleme günlükleri
Tamamlanmış bir derleme için (başarılı veya başarısız), derlemenin nasıl gittiği hakkında daha fazla bilgi edinmek için günlükleri indirin. App Center aşağıdaki dosyaları içeren bir arşiv sağlar:
|-- 1_build.txt (this is the general build log)
|-- build (this folder contains a separate log file for each build step)
|-- <build-step-1> (e.g. 2_Get Sources.txt)
|-- <build-step-2> (e.g. 3_Pod install.txt)
|--
|-- <build-step-n> (e.g. n_Post Job Cleanup.txt)
Derleme günlükleri (arşivin dizininde bulunur), derlemenin build/
hangi adımda ve neden başarısız olduğunu anlamak için sorun gidermeye ve anlamaya yardımcı olur.
4.2. Uygulama (.ipa)
Dosya .ipa
, iOS uygulamasını içeren bir iPhone uygulaması arşiv dosyasıdır.
- Derleme doğru şekilde imzalandıysa, dosyayı imzalama sırasında kullanılan sağlama profiline dahil edilen gerçek bir cihaza yükleyebilirsiniz
.ipa
. App Center ile kod imzalama ve dağıtma hakkında daha fazla bilgi App Center'ın iOS kod imzalama belgelerinde bulunabilir. - Derleme derleme sırasında imzalı değilse, geliştiriciler dosyayı imzalayabilir
.ipa
(birlikte tasarlamayı kullanarak yerel olarak) veya başka amaçlar için kullanılabilir (örneğin, gerçek cihazlarda UI testi için Test hizmetine yükleme veya simülatörde çalıştırma). - İmzasız derlemeler dosya
.ipa
oluşturmaz. İmzasız bir derlemenin yapıtı, Xcode Archives düzenleyicisiyle bir.ipa
dosya oluşturmak için kullanılabilen dosyadır.xcarchive
.
4.3. Kaynak eşlemeler ve sembol dosyaları
bir React Native iOS uygulaması oluşturulduktan sonra, her derlemede bir JavaScript kaynak haritası ve bir veya birden çok .dsym
dosya otomatik olarak oluşturulur ve derleme tamamlandıktan sonra indirilebilir.
- App Center SDK'sını daha önce uygulamanızda kilitlenme raporlama modülü etkin olarak tümleştirdiyseniz kilitlenme raporlama işareti, bir derlemenin insanlar tarafından okunabilir (sembolik) kilitlenme raporlarını görüntülemesi için bu
.dsym
dosyayı ve JavaScript kaynak haritasını gerektirir. - Daha önce uygulamanızda kilitlenme raporlama amacıyla başka bir SDK'yı tümleştirdiyseniz, ilgili hizmet için dosyanın ve JavaScript kaynak haritasının okunabilir (sembolik) kilitlenme raporlarını görüntülemesi gerekir
.dsym
.
kodu imzalandıysa .dsym
.ipa
dosyanın değişmediğini unutmayın. Derlemeyi daha sonra kod imzalamaya karar verirseniz, .dsym
kod imzalamadan önce oluşturulan geçerli olmaya devam edecektir.
Bu uygulamada kilitlenme SDK'sı varsa, iOS sembolleri ve kaynak haritalar App Center Crashes hizmetine gönderilir. Simgeler, hem yerel hem de JavaScript yığınında okunabilir (sembolik) kilitlenme raporlarını etkinleştirir.
5. Derleme ipuçları
5.1. Iplik
Yarn , için npm
daha hızlı, daha belirleyici bir değişimdir. deponuzda öğesinin yanında package.json
bir yarn.lock
dosya varsa App Center, yarn install
derlemenin başındaki Yarn'ı kullanır. Aksi takdirde, bunu yapar npm install
.
5.2. Özel derleme betikleri
App Center'ın varsayılan derleme komutları yürütülmeden önce betikleri çalıştırmak için çeşitli seçenekler vardır.
Projenizin
package.json
dosyasında bir postinstall betiği oluşturun. Bağımlılıklarınız yüklendikten sonra bu otomatik olarak yürütülür."scripts": { ... "postinstall" : "eslint ./" // other examples: "node ./postinstall.js" or "./postinstall.sh" },
App Center'ın özel derleme betikleri işlevselliğini kullanarak kabuk betiği yazma.
#!/usr/bin/env bash # Example: Authenticate with private NPM registry echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc # Example: Create a file that's not in version control (from base64 encoded environment variable) base64 -d <<< "$MY_FILE_CONTENTS" > ios/SuperSecretFile.txt