Bagikan melalui


Mengonfigurasi build iOS React Native di App Center

Penting

Visual Studio App Center dijadwalkan untuk dihentikan pada 31 Maret 2025. Meskipun Anda dapat terus menggunakan Visual Studio App Center hingga sepenuhnya dihentikan, ada beberapa alternatif yang direkomendasikan yang dapat Anda pertimbangkan untuk bermigrasi.

Pelajari selengkapnya tentang garis waktu dukungan dan alternatif.

App Center dapat membuat aplikasi React Native yang ditulis dalam React Native versi 0.34 atau yang lebih baru.

Untuk membuat aplikasi React Native untuk iOS:

  1. Sambungkan ke akun layanan repositori Anda (misalnya: Azure DevOps, Bitbucket, GitHub, atau VSTS).
  2. Pilih repositori dan cabang tempat aplikasi Anda berada.
  3. Konfigurasikan proyek atau ruang kerja build, dan skema yang ingin Anda bangun.

Catatan

Agar aplikasi berjalan pada perangkat nyata, build harus ditandatangani kode dengan profil provisi yang valid dan sertifikat.

1. Menautkan repositori Anda

Pertama, sambungkan akun layanan repositori Anda ke App Center. Setelah akun Anda tersambung, pilih repositori tempat proyek iOS Anda berada. Anda harus memiliki admin dan izin penarikan untuk repositori.

2. Memilih cabang

Setelah memilih repositori, pilih cabang yang ingin Anda bangun. Secara default, semua cabang aktif akan dicantumkan.

3. Menyiapkan build pertama Anda

Sebelum build pertama Anda, proyek React Native perlu dikonfigurasi.

3.1. Project

Pilih proyek package.jsonAnda. App Center akan secara otomatis mendeteksi proyek/ruang kerja Xcode terkait.

3.2. Versi Xcode

Pilih versi Xcode untuk menjalankan build dari daftar dropdown. Jika tombol "Gunakan sistem build warisan" adalah On, maka sistem build warisan akan digunakan apa pun pengaturan proyek atau ruang kerja. Jika tombol "Gunakan sistem build warisan" adalah Off, konfigurasi sistem build dari pengaturan proyek atau ruang kerja akan digunakan.

Catatan

  • Pengaturan ruang kerja harus diterapkan ke repositori
  • Jika pengaturan ruang kerja tidak diterapkan, maka sistem build modern akan digunakan

3.3. versi Node.js

Pilih versi Node.js yang akan digunakan untuk build. Pelajari selengkapnya tentang cara memilih versi Node.js

3.4. Membangun pemicu

Secara default, build baru dipicu setiap kali pengembang mendorong ke cabang yang dikonfigurasi. Jika Anda lebih suka memicu build baru secara manual, Anda bisa mengubah pengaturan ini di panel konfigurasi.

3.5. Nomor build kenaikan

Saat diaktifkan, CFBundleVersion di Info.plist proyek aplikasi Anda secara otomatis meningkat untuk setiap build. Perubahan terjadi pra-build dan tidak akan diterapkan pada repositori Anda.

3.6. Penandatanganan kode

Build yang .ipa sukses menghasilkan file. Untuk menginstal build pada perangkat, build harus ditandatangani dengan profil provisi dan sertifikat yang valid. Untuk menandatangani build yang dihasilkan dari cabang, aktifkan penandatanganan kode di panel konfigurasi dan unggah profil provisi (.mobileprovision file) dan sertifikat yang valid (.p12), bersama dengan kata sandi untuk sertifikat.

Pengaturan dalam proyek Xcode Anda harus kompatibel dengan file yang Anda unggah. Baca selengkapnya tentang penandatanganan kode iOS App Center dan dokumentasi Pengembang Apple.

Menandatangani aplikasi dengan ekstensi aplikasi atau watchOS memerlukan profil provisi tambahan per ekstensi.

3.7. Luncurkan build sukses Anda pada perangkat nyata

Gunakan file yang baru diproduksi .ipa untuk menguji apakah aplikasi Anda dimulai pada perangkat nyata; pengujian peluncuran menambahkan sekitar 10 menit lagi ke total waktu build. Baca selengkapnya tentang cara mengonfigurasi pengujian peluncuran.

3.8. CocoaPods

App Center memindai cabang yang dipilih dan jika menemukan Podfile, App Center akan secara otomatis melakukan pod install langkah di awal setiap build. Ini memastikan bahwa semua dependensi diinstal.

3.9. Mendistribusikan ke grup distribusi

