Aracılığıyla paylaş


React Native SDK Sorunlarını Giderme

Önemli

Visual Studio App Center, 30 Haziran 2026'ya kadar desteklenmeye devam edecek Analiz ve Tanılama özellikleri dışında 31 Mart 2025'te kullanımdan kaldırılmıştır. Daha fazla bilgi edinin.

'React/RCTDefines.h' dosyası bulunamadı

Bu hata, RN çekirdek kitaplıklarına doğru başvurulmadığında ortaya çıkar ve bunun nedeni farklı türlerde tümleştirme veya bağlama sorunları olabilir. Genellikle bağımlılıklarınız bir projede statik olarak değil, bir pod dosyasında göreli yol kullanılarak bağlandığında gerçekleşir.

Bağlama betiğimiz podları bağlamanın yalnızca standart yolunu desteklediğinden sorunu çözmek için:

  1. öğesinizdeki Podfile bağımlılıkları göreli bağlama yolları ile değiştirin:

    Önce:

    pod 'AppCenter/Analytics', '~> 1.14.0'
    pod 'AppCenter/Crashes', '~> 1.14.0'
    pod 'AppCenterReactNativeShared', '~> 1.13.0'
    

    Sonra:

    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'
    
  2. pod install'yi iOS klasöründen çalıştırın.

  3. AppDelegate.m içinde, import ifadelerini değiştirin.

    Önce:

    #import <AppCenterReactNative/AppCenterReactNative.h>
    #import <AppCenterReactNativeAnalytics/AppCenterReactNativeAnalytics.h>
    #import <AppCenterReactNativeCrashes/AppCenterReactNativeCrashes.h>
    

    Sonra:

    #import "AppCenterReactNative.h"
    #import "AppCenterReactNativeAnalytics.h"
    #import "AppCenterReactNativeCrashes.h"
    
  4. AppCenter bağımlılık ilişkilerini projeden kaldırın (bağımlılığa sağ tıklayın > Bağımlılığı kaldır).

    • <YOUR_APP> - Kitaplıklar'ı seçin ve aşağıdaki dosyaları kaldırın:
      • AppCenterReactNative.xcodeproj
      • AppCenterReactNativeAnalytics.xcodeproj
      • AppCenterReactNativeCrashes.xcodeproj
    • Proje ayarlarınızı açın ve Bağlı Çerçeveler ve Kitaplıklar bölümündeki Genel sekmesinin altında, önceki adımda kaldırılan hedef kitaplıklara başvuran yeni öğeleri kaldırın:
      • libAppCenterReactNative.a
      • libAppCenterReactNativeAnalytics.a
      • libAppCenterReactNativeCrashes.a
    • AppCenter React Native eklenti projelerinden üst bilgileri kaldırmak için Üst Bilgi Arama Yollarını değiştirin. Proje ayarlarınızı açın ve Üst Bilgi Arama Yolları bölümündeki Derleme Ayarları sekmesinin altında üst bilgi dosyaları için aşağıdaki konumları kaldırın:
      • $(SRCROOT)/../node_modules/appcenter/ios/AppCenterReactNative
      • $(SRCROOT)/../node_modules/appcenter-analytics/ios/AppCenterReactNativeAnalytics
      • $(SRCROOT)/../node_modules/appcenter-crashes/ios/AppCenterReactNativeCrashes

Eğer makinenizde yarn yüklüyse, react-native init {myapp} uygulamanızı başlatır ve bağımlılıkları yarn yerine npm kullanarak yükler. react-native link çalıştırırken aşağıdaki hata mesajını görüyorsanız, büyük ihtimalle App Center bağımlılıkları npm install {package} yerine yarn add {package}'den yükleniyor ve bu nedenle npm ile yarn yükleme sırasında karıştırılıyor demektir.

Command `link` unrecognized. Make sure that you have run `npm install` and that you are inside a react-native project.

Bu durumda komutunu çalıştırın npm install ve yeniden deneyin react-native link .

'AppCenterCrashes/MSACErrorReport.h' dosyası bulunamadı gibi derleme hatası

React-Native 0,60 ve üzeri

Bunun olası nedeni, Apple SDK'mızda yapılan bir önemli değişiklik nedeniyle ana paket sürümleri arasındaki uyumsuzluktur.

  1. Tüm appcenter paketlerin aynı ana sürümü kullandığından emin olun. Gerekirse onları npm install veya yarn ile güncelleyin.

  2. Projenizin ios klasörüne gidin ve Podfile.lock dosyasını ve Pods klasörünü kaldırın.

  3. pod install --repo-update klasörünüzde çalıştırın.

  4. Podfile.lock dosyasının aynı ana sürüme ait bağımlılıklar içerdiğini appcenter doğrulayın.

