React Native uygulamamı XCode'da çalıştırmaya çalışıyorum ve bu hatayı almaya devam ediyorum. Sorunu nasıl çözeceğimi bilemiyorum. Baska öneri?
XCode'daki Hatanın Ekran Görüntüsü:
React Native uygulamamı XCode'da çalıştırmaya çalışıyorum ve bu hatayı almaya devam ediyorum. Sorunu nasıl çözeceğimi bilemiyorum. Baska öneri?
XCode'daki Hatanın Ekran Görüntüsü:
Yanıtlar:
Düğüm modüllerini silin, ardından çalıştırın npm install
(veya daha iyisi iplik) ve her şey indirildikten sonra, react-native upgrade
size eski dosyaları şablon olanlarla değiştirme seçeneği sunacak şekilde çalıştırın , böylece yerel bağımlılıklarınızı react-native içinde yeniden bağlarsınız. sorununuzu çözmelisiniz. Elbette projenizi Xcode'da temizlemeyi unutmayın.
react-native upgrade
tüm yapı ayarlarım silindi.
xcode Product-> Scheme-> Manage Scheme-> Manage Scheme, Target'te '+' tıklayarak "React" seçin ve React'in paylaşılmasını ayarlayın.
React Native 0.40.0 veya üstünü kullananların tümü için , Üstbilgi İçe Aktarmalarında RN 0.40.0'a göre büyük bir değişiklik vardır ve birçok .h dosyası bulunamadı hatasıyla sonuçlanır. react-native-git-upgrade
hata ayıklama sırasında benim için sorunu çözdü, ancak sürüm / arşivde derleme başarısız oldu.
Cocoapod'lar ve Xcode 8.2.1 ile RN 0.42.3 kullanıyorum
Bunu tamamen düzeltmek için Xcode> Ürün> Şema> Şemayı Düzenle> seçeneğine gidin.
Şimdi projeyi temizleyin ve inşa edin
Diğer önerilerin hiçbiri hatamı düzeltmiyordu ama bu yaptı.
ios/Podfile
Aşağıdaki içeriklerle react-native uygulamanızın içinde bir dosya oluşturun :
# You Podfile should look similar to this file. React Native currently does not support use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
target '<YOUR_APP_NAME>' do
# Fixes required for pod specs to work with rn 0.42
react_native_path = "../node_modules/react-native"
pod "Yoga", :path => "#{react_native_path}/ReactCommon/yoga"
pod "React", :path => react_native_path, :subspecs => [
'Core',
'RCTActionSheet',
'RCTAnimation',
'RCTGeolocation',
'RCTImage',
'RCTLinkingIOS',
'RCTNetwork',
'RCTSettings',
'RCTText',
'RCTVibration',
'RCTWebSocket'
]
pod 'GoogleMaps' # <~~ remove this line if you do not want to support GoogleMaps on iOS
# when not using frameworks we can do this instead of including the source files in our project (1/4):
# pod 'react-native-maps', path: '../../'
# pod 'react-native-google-maps', path: '../../' # <~~ if you need GoogleMaps support on iOS
end
Komutu pod install
ios klasörünün içinden çalıştırın .
XCode'u yeniden başlatın ve hata gitmiş olmalıdır.
XCode'da bir React derlemesi çalıştırmayı ilk denememden sonra bu sorunla karşılaştım ve tek yapmam gereken, hatayı ortadan kaldırmak için gerçekten derlemek ve çalıştırmaktı (bir ekip seçtikten ve uygun provizyondan sonra). Bazen XCode, şeyleri ilk kez derleyip bağlayana kadar gerçekten hata olmayan hataları gösterir.
Benim için çalışan çözüm React
planı paylaşmaktır .
React şemasına sahip değilseniz, yenisini oluşturun ve Selecting scheme menu -> Manage Scheme -> + -> choose React
ardından React şemasını Paylaşılan olarak işaretleyin.
Ayrıca, Xcode 10 kullanıyorsanız, File -> Project Settings
Eski yapı sistemine gidin ve seçin
Bu sorunu aşağıdaki adımları izleyerek çözdüm:
React.xcodeproj
gelen Libraries
projenin köküne.SaleKit
)TARGETS
Build Phases
Target Dependencies
Ekle açılır menüsündeReact
ReactNative "0.54.2" deki durumum için aşağıdaki çözümle çözdüm
Xcode seçiminde Product->Scheme->Manage Schemes
'Projeniz'-tvOS seçeneğinin işaretini kaldırın, Paylaşılmadı olarak ayarlayın
En İyi Çözüm:
Xcode'da projeniz için 'Yapı Ayarları'nı açın,' Başlık Arama Yolu'nu arayın.
Diğer özelliklerin 'evet' veya 'hayır' içerdiği 'Başlık Arama Yolu'nun yanındaki çift tıklayın
Şimdi "Başlık Arama Yolu" na aşağıdakileri ekleyin (Derleme Ayarları altında):
$(SRCROOT)/../node_modules/react-native/React
$(SRCROOT)/../node_modules/react-native/React/Base
Unutma, ikisini de yinelemeli yap.
Bu hatayı çözmek npm install
için proje dizininizde çalıştırın react-native
.
Çalıştırdığım projenin temel dizininde:
node_modules/react-native/packager/packager.sh --reset-cache
Hangi sonuçlandı:
Scanning 554 folders for symlinks in /Users/..../work/..../react_tutorial/AwesomeProject/node_modules (15ms)
┌────────────────────────────────────────────────────────────────────────────┐
│ Running packager on port 8081. │
│ │
│ Keep this packager running while developing on any JS projects. Feel │
│ free to close this tab and run your own packager instance if you │
│ prefer. │
│ │
│ https://github.com/facebook/react-native │
│ │
└────────────────────────────────────────────────────────────────────────────┘
Looking for JS files in
/Users/..../work/...../react_tutorial/AwesomeProject
Loading dependency graph... ERROR Packager can't listen on port 8081
Most likely another process is already using this port
Run the following command to find out which process:
lsof -i :8081
Başka bir paketleyici işlemi çalışırken paket yöneticisinin çalışmadığını buldum.
İşlemin şununla çalıştığını buldum:
lsof -i :8081
Benden kill 9 ...
daha süreç.
Xcode'u kapattıktan sonra şunu çalıştırın:
npm install
Ve Xcode'u yeniden başlattı, bu andan itibaren her şey beklendiği gibi çalışıyor !!
Aynı sorunu yaşadım ve RNFIRMessaging.h'yi yukarıdaki sayfanın üstüne yerleştirerek düzelttim . React / RCTBundleURLProvider.h'nin düzelttim.
Öyleyse şöyle görüneceğim:
#import "AppDelegate.h"
#import "RNFIRMessaging.h"
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
Takip etmeyi dene:
Aynı sorunla karşılaştım. Sonra düğümü sildim. Bu adımları kullanmayı deneyin
sonra inşa et ve gör
Benim için değiştiriyorum
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
tarafından
#import <RCTBundleURLProvider.h>
#import <RCTRootView.h>
AppDelegate.m dosyasında çalıştı.
Koşmadıysanız npm install
, bu sorunla karşılaşmanız olasıdır.
Yukarıda bahsedilen tüm cevapları geçtim.
İşte benim için çalışan çözüm:
AŞAMA 1:
Çalıştırmak:
npm install react-native-fcm --save
Bu, projenizdeki dizinin node_modules> react-native-fcm altında yapılmasıyla sonuçlanır.
ADIM 2:
'$(SRCROOT)/../node_modules/react-native-fcm/ios'
Derleme ayarlarında başlık arama yollarına eklemeniz gerekir .
Bu 2 adım, hatayı gidermek için benim için çalıştı.
Daha fazla ayrıntı için şu bağlantılardan geçebilirsiniz:
Benim durumum için node_modules'i silip yeniden yükleyemedim ve ayrıca yapamadım react-native-git-updgrade
veya react-native upgrade
RN- 0.59'da kalmak istediğim için .60 bağımlılıklarım için sorunlara neden oluyor.
Her neyse, benim durumum 'React / RCTBundleURLProvider.h' dosyasını kaçırmamdı. Şemalarımda zaten React mevcuttu. Kütüphaneler dizinimde yoktu. Hedefimin yapı ayarlarını kontrol ettim .
Hedef bağımlılıkları içinde React de vardı.
'React' hedef bağımlılığını sildim ve yeniden ekledim. temizlenmiş derleme klasörleri, yeniden oluşturulmuş proje. işe yaradı.
React Native 0.61 kullanıyorum. Bir Paylaşım Uzantısı oluşturdum ve bu hatayı alıyordum. Değiştirmem gerekiyordu:
#import "RCTBundleURLProvider.h"
ile
#import "React/RCTBundleURLProvider.h"
react native'i terminal çalıştırmada kurmanız gerekiyor
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
sonra
brew install node
brew install watchman
npm install -g react-native-cli
kaynak:
https://facebook.github.io/react-native/docs/getting-started.html
Projenize giden yolda boşluk olmadığından emin olun. Sadece klasörleri yeniden adlandırmak ve boşlukları silmek benim için sorunu çözüyor.