Konfigurasikan setiap build yang berhasil dari cabang untuk didistribusikan ke grup distribusi yang dibuat sebelumnya. Tambahkan grup distribusi baru dari dalam bagian Distribusikan. Selalu ada grup distribusi default yang disebut "Kolaborator" yang mencakup semua pengguna yang memiliki akses ke aplikasi.

Setelah Anda menyimpan konfigurasi, build baru akan dimulai secara otomatis.

4. Hasil build

Build dapat berada di salah satu status berikut:

  • diantrekan - build diantrekan menunggu sumber daya yang tersedia
  • building - build sedang berjalan dan menjalankan tugas yang telah ditentukan sebelumnya
  • berhasil - build berhasil diselesaikan
  • gagal - build selesai tidak berhasil; memecahkan masalah apa yang salah dengan mengunduh dan memeriksa log build
  • dibatalkan - build dibatalkan melalui tindakan pengguna atau waktu habis

4.1. Log build

Untuk build yang telah selesai (berhasil atau gagal), unduh log untuk memahami lebih lanjut tentang cara build berjalan. App Center menyediakan arsip dengan file berikut:

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

Log build (terletak di build/ direktori arsip) sangat membantu untuk pemecahan masalah dan pemahaman dalam langkah apa dan mengapa build gagal.

4.2. Aplikasi (.ipa)

File .ipa adalah file arsip aplikasi iPhone yang berisi aplikasi iOS.

  • Jika build ditandatangani dengan benar, Anda dapat menginstal .ipa file pada perangkat nyata yang disertakan dalam profil provisi yang digunakan saat menandatangani. Detail selengkapnya tentang penandatanganan dan distribusi kode dengan App Center dapat ditemukan di dokumentasi penandatanganan kode iOS App Center.
  • Jika build tidak ditandatangani selama build, pengembang dapat menandatangani .ipa file (secara lokal menggunakan codesign) atau digunakan untuk tujuan lain (misalnya, mengunggah ke layanan Uji untuk pengujian UI pada perangkat nyata atau berjalan di simulator).
  • Build yang tidak ditandatangani tidak akan menghasilkan .ipa file. Artefak dari build yang tidak ditandatangani adalah .xcarchive file , yang dapat digunakan untuk menghasilkan .ipa file dengan penyelenggara Arsip Xcode.

4.3. Peta sumber dan file simbol

Setelah membangun aplikasi iOS React Native, peta sumber JavaScript dan satu atau beberapa .dsym file secara otomatis dihasilkan dengan setiap build dan dapat diunduh setelah build selesai.

  • jika sebelumnya Anda telah mengintegrasikan App Center SDK di aplikasi Anda dengan modul pelaporan crash diaktifkan, suar pelaporan crash memerlukan file ini .dsym dan peta sumber JavaScript untuk build untuk menampilkan laporan crash yang dapat dibaca manusia (simbolis).
  • jika sebelumnya Anda telah mengintegrasikan SDK lain untuk tujuan pelaporan crash di aplikasi Anda, layanan yang sesuai memerlukan .dsym file dan peta sumber JavaScript untuk menampilkan laporan crash yang dapat dibaca manusia (simbolis).

Perlu diingat bahwa .dsym file tidak berubah setelah kode menandatangani .ipa. Jika Anda memutuskan untuk menandatangani kode build nanti, build .dsym yang dihasilkan sebelum penandatanganan kode masih valid.

Jika aplikasi ini menyertakan SDK crash, simbol iOS dan peta sumber akan dikirim ke layanan Crash App Center. Simbol akan memungkinkan laporan crash yang dapat dibaca manusia (simbolis) di tumpukan asli dan JavaScript.

5. Buat tips

5.1. Yarn

Benang adalah pengganti yang lebih cepat dan lebih deterministik untuk npm. yarn.lock Jika file ada di repositori Anda di samping package.json, maka App Center akan menggunakan Yarn, lakukan yarn install di awal build. Jika tidak, itu akan melakukan npm install.

5.2. Skrip build kustom

Ada beberapa opsi untuk menjalankan skrip sebelum perintah build default App Center dijalankan.

  • Buat skrip postinstall di file proyek package.json Anda. Ini secara otomatis dijalankan setelah dependensi Anda diinstal.

      "scripts": {
        ...
        "postinstall" : "eslint ./" // other examples: "node ./postinstall.js" or "./postinstall.sh"
      },
    
  • Tulis skrip shell menggunakan fungsionalitas skrip build kustom App Center.

    #!/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