无法在 CocoaPods 中安装 React 子规范

Posted

技术标签:

【中文标题】无法在 CocoaPods 中安装 React 子规范【英文标题】:Cannot install React subspec in CocoaPods 【发布时间】:2019-05-08 20:46:11 【问题描述】:

这是我当前的 Podfile:

# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'

target 'atom' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  pod 'Firebase/Core', '~> 5.20.1'
  pod 'Firebase/Firestore', '~> 5.20.1'
  pod 'Firebase/Auth', '~> 5.20.1'
  pod 'Firebase/Storage', '~> 5.20.1'
  pod 'Firebase/Database', '~> 5.20.1'
  pod 'Firebase/Messaging', '~> 5.20.1'
  pod 'Firebase/Functions', '~> 5.20.1'
  pod 'Firebase/DynamicLinks', '~> 5.20.1'
  pod 'Firebase/Performance', '~> 5.20.1'



  pod 'react-native-image-picker', :path => '../node_modules/react-native-image-picker'
  pod 'react-native-maps', :path => '../node_modules/react-native-maps'

end



 post_install do |installer|
   installer.pods_project.targets.each do |target|
     if target.name == "React"
       target.remove_from_project
     end
   end
 end

当我尝试添加这个时:

  pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'RCTGeolocation',
  ]

我收到此错误:

$ pod install
Ignoring unf_ext-0.0.7.4 because its extensions are not built.  Try: gem pristine unf_ext --version 0.0.7.4
Analyzing dependencies
Fetching podspec for `React` from `../node_modules/react-native`
Fetching podspec for `react-native-image-picker` from `../node_modules/react-native-image-picker`
Fetching podspec for `react-native-maps` from `../node_modules/react-native-maps`
[!] CocoaPods could not find compatible versions for pod "React/RCTGeolocation":
  In Podfile:
    React/RCTGeolocation (from `../node_modules/react-native`)

None of your spec sources contain a spec satisfying the dependency: `React/RCTGeolocation (from `../node_modules/react-native`)`.

You have either:
 * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
 * mistyped the name or version.
 * not added the source repo that hosts the Podspec to your Podfile.

Note: as of CocoaPods 1.0, `pod repo update` does not happen on `pod install` by default.

我尝试了pod repo update,但仍然出现错误。

我使用的是 React-native 0.59。部署目标 9.0。

【问题讨论】:

【参考方案1】:

我在 0.60 版中遇到了同样的问题。我发现地理位置已从 react-native 核心中移出。

通过将其用作单独的模块来修复它。

react-native-geolocation 上的安装说明和文档。

附:毕竟需要导入!

【讨论】:

【参考方案2】:

首先 = 0.60 使用完全不同的 pod 文件作为核心移动到 pod 的依赖项。

这是 0.59 及以下版本:

    pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'Core',
    'ART',
    'CxxBridge', # Include this for RN >= 0.47
    'DevSupport', # Include this to enable In-App Devmenu if RN >= 0.43
    'RCTNetwork',
    'RCTText',
    'RCTWebSocket', # Needed for debugging
    'RCTAnimation', # Needed for FlatList and animations running on native UI thread
    'RCTGeolocation', 
    'RCTImage',
    'RCTBlob',
    'RCTActionSheet',
    'RCTSettings',
    'RCTVibration',
    'RCTPushNotification',
    'RCTLinkingIOS'

    # Add any other subspecs you want to use in your project
  ]

pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'

不要忘记包括瑜伽,否则会出错。

【讨论】:

顺便说一句,在安装 pod 之前不要忘记运行 yarn 或 npm install

以上是关于无法在 CocoaPods 中安装 React 子规范的主要内容,如果未能解决你的问题,请参考以下文章

无法在现有 Xcode 项目中安装 cocoaPods

无法在OSX 10.11中安装CocoaPods

无法在我的Mac 10.13.1中安装cocoapods

无法在 macOS Monterey 版本 12.0 Beta 中安装 Cocoapods - Xcode 13.0(13A233)

Google 登录 CocoaPods 在 Swift 中安装?

为啥我无法在我的系统中安装 React 和卸载 create-react-app?