Không tìm thấy tệp RCTBundleURLProvider.h - AppDelegate.m


124

Tôi đang cố gắng chạy ứng dụng React Native của mình trong XCode và tôi tiếp tục gặp lỗi này. Tôi không thể tìm ra cách giải quyết vấn đề. Bất kỳ đề xuất?

Ảnh chụp màn hình lỗi trong XCode:

ảnh chụp màn hình


Tôi sẽ đề nghị trước khi áp dụng bất kỳ thay đổi nào, chỉ cần làm sạch dự án của bạn và cố gắng chạy nó vì điều tương tự xảy ra trong trường hợp của tôi. Tôi chỉ cần làm sạch dự án của tôi và chạy nó và nó hoạt động.
bittu

Bạn chắc chắn nên thay đổi câu trả lời đúng! Câu trả lời của @mark là đúng và mọi người đều đồng ý.
Serdar Değirmenci

Câu trả lời:


64

Xóa các mô-đun nút, sau đó chạy npm install(hoặc tốt hơn là sợi) và sau khi mọi thứ đã tải xuống xong, hãy chạy react-native upgradeđể cung cấp cho bạn tùy chọn thay thế các tệp cũ bằng các mẫu, bằng cách thực hiện lại liên kết phụ thuộc gốc của bạn trong phản ứng gốc nên khắc phục vấn đề của bạn. Tất nhiên đừng quên làm sạch dự án của bạn trong Xcode.


5
Bạn có thể sử dụng công cụ nâng cấp mới dựa trên Git vì nó tự động giải quyết xung đột. Chạy "npm install -g Reac -igen-git-Nâng cấp" theo sau là "Reac -igen-git-Nâng cấp".
bitand

2
Tôi đã làm theo đề xuất nhưng nogo .. tôi có phiên bản gốc phản ứng 0.41.2. Có ai có thể sửa lỗi này trên phiên bản 0.41.2 không? cảm ơn.
joemalski

2
Điều này cũng không làm việc cho tôi. sử dụng xcode 8.2.1 và phản ứng tự nhiên 0.41.2
Terry Ray

1
Tôi đã thử điều này, và nó đã thổi bay một số thiết lập dự án quan trọng. Tôi đang xây dựng Tiện ích mở rộng hành động và sau khi chạy react-native upgradetất cả các cài đặt bản dựng của tôi đã bị xóa.
Shane O Sullivan

1
tôi sẽ thêm 'xóa tệp Sợi.lock' để bạn có thể sử dụng 'npm install'
user1709076

247

Sản phẩm xcode-> Lược đồ-> Quản lý lược đồ nhấp vào '+' tại Mục tiêu để chọn "Phản ứng" và đặt Phản ứng được chia sẻ.


10
Tôi nhấn '+' và không có "Phản ứng" để chọn. Một hộp thoại xuất hiện với "Target: MyApp" và Name: MyApp. "Không có gì nói React hay chia sẻ.
Pete Alvin

Điều này đã xảy ra với tôi sau khi cài đặt cocepads tạo ra tệp xcworkspace. Xcodeproj hiện tại của tôi không có "React" như một tùy chọn nhưng xcworkspace đã làm.
AdamG

@PeteAlvin tôi đã chạy Run "npm install -g Reac -igen-git-Nâng cấp theo sau là" Reac -igen-git-Nâng cấp "và sau đó nó hiển thị tùy chọn phản ứng cho tôi
Paul Fitzgerald

1
Sau khi tôi thực hiện Build Succeeded, nhưng Run không hoạt động trong Xcode sau đó
Lucky_girl

Cảm ơn rất nhiều. Tôi tự hỏi tại sao đây không phải là giải pháp được chấp nhận.
Gaurav Grover

19

Đối với tất cả những người đang sử dụng React Native 0.40.0 trở lên, Nhập khẩu tiêu đề có một thay đổi lớn từ RN 0.40.0 và dẫn đến rất nhiều tệp .h không tìm thấy lỗi. react-native-git-upgradeđã khắc phục sự cố cho tôi khi đang gỡ lỗi nhưng quá trình xây dựng không thành công trong việc phát hành / lưu trữ.

Tôi đang sử dụng RN 0.42.3 với cocoapods và Xcode 8.2.1

Để khắc phục hoàn toàn việc này, hãy truy cập Xcode> Sản phẩm> Lược đồ> Chỉnh sửa lược đồ>

  1. Unick Parallelize Build nhập mô tả hình ảnh ở đây
  2. Nhấp vào nút + trong Mục tiêu và thêm Phản ứng nhập mô tả hình ảnh ở đây
  3. Kéo thêm React đầu Danh sách trong Mục tiêu. nhập mô tả hình ảnh ở đây

Bây giờ làm sạch dự án và xây dựng


4
Điều này không khắc phục được cho tôi, phản ứng v.0.44.0
Justus Eapen 17/07/17

17

Không có đề xuất nào khác sửa lỗi của tôi nhưng điều này đã làm điều đó.

1 - Tạo Podfile

Tạo một tệp có tên ios/Podfilebên trong ứng dụng gốc phản ứng của bạn với các nội dung sau:

