gpt4 book ai didi

ios - codepush 和 cocoapods 找不到 React/RCTEventEmitter.h

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:28:22 29 4
gpt4 key购买 nike

我很难诊断我的 iOS React native 构建失败的原因。在诊断了一些其他错误之后,我现在面临的问题是,无论我尝试什么,错误 React/RCTEventEmitter.h not found 困扰着我和我的应用程序。这只是一个由 react-native init 创建的基本 react-native 应用程序。

我几乎尝试了以下所有组合:

  • 更改“ header 搜索路径”
  • 删除创建的 xcode/DeriveData 文件夹
  • “解体” pod
  • pods 安装
  • 将 react-native-code-push xcodeproject/library 直接拖放到我在 Libraries 中的 xbox 中的应用
  • xcode 干净
  • react native 链接
  • react-native 链接代码推送
  • 从 Podfile 中删除 codepush
  • 正在删除 ios/Pods 文件夹
  • 正在删除 ios/Podfile.lock 文件
  • 使用 xcodebuild 手动构建应用(同样的错误)
/usr/bin/xcodebuild -sdk iphoneos -workspace ios/myApp.xcworkspace -scheme myApp  archive -archivePath myApp.xcarchive -UseModernBuildSystem=NO CODE_SIGNING_ALLOWED=NO

我的 react 信息如下(它是一个 macOS VM):

    System:
OS: macOS High Sierra 10.13.1
CPU: (4) x64 AMD Ryzen 7 1700X Eight-Core Processor
Memory: 102.70 MB / 4.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 11.11.0 - ~/.nvm/versions/node/v11.11.0/bin/node
Yarn: 1.13.0 - ~/.nvm/versions/node/v11.11.0/bin/yarn
npm: 6.7.0 - ~/.nvm/versions/node/v11.11.0/bin/npm
SDKs:
iOS SDK:
Platforms: iOS 11.2, macOS 10.13, tvOS 11.2, watchOS 4.2
IDEs:
Xcode: 9.2/9C40b - /usr/bin/xcodebuild
npmPackages:
react: 16.4.1 => 16.4.1
react-native: 0.57.0-rc.0 => 0.57.0-rc.0
npmGlobalPackages:
react-native-cli: 2.0.1
react-native: 0.58.6

我的 Podfile 是:

target 'myApp' do
# Pods for AppCenter
pod 'AppCenter/Crashes', '~> 1.13.0'
pod 'AppCenter/Analytics', '~> 1.13.0'
pod 'AppCenterReactNativeShared', '~> 1.12.0'
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!

# Pods for myApp


platform :ios, '9.0'
pod 'CodePush', :path => '../node_modules/react-native-code-push'

end

我面临的确切错误是:

/Users/administrator/Desktop/BUILD/myApp/node_modules/react-native-code-push/ios/CodePush/CodePush.h:6:9: fatal error: 'React/RCTEventEmitter.h' file not found
#import "React/RCTEventEmitter.h" // Required when used as a Pod in a Swift project

虽然我对 iOS 开发还很陌生,但我上面所做的似乎应该可以解决问题,但事实并非如此。这个错误看起来很明显,但我不知道还能做什么。

我知道有很多关于这个问题的文章,但我看到的大多数文章/问题都是可以解决的,但出于某种原因,我面临的具体案例似乎非同寻常。我想知道是否有人有任何其他提示或遇到过这样的问题?非常感谢任何帮助!

最佳答案

错误被触发at this line仅当用作 Swift 项目

中的 Pod 时才需要
#import "React/RCTEventEmitter.h"   // Required when used as a Pod in a Swift project

问题似乎是由这个 pull request 引起的,我建议你使用最新版本的react-native-code-push@5.6react-native 0.57 兼容。

尝试以下方法解决问题

1) 确保为 Swift 正确配置了 Podfile如果您使用的是 swift,请将 use_frameworks! 添加到 podfile

# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
use_frameworks!

2) 重新安装并配置 react-native-code-push 到最新版本 5.6

npm uninstall react-native-code-push
npm install --save react-native-code-push@5.6.0

关注ios setupplugin configuration

4) 安装app center as by instructions

如果问题没有解决

5) Add the following linenode_modules/react-native-code-push/ios/CodePush/CodePush.h

#import "React/RCTEventEmitter.h"

#import "RCTEventEmitter.h"

#import <React/RCTEventEmitter.h>

如果上述解决方案不能解决问题

6) Remove the following line from ios/AppDelegate.m

#import "CodePush.h"

and add

#import <CodePush/CodePush.h>

问题是由以下几行node_modules/react-native-code-push/blob/master/ios/CodePush/CodePush.h引起的.所有 if 语句都失败(意味着这些类不可用)并且 第 6 行 正在执行。

line 1 #if __has_include(<React/RCTEventEmitter.h>)
line 2 #import <React/RCTEventEmitter.h>
line 3 #elif __has_include("RCTEventEmitter.h")
line 4 #import "RCTEventEmitter.h"
line 5 #else
line 6 #import "React/RCTEventEmitter.h" // Required when used as a Pod in a Swift project
line 7 #endif

我很乐意帮助您进一步解决这个问题

关于ios - codepush 和 cocoapods 找不到 React/RCTEventEmitter.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55151487/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com