Tôi đang cố chạy ứng dụng React-Native đầu tiên của mình trên thiết bị ios bằng xcode và liên tục gặp lỗi này:
ld: warning: directory not found for option '-L/Users/XXXX/Library/Developer/Xcode/DerivedData/nigh-hktjvygosupgnoaafsvgyowhzsqi/Build/Products/Debug-iphoneos/React'
ld: library not found for -lReact
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Tôi cho rằng nguyên nhân có liên quan đến thực tế là React bị thiếu trong danh sách mục tiêu xây dựng của Đề án của tôi. React là người đầu tiên trong danh sách với tất cả các hộp được chọn, nhưng nó cho biết React (thiếu) thay vì chỉ React:
Ảnh chụp màn hình danh sách mục tiêu xây dựng
Nếu tôi nhấp vào nút '+', React không phải là một tùy chọn. Đây là podfile của tôi:
platform :ios, '10.0'
require_relative '../node_modules/react-native-unimodules/cocoapods'
target 'nigh' do
# Pods for nigh
pod 'React', :path => '../node_modules/react-native', :subspecs => [
'Core',
'CxxBridge',
'DevSupport',
'RCTActionSheet',
'RCTAnimation',
'RCTBlob',
'RCTGeolocation',
'RCTImage',
'RCTLinkingIOS',
'RCTNetwork',
'RCTSettings',
'RCTText',
'RCTVibration',
'RCTWebSocket',
]
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
pod 'RNGestureHandler', :podspec => '../node_modules/react-native-gesture-handler/RNGestureHandler.podspec'
pod 'RNReanimated', :podspec => '../node_modules/react-native-reanimated/RNReanimated.podspec'
pod 'react-native-google-maps', path: '../node_modules/react-native-maps' # Uncomment this line if you want to support GoogleMaps on iOS
pod 'GoogleMaps' # Uncomment this line if you want to support GoogleMaps on iOS
pod 'Google-Maps-iOS-Utils' # Uncomment this line if you want to support GoogleMaps on iOS
use_unimodules!
pod 'RNVectorIcons', :path => '../node_modules/react-native-vector-icons'
pod 'react-native-maps', :path => '../node_modules/react-native-maps'
pod 'RNDeviceInfo', :path => '../node_modules/react-native-device-info'
pod 'react-native-slider', :path => '../node_modules/@react-native-community/slider'
pod 'react-native-notifications', :path => '../node_modules/react-native-notifications'
pod 'react-native-cameraroll', :path => '../node_modules/@react-native-community/cameraroll'
pod 'react-native-image-picker', :path => '../node_modules/react-native-image-picker'
pod 'RNFS', :path => '../node_modules/react-native-fs'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == 'react-native-google-maps'
target.build_configurations.each do |config|
config.build_settings['CLANG_ENABLE_MODULES'] = 'No'
end
end
if target.name == "React"
target.remove_from_project
end
end
end
Tôi đã thử xóa khối if target.name == "React" và vẫn gặp lỗi tương tự. Tôi cũng đang mở xcode từ .xcworkspace thay vì .xcodeproject vì tôi đang sử dụng cocoapods. Tôi đã thử xóa mọi thứ khỏi thư mục DerivingData và dọn dẹp bản dựng, và cũng đã thử xây dựng bằng Hệ thống xây dựng kế thừa. Hệ thống Legacy Build hiển thị các cảnh báo trên gần như mọi thư viện có nội dung "Thiếu mục tiêu phụ thuộc 'Phản ứng'".
Tôi cần thay đổi tên gói của mình từ org.reactjs.native.example.nigh thành org.reactjs.native.name.nigh, vì vậy điều đó có thể chịu trách nhiệm? Tôi biết rằng tại một số điểm, React không bị thiếu trong danh sách mục tiêu. Mặc dù React bị thiếu nhưng ứng dụng vẫn chạy tốt trên trình giả lập xcode iphone.
Ngoài ra, trong tệp Pods / Products libReact.a không có biểu tượng như các tệp .a khác
Bất cứ ai có thể cho tôi biết tại sao điều này đang xảy ra và / hoặc làm thế nào để khắc phục / khắc phục nó?