# 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

2 - Cài đặt Podfile

Chạy lệnh pod install từ bên trong thư mục ios.

3 - Đặt lại XCode

Khởi động lại XCode và lỗi sẽ biến mất.


Điều này giải quyết vấn đề ở một mức độ nào đó. Nhưng những gì tôi phát hiện ra là các cấu hình mới dường như không tôn trọng thứ tự xây dựng nên chúng không sử dụng tập lệnh tùy chỉnh. Về cơ bản, đây là vấn đề với
Reac -igen hoặc Reac -igen

9

Tôi gặp phải vấn đề này sau lần thử đầu tiên chạy bản dựng React trong XCode và tất cả những gì tôi phải làm là thực sự xây dựng và chạy để làm cho lỗi không còn nữa (sau khi chọn một nhóm và cung cấp đúng cách). Đôi khi XCode hiển thị các lỗi không thực sự có lỗi cho đến khi nó biên dịch và liên kết mọi thứ lần đầu tiên.


Tôi cũng vậy. Thật lạ, chỉ cần xây dựng và gỡ lỗi, các lỗi đã biến mất. Tôi không biết tại sao.
Zhang Buzz

@PaulFitzgerald - Giấy phép để làm gì? Tôi không tin rằng mình cần phải cấp phép bất cứ điều gì ...
Dave Cole

8

Giải pháp phù hợp với tôi là chia sẻ Reactchương trình.

Nếu bạn không có sơ đồ React, hãy tạo sơ đồ mới bằng cách Selecting scheme menu -> Manage Scheme -> + -> choose Reactđánh dấu sơ đồ React là Shared

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Ngoài ra, nếu bạn sử dụng Xcode 10, hãy đi tới File -> Project Settingsvà chọn hệ thống xây dựng Legacy

nhập mô tả hình ảnh ở đây


1
cảm ơn bạn! Đôi khi thật khó để khắc phục những vấn đề này mà không có kiến ​​thức về phát triển bản địa iOS và Android và các công cụ được sử dụng.
qasimalbaqali

1
@ onmyway133 Tôi ước tôi có thể bình chọn câu trả lời của bạn nhiều hơn nữa! Cảm ơn bạn
Mohammad Abbas

7

Tôi đã giải quyết vấn đề này bằng các bước sau:

  1. Trong xcode chọn root dự án.
  2. Kéo React.xcodeprojtừ Librariesgốc của dự án.
  3. Bấm vào tên dự án (trong trường hợp của tôi tên nó SaleKit) trongTARGETS
  4. Chọn Build Phases
  5. Trong phần thả xuống của Target DependenciesaddReact
  6. Xây dựng lại hoặc chạy lại

nhập mô tả hình ảnh ở đây


1
Điều này làm việc cho tôi! Tôi sử dụng Reac -igen-scheme-manager, và do đó, đó là lược đồ Staging của tôi sẽ không được xây dựng cho đến khi tôi thêm nó. Nó hoạt động trước đó trong nhiều tháng, sau đó đột nhiên không có sau một bản sao mới. Nghi ngờ phạm vi NPM của tôi trong pack.json quá hào phóng.

Làm việc cho tôi, mà không cần phải kéo React.xcodeproj ra khỏi thư mục Thư viện.
ErmannoS

6

Đối với trường hợp của tôi trong ReactNative "0.54.2", tôi đã giải quyết nó bằng giải pháp sau

Trong Xcode chọn Product->Scheme->Manage Schemes, bỏ chọn 'YourProject'-tvOS đặt thành không chia sẻ


1
Nó hoạt động với tôi, verison-bản địa: 0,55,4. Cảm ơn
Adarsh

1
Đã làm cho tôi! Tôi đã xóa mục tiêu tvOS trước đây và quên xóa nó dưới dạng lược đồ! => RN 0,56
BigPun86

4

Giải pháp tốt nhất :

Mở 'Build Settings' cho dự án của bạn trong Xcode, tìm kiếm 'Đường dẫn tìm kiếm tiêu đề'.

Nhấp đúp vào bên cạnh 'Đường dẫn tìm kiếm tiêu đề', trong đó các thuộc tính khác có 'có' hoặc 'không'

Bây giờ thêm theo sau vào "Đường dẫn tìm kiếm tiêu đề" (trong Cài đặt bản dựng):

$(SRCROOT)/../node_modules/react-native/React
$(SRCROOT)/../node_modules/react-native/React/Base

Đừng quên Làm cho cả hai đệ quy.


3

Chạy npm installtrong thư mục dự án của bạn để cài đặt react-nativegiải quyết lỗi này.


3

Bạn có thể đang chạy .xcodeprojtập tin sau khi cài đặt pod.

Đóng nó và mở .xcworkspacetập tin. Nó làm việc cho tôi.


2

Trong thư mục cơ sở của dự án tôi chạy:

node_modules/react-native/packager/packager.sh --reset-cache

Kết quả là:

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

Tôi thấy rằng trình quản lý gói không thể chạy khi một quy trình đóng gói khác đang chạy.

