未找到 ReactNativePermissions pod 规范

问题描述 投票:0回答:9

所以我尝试运行一个用react-native编写的iOS应用程序项目,在克隆和npm install之后,我在尝试在iOS文件夹中安装pod时遇到了问题。

这是错误:

[!] 在

ReactNativePermissions
 中找不到 
../node_modules/react-native-permissions

的 podspec

由于:

pod 'ReactNativePermissions', :path => '../node_modules/react-native-permissions'

我尝试搜索但找不到任何有效的解决方案,有人可以帮助我吗?

React-native版本:2.0.1 React-native-permission:版本 2.0.8

所以这实际上是问题所在。我意识到的一件事是,人们通常会执行“npm install library”之类的操作,但没有指定版本。发生的情况是,它在 package.json 中变成“^version”,几年后,当我运行 npm install 时,我得到了较新的版本,但它不兼容,所以请务必检查您的版本。

ios xcode react-native cocoapods
9个回答
22
投票

更新:

对于react-native-permissions v3.0.1^,路径已更改为

#{permissions_path}/<ModuleName>/Permission-<ModuleName>.podspec

对于确切的路径,请尝试(从项目根目录):

cd node_modules/react-native-permissions/ios/

您将获得所有可用的模块名称,

cd <ModuleName>
并且您的“.podspec”文件应该在那里。

对我来说,问题出在路径上。我将路径更改为:

pod 'Permission-Camera', :path => "#{permissions_path}/Camera/Permission-Camera.podspec"

然后就成功了。


10
投票

又更新了
文档已更新至 3.0.0+

参考https://github.com/zoontek/react-native-permissions/issues/547#issuecomment-735216465

更新

我再次遇到这个问题,我注意到yarn add

react-native-permissions
安装了3.0.0-beta.2版本,其中
permissions_path
中没有podspec。我更新了 package.json 以拥有最新的 2+ 版本(当时为 2.2.2)来解决。

之前

:path 应该有双引号而不是单引号。

例如

pod 'Permission-Camera', :path => '#{permissions_path}/Camera.podspec'

应该是

pod 'Permission-Camera', :path => "#{permissions_path}/Camera.podspec"


7
投票

确定你的项目目标:

  permissions_path = '../node_modules/react-native-permissions/ios'
  pod 'Permission-Camera', :path => "#{permissions_path}/Camera/Permission-Camera.podspec"

4
投票

我的问题是目标没有 .podspec`

我有

pod 'Permission-Calendars', :path => "#{permissions_path}/Calendars"

而不是

pod 'Permission-Calendars', :path => "#{permissions_path}/Calendars.podspec"

1
投票

首先将其添加到你的 pod 文件依赖位置:

target 'Bverify' do
  # Pods for your project name

........

permissions_path = '../node_modules/react-native-permissions/ios'
  pod 'Permission-Camera', :path => "#{permissions_path}/Camera.podspec"
  pod 'Permission-MediaLibrary', :path => "#{permissions_path}/MediaLibrary.podspec"
  pod 'Permission-PhotoLibrary', :path => "#{permissions_path}/PhotoLibrary.podspec"

......

pod install 之前需要先安装权限:

运行命令:

npm i react-native-permissions

最后:

cd ios 吊舱安装


1
投票

您可以与最新的路径进行区别,他们将 pod 文件移动到各自的模块中,因此需要进行以下更改


1
投票

2022 修复:

React Native Permissions Library 已更新,在最新版本中解决了此问题。所以你需要做的就是运行命令

npm install react-native-permissions

yarn add react-native-permissions

或者尝试跑步

yarn add react-native-permissions@latest

在撰写本文时,它已将我的版本升级到

"react-native-permissions": "^3.3.1"

此问题发生于

3.0.0
,但已于
3.0.4

解决

您还可以确认在此文件夹中找到该文件:

黑客快乐!


0
投票

0
投票

这是来自 https://www.npmjs.com/package/react-native-permissions

的建议实现

对于反应本机 >= 0.72

更换这个

require Pod::Executable.execute_command('node', ['-p',
  'require.resolve(
    "react-native/scripts/react_native_pods.rb",
    {paths: [process.argv[1]]},
  )', __dir__]).strip

使用以下代码行

def node_require(script)
  # Resolve script with node to allow for hoisting
  require Pod::Executable.execute_command('node', ['-p',
    "require.resolve(
      '#{script}',
      {paths: [process.argv[1]]},
    )", __dir__]).strip
end

node_require('react-native/scripts/react_native_pods.rb')
node_require('react-native-permissions/scripts/setup.rb')

并添加具有所需权限的

setup_permissions
调用:

# …

platform :ios, min_ios_version_supported
prepare_react_native_project!

# ⬇️ uncomment wanted permissions
setup_permissions([
  # 'AppTrackingTransparency',
  # 'Bluetooth',
  # 'Calendars',
  # 'CalendarsWriteOnly',
  # 'Camera',
  # 'Contacts',
  # 'FaceID',
  # 'LocationAccuracy',
  # 'LocationAlways',
  # 'LocationWhenInUse',
  # 'MediaLibrary',
  # 'Microphone',
  # 'Motion',
  # 'Notifications',
  # 'PhotoLibrary',
  # 'PhotoLibraryAddOnly',
  # 'Reminders',
  # 'Siri',
  # 'SpeechRecognition',
  # 'StoreKit',
])

# …
© www.soinside.com 2019 - 2024. All rights reserved.