Aracılığıyla paylaş


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:

  1. Depo hizmeti hesabınıza bağlanın (örneğin: Azure DevOps, Bitbucket, GitHub veya VSTS).
  2. Bir depo ve uygulamanızın yaşadığı bir dal seçin.
  3. 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.ipadosyanı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 npmdaha hızlı, daha belirleyici bir değişimdir. deponuzda öğesinin yanında package.jsonbir 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