React Native-npx React Native运行ios不';初始化项目后无法工作
阅读之后,我使用React Native-npx React Native运行ios不';初始化项目后无法工作,ios,reactjs,xcode,react-native,Ios,Reactjs,Xcode,React Native,阅读之后,我使用npx react native init***创建了一个react native项目 这是成功的,因此,我尝试使用npx react native run ios运行项目,并得到以下错误: ** BUILD FAILED ** The following build commands failed: CompileC /Users/loser/Library/Developer/Xcode/DerivedData/test0205-dasunahpjpavelgms
npx react native init***
创建了一个react native项目
这是成功的,因此,我尝试使用npx react native run ios
运行项目,并得到以下错误:
** BUILD FAILED **
The following build commands failed:
CompileC /Users/loser/Library/Developer/Xcode/DerivedData/test0205-dasunahpjpavelgmslwgmvjhesxy/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/Flipper.build/Objects-normal/x86_64/FlipperRSocketResponder.o /Users/loser/Documents/projects/test0205/ios/Pods/Flipper/xplat/Flipper/FlipperRSocketResponder.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
从mmemories开始,必须先执行
pod install
命令 这似乎是react native 0.63中的一个问题,请尝试使用--0.62版启动项目,它应该会一直工作,直到他们修复错误为止这是因为iOS项目的Podfile中使用了flipper
use_flipper!
因此,我需要指出Flipper Folly
版本,并使用Flipper作为
use_flipper!({ 'Flipper-Folly' => '2.3.0' })
更改后,它工作得非常好。React版本-0。63
在Mac上启动iOS新项目时,我仍然面临同样的问题。我遵循了下面给出的这些步骤,但仍然解决了这个问题
npx react-native init xxxx
cd xxxx
npx react-native run-ios
pod install
在这样做之后,我得到了以下错误
** BUILD FAILED **
The following build commands failed:
CompileC /Users/apple/Library/Developer/Xcode/DerivedData/profirst-bbfobfkgbfqalecezvbonnkwcffv/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/Flipper.build/Objects-normal/x86_64/FlipperRSocketResponder.o /Users/apple/profirst/ios/Pods/Flipper/xplat/Flipper/FlipperRSocketResponder.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
后来我在pod文件中进行了更改
使用翻转器代码>到使用翻转器!({'Flipper Folly'=>'2.3.0'})
,但我仍然有同样的问题
以下是珠穆朗玛峰攀登者回答问题的截图
在ios/文件夹下的Podfile中更改使用\u flipper!用脚蹼!({'Flipper Folly'=>'2.3.0'})
光盘ios
吊舱安装
吊舱更新
光盘&&npx react本机运行ios(运行应用程序)
这对我有用。希望它对你也有用
在ios/Podfile中替换–使用翻转器代码>到使用翻转器!({'Flipper Folly'=>'2.3.0'})
排除ios/Podfile.lock
pod安装
在ios/Podfile中禁用Flipper后,我可以解决这个问题
修复Podfile,如下图所示
光盘ios
删除Pods文件夹和Podfile.lock
吊舱安装
吊舱更新
光盘&&npx反应本机运行ios
对我来说,从Podfile中禁用flipper很有效
更新的pod文件
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
platform :ios, '10.0'
target 'ReactNativeApp' do
config = use_native_modules!
use_react_native!(:path => config["reactNativePath"])
target 'ReactNativeAppTests' do
inherit! :complete
# Pods for testing
end
# Enables Flipper.
#
# Note that if you have use_frameworks! enabled, Flipper will not work and
# you should disable these next few lines.
# use_flipper!({ 'Flipper-Folly' => '2.3.0' })
# post_install do |installer|
# flipper_post_install(installer)
# end
end
target 'ReactNativeApp-tvOS' do
# Pods for ReactNativeApp-tvOS
target 'ReactNativeApp-tvOSTests' do
inherit! :search_paths
# Pods for testing
end
end
cd-ios&&pod安装
cd.&&npx react本机运行ios
是的,珠穆朗玛峰攀登者是对的。在我更新react native CLI后,它已损坏。这是因为使用flipper新版本
修复此问题的步骤:
> Open Podfile for the iOS project.
> Replace `use_flipper!` with `use_flipper!({ 'Flipper-Folly' => '2.3.0' })`.
> Then you must remove both Pods directory and Podfile.lock.
> open terminal and go to iOS project directory.
> Do `pod install`.
它对我非常有效。如何修复:
这是因为在最新的Catalina版本中,Flipper的愚蠢行为被破坏了。
在修复之前,你最好的办法是强制你的cocoapod升级到最新的工作版本(2.3.0)
转到项目文件夹根目录并打开/ios
目录
cd ios
打开您的pod文件
,并更改以下代码块:
use_flipper!
到
在/ios
目录中运行以下命令:
pod install
如果成功,请返回项目根目录并尝试运行该项目
cd ..
npx react-native run-ios
如果没有,请检查兼容性故障排除部分:
兼容性故障排除
尝试运行pod install
后,您可能会遇到与此类似的错误:
[!] CocoaPods could not find compatible versions for pod "Flipper-Folly":
In Podfile:
Flipper-Folly (= 2.3.0)
Flipper-RSocket (~> 1.1) was resolved to 1.3.0, which depends on
Flipper-Folly (~> 2.5)
FlipperKit/FBCxxFollyDynamicConvert (~> 0.54.0) was resolved to 0.54.0,
which depends on
Flipper-Folly (~> 2.2)
为了解决这个问题,
返回您的/ios
文件夹
cd ios
然后删除Podfile.lock
文件
rm -rf Podfile.lock
再次安装吊舱
pod install
然后运行react native
cd ..
npx react-native run-ios
如果没有任何效果,请对其进行评论
# use_flipper!({ 'Flipper-Folly' => '2.5.1' })
我在这里什么都试过了,而且试了很多,但都没用
然后我:
- 删除了我的node_模块(我唯一没有做的事情)
- 已删除Pods文件夹和Podfile.lock
- 然后安装npm(使用
——我的传统对等DEP
)
npx吊舱安装
(或cd ios/,吊舱安装)
npx react本机运行ios
它终于成功了
显然,删除节点模块起了作用,但不要问我为什么。这个问题是由flipper folly pod规范更新引起的
删除/卸载react native cli,只需使用npx即可
在react native 0.63.4(以前的稳定版本)上尝试此操作
记住,它不适用于最新的0.64.0和XCode 12.5
在ios/Podfile内部替换使用翻转器!与:
用脚蹼!({'Flipper Folly'=>'2.5.3','Flipper'=>'0.87.0','Flipper-RSocket'=>'1.3.1'})
pod安装--repo更新
npx反应本机运行ios
如果您不需要使用flipper或仍然遇到一些问题,请尝试在podfile中注释flipper并使用命令安装pods
pod安装--repo更新
我在github上找到了如此完美和全面的答案(2021年5月5日)
(旁注:确保您使用的是cocoapods 1.10.x)
如果你在0.62
将此行添加到您的podfile中(如果您已有此行,请对其进行修改):
将您的package.json本机依赖项更改为
执行所有经典的必要清理(节点、模块、缓存、pod文件夹等)(react native clean project是您的盟友),然后执行纱线安装和pod安装--repo update
(如果pod安装因Flipper包出错而失败,只需从podfile.lock中删除相关行并再次运行pod安装)
如果你在0.63
如果你在0.63,你就很幸运了!您只需要将这一行添加到您的podfile中(或者如果您已经有了它,则修改它):
然后正确地清理缓存(react native clean project是您的盟友),删除pods文件夹并执行pod安装--repo更新
这应该足以让Xcode 12.5正常工作
如果你在0.64上
(可选)检查podfile.lock并确保Flipper的值为0.75或更高,Flipper Folly的值为2.5.3或更高;如果没有,请将这一行添加到您的podfile中(如果您已经有了它,请修改它):
将您的package.json本机依赖项更改为:
执行所有经典的必要清理(节点\单元模块、缓存、pod文件夹等)(react native clean项目是您的
# use_flipper!({ 'Flipper-Folly' => '2.5.1' })
#use_flipper!()
#post_install do |installer|
#flipper_post_install(installer)
#end
use_flipper!('Flipper' => '0.75.1', 'Flipper-Folly' => '2.5.3', 'Flipper-RSocket' => '1.3.1')
"react-native": "0.62.3"
use_flipper!('Flipper' => '0.75.1', 'Flipper-Folly' => '2.5.3', 'Flipper-RSocket' => '1.3.1')
use_flipper!('Flipper' => '0.75.1', 'Flipper-Folly' => '2.5.3', 'Flipper-RSocket' => '1.3.1')
"react-native": "0.64.1"
# add_flipper_pods!
# post_install do |installer|
# flipper_post_install(installer)
# end
//#if DEBUG
//#import <FlipperKit/FlipperClient.h>
//#import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h>
//#import <FlipperKitUserDefaultsPlugin/FKUserDefaultsPlugin.h>
//#import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h>
//#import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h>
//#import <FlipperKitReactPlugin/FlipperKitReactPlugin.h>
//static void InitializeFlipper(UIApplication *application) {
// FlipperClient *client = [FlipperClient sharedClient];
// SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults];
// [client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]];
// [client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]];
// [client addPlugin:[FlipperKitReactPlugin new]];
// [client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]];
// [client start];
//}
//#endif
// #if DEBUG
// InitializeFlipper(application);
// #endif