0.60'tan düşük React Native sürümleri

Olası nedenlerden biri react-native link yüklü olmadan çalıştırmaktır.

Nedeni onaylamak için react-native link çalıştırın ve günlüklerde aşağıdaki satırı kontrol edin.

Could not configure AppCenter for iOS. Error Reason - spawn pod ENOENT

Bu satır günlüklerin aşağıdaki bölümünde bulunur:

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

Bu hatayı görürseniz pod komutunun sisteminizin PATH ortam değişkeninde kullanılabilir olduğundan emin olun.

CocoaPods yüklemenizi düzeltdikten sonra pod install klasöründe çalıştırarak projenizi düzeltin.

sırasında react-native linkaşağıdaki CocoaPods hata iletisini görürseniz ~/.cocoapods/repos yerel kopyanızın (makinenizde) güncel olma olasılığı vardır.

Analyzing dependencies [!] Unable to find a specification for AppCenterReactNativeShared (~> {version})

Belirtim deposunu güncelleştirmek için komutunu çalıştırın pod repo update ve yeniden deneyin react-native link . CocoaPods komutları hakkında daha fazla bilgi için bakınız CocoaPods komut satırı referansı.

App Center SDK'sını kullanarak React Native 0.59'dan 0.60'a yükseltme

React Native'i 0.60.0 sürümüne yükseltmek için aşağıdaki komutu kullanın:

react-native upgrade 0.60.0

Uyarı

Yükseltme sırasında bu hatayı Command failed: git status -s fatal: not a git repository (or any of the parent directories): .gitalırsanız, sonraki adımları gerçekleştirin:

git init
git add .
git commit -m "Upgrade react-native"

Yükseltmeyi tamamladıktan sonra dizini kaldırabilirsiniz .git .

React Native iOS'i güncelleştirme

  1. Podfile dosyasını açın ve App Center bağımlılıklarını aşağıdaki satırda değiştirin:

    use_native_modules!
    
  2. Aşağıdaki komutu çalıştırın:

    pod repo update
    

React Native SDK'sını en son sürüme güncelleştirme

SDK'mızı uygulamanızla zaten tümleştirdiyseniz ve SDK'nın daha yeni bir sürümüne yükseltmek istiyorsanız, yükseltmek için aşağıdaki adımları izleyin:

  1. npm uninstall --save appcenter appcenter-analytics appcenter-crashes eski App Center paketlerini kaldırmak için.

  2. npm install --save-exact appcenter appcenter-analytics appcenter-crashes en son App Center paketlerini yüklemek için.

  3. pod repo update CocoaPods spec deponuzun güncel olduğundan emin olun.

  4. react-native link.

Tavsiye

sırasında react-native linkaşağıdaki CocoaPods hata iletisine benzer bir hata iletisi görürseniz, ios klasörünüzde otomatik olarak oluşturulan Podfile.lock dosyasını silin ve yeniden çalıştırınreact-native link.

[!] 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)`

jCenter'den Maven Central'a geçiş

jCenter desteğinin sona ermesi nedeniyle tüm derlemelerimiz Maven Central deposuna taşındı. App Center'ı kullanmak için aşağıdaki gibi Gradle dosyanızdaki depoya eklemeniz mavenCentral() gerekir:

repositories {
   google()
   mavenCentral()
}

App Center gizli değerini koruyun

app_secret uygulamanızın tanımlayıcısıdır; trafiğin hangi uygulamaya uygulandığını bilmeniz gerekir ve mevcut verileri almak veya düzenlemek için kullanılamaz. Verileriniz app_secret kullanıma sunulursa en büyük risk, uygulamanıza hatalı veri göndermektir, ancak bunun verilerin güvenliği üzerinde bir etkisi olmaz.

Hassas verileri almak için istemci tarafında oluşturulan bir uygulama/kullanıcı belirteci sağlamanız gerekir. İstemci tarafında verileri tamamen güvenli hale getirmenin hiçbir yolu yoktur.

Uygulama gizli dizisini kodunuz içine eklemek için bir ortam değişkeni kullanarak uygulamanızın güvenliğini geliştirebilirsiniz. Bu şekilde gizli dizi kodunuzda görünmez.