React-native-onesignal:Pods 重复错误
React-native-onesignal : duplicate error with Pods
我整整一周都在为一个问题发疯...
我有一个 ReactNative 项目,运行 在 Android 模拟器上运行良好,但在 Xcode.
上运行不佳
- 我的代码
其实我的 package.json :
Package.json
...
"react": "15.4.2",
"react-native": "^0.40.0",
...
"react-native-onesignal": "^3.0.3",
...
我可以 运行 npm install
或 npm 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/ios
在 recursive
中:
现在,OneSignal.h 找到了,但我收到一个新错误,告诉我该库是重复的:
有关信息,这是我的库、我的文件和我的构建阶段:
Library in General
Files in Xcode
Build Phases
- 我试过的
我尝试过:
- 删除main.m,因为它似乎是重复的,
- 在通用库或构建阶段库中删除库的一个副本,
- 在Xcode、
的文件系统中手动删除一个副本
- 在我的目标构建设置中删除
Other Files Flag
中的 $(inherited)
标志:构建成功,但我的应用程序不再运行
...我试图删除其他标志,但没有结果。
没有解决方案,我很生气。
从 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。
我整整一周都在为一个问题发疯... 我有一个 ReactNative 项目,运行 在 Android 模拟器上运行良好,但在 Xcode.
上运行不佳- 我的代码
其实我的 package.json :
Package.json
...
"react": "15.4.2",
"react-native": "^0.40.0",
...
"react-native-onesignal": "^3.0.3",
...
我可以 运行 npm install
或 npm 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/ios
在 recursive
中:
现在,OneSignal.h 找到了,但我收到一个新错误,告诉我该库是重复的:
有关信息,这是我的库、我的文件和我的构建阶段:
Library in General
Files in Xcode
Build Phases
- 我试过的
我尝试过:
- 删除main.m,因为它似乎是重复的,
- 在通用库或构建阶段库中删除库的一个副本,
- 在Xcode、 的文件系统中手动删除一个副本
- 在我的目标构建设置中删除
Other Files Flag
中的$(inherited)
标志:构建成功,但我的应用程序不再运行 ...我试图删除其他标志,但没有结果。
没有解决方案,我很生气。
从 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。