React-native-onesignal:Pods 重复错误

React-native-onesignal : duplicate error with Pods

我整整一周都在为一个问题发疯... 我有一个 ReactNative 项目,运行 在 Android 模拟器上运行良好,但在 Xcode.

上运行不佳
  1. 我的代码

其实我的 package.json :

Package.json

...
"react": "15.4.2",
"react-native": "^0.40.0",
...
"react-native-onesignal": "^3.0.3",
...

我可以 运行 npm installnpm update 没有任何错误。

此外,我的 iOS 项目的 Podfile 在 iOS 文件夹中:

Podfile

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

target 'MyApp' do
    pod 'OneSignal'
end

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['SWIFT_VERSION'] = '3.0'
        end
    end
end

当我 运行 pod install 时,它运行良好并创建了 .xcworkspace 文件。当我打开它时,我可以看到第一个错误:

所以我用谷歌搜索了一下,在 GitHub 上找到了 react-native-onesignal 回购协议,开发人员对我的问题提出了建议:他说要正确遵循 iOS installation steps。 我已经做到了,通过在 Header Search Path 中添加这个:$(SRCROOT)/../node_modules/react-native-onesignal/iosrecursive 中:

现在,OneSignal.h 找到了,但我收到一个新错误,告诉我该库是重复的:

有关信息,这是我的库、我的文件和我的构建阶段:

Library in General

Files in Xcode

Build Phases


  1. 我试过的

我尝试过:

没有解决方案,我很生气。

从 0.40 版本开始,react-native 不能很好地与 cocoapods 配合使用。我有几天类似的斗争,只有在完全放弃 cocoapods 时才解决。 但在放弃之前,请尝试删除派生数据文件夹,该文件夹位于 Xcode > File > Project Settings.

所以,我解决了我的问题。 事实上,我的 package.json 在版本 ^3.0.2 中安装了 react-native-onesignal,所以目前是 3.0.3。因此,由于 3.0.3 已经从进程中删除了 CocoaPods,所以它不是 运行... 我输入 package.json '3.0.2'。 我会删除 Cocoapods 并在以后使用 3.0.3。