React-native-onesignal:Pods的重复错误

时间:2017-03-06 13:11:10

标签: ios node.js xcode react-native onesignal

我整整一个星期都对一个问题失去了理智...... 我有一个ReactNative项目,它在Android模拟器上运行得非常好,但在Xcode上却没有。

  1. 我的代码
  2. 实际上,我的package.json:

      

    的package.json

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

    我可以毫无错误地运行npm installnpm 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文件。当我打开它时,我可以看到第一个错误:

    Error in finding file

    所以我搜索了它,并在GitHub上找到了react-native-onesignal repo,并得到了开发人员关于我的问题的建议:他说要正确地关注iOS installation steps。 我已经完成了这项工作,在Header Search Path中添加了$(SRCROOT)/../node_modules/react-native-onesignal/ios recursiveAdd header properly

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

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

      

    一般的图书馆

    Library

      

    Xcode中的文件

    Files

      

    构建阶段

    Build phases

    1. 我尝试过的内容
    2. 我试过:

      • 删除main.m,因为它似乎是重复的,
        • 删除库中的一个副本,在“常规”库中或“构建阶段的库”中
        • 在Xcode中的文件系统中手动删除一个副本,
        • 在我的目标构建设置中删除$(inherited)中的Other Files Flag标记:构建成功,但我的应用程序不再正常工作 ...我试图删除其他标志,但没有结果。

      没有解决方案而且我生气了。

2 个答案:

答案 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。