Tại sao React (thiếu) trong danh sách mục tiêu xây dựng sơ đồ xcode?


8

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ó?


Nếu bạn đang sử dụng React Native mới nhất, Podfile sẽ không giống như vậy. Xem trợ giúp cập nhật .
Ziyo

Tôi đang sử dụng 0,59.10. Có cách nào để chạy dự án trên thiết bị sử dụng phiên bản này không, hoặc tôi có cần cập nhật và thay đổi tất cả các tệp của mình không?
Ben d'Straw

Sản phẩm của tôi -> Lược đồ chỉnh sửa hiển thị dưới dạng React Missing. Bất kỳ giải pháp cho điều này?
sejn

Tôi nghĩ rằng vấn đề thực sự liên quan đến việc sử dụng Expo, vì Expo dường như không sử dụng phiên bản mới nhất của phản ứng gốc (cảm ơn @Ziyo). Nó cũng đòi hỏi nhiều hơn trong thời gian dài và thiếu một số chức năng riêng, vì vậy trong tương lai trừ khi những gì tôi đang xây dựng là tốt và nhẹ, tôi sẽ tránh hội chợ triển lãm. Tôi đã kết thúc việc tạo ra một dự án mới với phản ứng bản địa và mọi thứ chạy như đồng hồ. Đối với những người muốn thử giải pháp của tôi, khởi động lại sans Expo, hãy chọn React Native Cli Quickstart trên [ facebook.github.io/react-native/docs/getting-started]
Ben d'Straw

Tôi đang gặp lỗi này và podfile của tôi là lỗi được cập nhật.
pianoman102

Câu trả lời:


-3

Tôi đã khắc phục sự cố này bằng cách vào Tùy chọn hệ thống -> Bảo mật & quyền riêng tư. Trong tab riêng tư, tôi cho phép Xcode truy cập các tệp và thư mục của mình.

Điều thực sự xảy ra là tôi đã nâng cấp HĐH lên Catalina. Bằng cách nào đó, quyền truy cập vào tệp và thư mục không được cấp cho Xcode, do đó xcode không thể đọc tệp và do đó bạn gặp phải sự cố này.

Khung cài đặt cho Bảo mật và Quyền riêng tư

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.