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:
- Sambungkan ke akun layanan repositori Anda (misalnya: Azure DevOps, Bitbucket, GitHub, atau VSTS).
- Pilih repositori dan cabang tempat aplikasi Anda berada.
- 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.json
Anda. 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