我整整一个星期都对一个问题失去了理智...... 我有一个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
。
此外,我在我的Podfile中,对于我的iOS项目,在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 repo,并得到了开发人员关于我的问题的建议:他说要正确地关注iOS installation steps。
我已经完成了这项工作,在Header Search Path
中添加了$(SRCROOT)/../node_modules/react-native-onesignal/ios
recursive
:
现在,找到OneSignal.h,但是我收到一个新错误,告诉我库是重复的:
有关信息,这是我的库,我的文件和构建阶段:
一般的图书馆
Xcode中的文件
构建阶段
我试过:
$(inherited)
中的Other Files Flag
标记:构建成功,但我的应用程序不再正常工作
...我试图删除其他标志,但没有结果。没有解决方案而且我生气了。
答案 0 :(得分:1)
从版本0.40开始,反应本机与cocoapods不能很好地兼容。我有几天相似的战斗,它只有在完全丢弃cocoapods时才得到解决。
但在放弃之前,请尝试删除可在Xcode > File > Project Settings
找到的派生数据文件夹。
答案 1 :(得分:1)
所以,我解决了我的问题。 事实上,我的package.json正在版本^ 3.0.2中安装react-native-onesignal,所以目前是3.0.3。因此,由于3.0.3已从进程中删除了CocoaPods,因此它没有运行...我输入package.json '3.0.2'。 我将删除Cocoapods并稍后使用3.0.3。