Pemecahan Masalah SDK React Native
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.
File 'React/RCTDefines.h' tidak ditemukan
Kesalahan ini muncul ketika pustaka inti RN tidak direferensikan dengan benar, yang dapat disebabkan oleh berbagai jenis masalah integrasi atau penautan. Ini sering terjadi ketika Anda memiliki dependensi yang ditautkan menggunakan jalur relatif dalam podfile, daripada secara statis dalam proyek.
Skrip penautan kami hanya mendukung cara standar untuk menautkan pod, jadi untuk menyelesaikan masalah:
Ganti dependensi di Anda
Podfile
dengan jalur penautan relatif:Sebelumnya:
pod 'AppCenter/Analytics', '~> 1.14.0' pod 'AppCenter/Crashes', '~> 1.14.0' pod 'AppCenterReactNativeShared', '~> 1.13.0'
Setelahnya:
pod 'appcenter', path: '../node_modules/appcenter/ios' pod 'appcenter-analytics', path: '../node_modules/appcenter-analytics/ios' pod 'appcenter-crashes', path: '../node_modules/appcenter-crashes/ios'
Jalankan
pod install
dariiOS
folder.Di dalam AppDelegate.m, ganti impor:
Sebelumnya:
#import <AppCenterReactNative/AppCenterReactNative.h> #import <AppCenterReactNativeAnalytics/AppCenterReactNativeAnalytics.h> #import <AppCenterReactNativeCrashes/AppCenterReactNativeCrashes.h>
Setelahnya:
#import "AppCenterReactNative.h" #import "AppCenterReactNativeAnalytics.h" #import "AppCenterReactNativeCrashes.h"
Hapus dependensi AppCenter dari proyek (klik kanan dependensi > Hapus dependensi).
- Pilih <YOUR_APP> ->Pustaka dan hapus file berikutnya:
AppCenterReactNative.xcodeproj
AppCenterReactNativeAnalytics.xcodeproj
AppCenterReactNativeCrashes.xcodeproj
- Buka pengaturan proyek Anda dan di bawah tab Umum di bagian Kerangka Kerja dan Pustaka Tertaut menghapus item baru yang merujuk pustaka target yang dihapus pada langkah sebelumnya:
libAppCenterReactNative.a
libAppCenterReactNativeAnalytics.a
libAppCenterReactNativeCrashes.a
- Ubah Jalur Pencarian Header untuk menghapus header dari proyek plugin AppCenter React Native. Buka pengaturan proyek Anda dan di bawah tab Pengaturan Build di bagian Jalur Pencarian Header hapus lokasi berikut untuk file header:
$(SRCROOT)/../node_modules/appcenter/ios/AppCenterReactNative
$(SRCROOT)/../node_modules/appcenter-analytics/ios/AppCenterReactNativeAnalytics
$(SRCROOT)/../node_modules/appcenter-crashes/ios/AppCenterReactNativeCrashes
- Pilih <YOUR_APP> ->Pustaka dan hapus file berikutnya:
perintah tautan React Native tidak dikenal
Jika Anda telah yarn
menginstal di komputer Anda, react-native init {myapp}
akan menginisialisasi aplikasi Anda dan menginstal dependensi menggunakan yarn
daripada npm
. Jika Anda melihat pesan kesalahan berikut saat menjalankan react-native link
, kemungkinan dependensi App Center diinstal dari npm install {package}
bukannya yarn add {package}
sehingga npm
dan yarn
dicampur selama penginstalan.
Command `link` unrecognized. Make sure that you have run `npm install` and that you are inside a react-native project.
Dalam hal ini, jalankan npm install
dan coba react-native link
lagi.
Kesalahan build seperti file 'AppCenterCrashes/MSACErrorReport.h' tidak ditemukan
React-Native 0,60 ke atas
Kemungkinan penyebabnya adalah konflik antara versi paket utama karena perubahan yang melanggar di Apple SDK kami.
Pastikan semua
appcenter
paket menggunakan versi utama yang sama. Perbarui dengannpm install
atauyarn
jika diperlukan.Buka folder ios proyek Anda dan hapus Podfile.lock dan folder Pod.
Jalankan
pod install --repo-update
di folder ios Anda.Verifikasi bahwa Podfile.lock berisi
appcenter
dependensi dari versi utama yang sama.
React Native lebih rendah dari 0,60
Salah satu kemungkinan penyebabnya adalah ketika berjalan react-native link
tanpa CocoaPods terinstal .
Untuk mengonfirmasi penyebabnya, jalankan react-native link
, dan di log, periksa baris berikut:
Could not configure AppCenter for iOS. Error Reason - spawn pod ENOENT
Baris ini terletak di bagian berikut dari log:
Added code to initialize iOS AppCenter SDK in ios/TestApp/AppDelegate.m
Installing Cocoapods dependencies...
Could not configure AppCenter for iOS. Error Reason - spawn pod ENOENT
rnpm-install info Platform 'ios' module appcenter-analytics is already linked
rnpm-install info Platform 'android' module appcenter-analytics is already linked
Jika Anda melihat kesalahan tersebut pod
, pastikan perintah dari CocoaPods tersedia dalam variabel lingkungan PATH sistem Anda.
Setelah Anda memperbaiki penginstalan CocoaPods , jalankan pod install
di folder ios untuk memperbaiki proyek Anda.
CocoaPods tidak dapat menemukan spesifikasi untuk AppCenterReactNativeShared selama tautan react-native
Jika Anda melihat pesan kesalahan CocoaPods berikut selama react-native link
, kemungkinan klon lokal Anda (~/.cocoapods/repos
di komputer Anda) dari repositori spesifikasi CocoaPods tidak diperbarui.
Analyzing dependencies [!] Unable to find a specification for AppCenterReactNativeShared (~> {version})
Jalankan pod repo update
untuk memperbarui repositori spesifikasi, dan coba react-native link
lagi. Untuk informasi selengkapnya tentang perintah CocoaPods, lihat Referensi baris perintah CocoaPods.
Cara meningkatkan aplikasi menggunakan App Center SDK dari React Native 0,59 ke 0,60
Untuk meningkatkan React Native ke versi 0.60.0, gunakan perintah berikut:
react-native upgrade 0.60.0
Catatan
Jika selama peningkatan, Anda mendapatkan kesalahan Command failed: git status -s fatal: not a git repository (or any of the parent directories): .git
ini , lakukan langkah berikutnya:
git init
git add .
git commit -m "Upgrade react-native"
Setelah selesai memutakhirkan, Anda dapat menghapus .git
direktori.
Memperbarui iOS React Native
Buka Podfile dan ganti dependensi App Center pada baris berikut:
use_native_modules!
Jalankan perintah berikut:
pod repo update
Cara memperbarui SDK React Native ke versi terbaru
Jika Anda telah mengintegrasikan SDK kami ke dalam aplikasi Anda dan ingin meningkatkan ke versi SDK yang lebih baru, ikuti langkah-langkah berikut untuk meningkatkan:
npm uninstall --save appcenter appcenter-analytics appcenter-crashes
untuk menghapus instalan paket App Center lama.npm install --save-exact appcenter appcenter-analytics appcenter-crashes
untuk menginstal paket App Center terbaru.pod repo update
untuk memastikan repositori spesifikasi CocoaPods Anda sudah diperbarui.react-native link
.
Tip
Jika Anda melihat pesan kesalahan yang mirip dengan pesan kesalahan CocoaPods berikut selama react-native link
, hapus Podfile.lock yang dibuat secara otomatis di folder ios Anda dan jalankan react-native link
lagi.
[!] Unable to satisfy the following requirements: - `AppCenter/Core (= 1.0.0)` required by `Podfile.lock` - `AppCenter/Core (= 1.0.0)` required by `AppCenter/Crashes (1.0.0)` - `AppCenter/Core (= 1.0.0)` required by `AppCenter/Analytics (1.0.0)` - `AppCenter/Core (= 1.0.1)` required by `AppCenterReactNativeShared (1.0.1)`
Migrasi dari jCenter ke Maven Central
Karena penghentian dukungan jCenter , semua rakitan kami dipindahkan ke repositori Maven Central.
Untuk menggunakan App Center, Anda perlu menambahkan mavenCentral()
ke repositori dalam file Gradle Seperti di bawah ini:
repositories {
google()
mavenCentral()
}
Lindungi nilai rahasia App Center
app_secret
adalah pengidentifikasi aplikasi Anda, perlu mengetahui aplikasi mana yang berlaku untuk lalu lintas dan tidak dapat digunakan untuk mengambil atau mengedit data yang ada. Jika Anda app_secret
terpapar, risiko terbesar adalah mengirim data buruk ke aplikasi Anda, tetapi tidak akan berpengaruh pada keamanan data.
Untuk mengambil data sensitif apa pun, Anda harus menyediakan token aplikasi/pengguna, yang dihasilkan di sisi klien. Tidak ada cara untuk membuat data di sisi klien benar-benar aman.
Anda dapat meningkatkan keamanan aplikasi dengan menggunakan variabel lingkungan untuk menyuntikkan rahasia aplikasi ke dalam kode Anda. Dengan begitu, rahasia tidak terlihat dalam kode Anda.