Tôi tìm thấy quá trình chạy với:

lsof -i :8081

Hơn tôi kill 9 ...quá trình.

Sau khi tôi đóng Xcode, hãy chạy:

npm install

Và bắt đầu lại Xcode, từ thời điểm này mọi thứ hoạt động như mong đợi !!


2

Tôi đã có cùng một vấn đề và tôi đã khắc phục nó bằng cách đặt RNFIRMessaging.h phía trên React / RCTBundleURLProvider.h

Vì vậy, nó trông giống như tôi:

#import "AppDelegate.h"
#import "RNFIRMessaging.h"

#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

2

Hãy thử như sau:

  1. Sạch sẽ ( cmd+ shift+K ).
  2. Build core React - chọn React làm lược đồ trong Xcode và xây dựng nó ( cmd+B ).
  3. Xây dựng thư viện bị lỗi (ví dụ RCTText).
  4. Xây dựng ứng dụng của bạn.

1
Làm thế nào để bạn xây dựng một thư viện chính xác?
AlxVallejo

2

nhấp vào Sản phẩm-> Lược đồ-> Quản lý lược đồ -> +. và sau đó thêm phản ứng như được chia sẻ. cũng đảm bảo rằng tên dự án của bạn cũng ở đó.


1

Tôi gặp vấn đề tương tự. Tôi đã xóa nút. Hãy thử sử dụng các bước này

  1. Xóa thư mục node_modules - rm -rf node_modules && npm install
  2. Đặt lại bộ đệm của bộ đệm - rm -fr $ TMPDIR / Reac- * hoặc node_modules / Reac -igen / packager / packager.sh --reset-cache
  3. Đồng hồ đeo tay rõ ràng - watchman watch-del-all

sau đó xây dựng và xem


yup tôi cũng đã thử điều này trên phiên bản gốc phản ứng 0.41.2 vẫn không hoạt động ... bất kỳ đầu vào nào? cảm ơn.
joemalski

1

Tôi thấy rằng cách khắc phục của tôi đối với vấn đề này sau khi nâng cấp React là thay đổi khai báo #import "RCTBundleURLProvider.h" thành#import <React/RCTBundleURLProvider.h>


1

Cho tôi thay thế

#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

bởi

#import <RCTBundleURLProvider.h>
#import <RCTRootView.h>

trong tệp AppDelegate.m đã hoạt động.



0

Tôi đã thử tất cả các đề xuất và không ai trong số họ làm việc tại tôi đã xóa repo và sao chép lại và điều đó hiệu quả với tôi, vì vậy đề nghị của tôi là cam kết các thay đổi của bạn sao lưu chúng và sao chép lại repo hoạt động cho tôi.


0

Tôi đã trải qua tất cả các câu trả lời được đề cập ở trên.

Đây là giải pháp hiệu quả với tôi:

BƯỚC 1:

Chạy:

npm install react-native-fcm --save 

Điều này dẫn đến việc tạo thư mục trong dự án của bạn dưới node_modules> Reac -igen-fcm

Thêm Reac -igen-fcm vào dự án của bạn

BƯỚC 2:

Bạn cần thêm '$(SRCROOT)/../node_modules/react-native-fcm/ios'vào đường dẫn tìm kiếm tiêu đề trong cài đặt bản dựng.

Thêm vào đường dẫn tìm kiếm tiêu đề

2 bước này đã giúp tôi loại bỏ lỗi.

Để biết thêm chi tiết, bạn có thể đi qua các liên kết sau:

https://github.com/evollu/react-native-fcm/issues/63

https://github.com/evollu/react-native-fcm/issues/21


0

Đối với trường hợp của tôi, tôi không thể xóa node_modules và cài đặt lại và tôi cũng không thể làm react-native-git-updgradehoặc react-native upgradevì tôi muốn ở lại RN-0.59 vì .60 gây ra sự cố cho các phụ thuộc của tôi.

Dù sao, tình huống của tôi là tôi đã thiếu tệp 'React / RCTBundleURLProvider.h'. Tôi đã có sẵn React trong lược đồ của mình. Nó không có trong thư mục thư viện của tôi. Tôi đã kiểm tra cài đặt bản dựng của mục tiêu .

Bên trong các mục tiêu phụ thuộc, tôi cũng có React trong đó.

Tôi đã xóa phụ thuộc mục tiêu 'Phản ứng', sau đó thêm lại. làm sạch thư mục xây dựng, xây dựng lại dự án. nó đã làm việc.


Không chắc nó có vấn đề gì, nhưng có một lỗi đánh máy: Reac -igen-git-updgrad
Josh

0

Tôi đang sử dụng React Native 0.61. Tôi đã tạo Phần mở rộng chia sẻ và nhận được lỗi này. Tôi cần phải thay thế:

#import "RCTBundleURLProvider.h"

với

#import "React/RCTBundleURLProvider.h"


-2

Hãy chắc chắn rằng đường dẫn đến dự án của bạn không có bất kỳ khoảng trống nào. Chỉ cần đổi tên thư mục và xóa khoảng trắng sẽ giải quyết vấn đề cho tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.