我试图在我的系统上安装 React Native,发现它无法安装该模板错误所需的 CocoaPods 依赖项。
sudo arch -x86_64 gem install ffi
解决了这个问题,但最终出现了event-config.h" file not found
错误。
我将 pod 文件中的 Flipper 版本更改为
use_flipper!({'Flipper'=>'0.76.0'})
,然后出现上述错误。任何有关此问题的帮助将不胜感激。
node version : 15.10.0
react-native version: 0.63.4
Xcode version: 12.4
错误描述如下:
Showing Recent Messages
Could not find or use auto-linked library 'swiftCoreGraphics'
Could not find or use auto-linked library 'swiftUIKit'
Could not find or use auto-linked library 'swiftDarwin'
Could not find or use auto-linked library 'swiftFoundation'
Could not find or use auto-linked library 'swiftMetal'
Could not find or use auto-linked library 'swiftObjectiveC'
Could not find or use auto-linked library 'swiftCoreFoundation'
Could not find or use auto-linked library 'swiftDispatch'
Could not find or use auto-linked library 'swiftCoreImage'
Could not find or use auto-linked library 'swiftQuartzCore'
Could not find or use auto-linked library 'swiftCore'
Could not find or use auto-linked library 'swiftSwiftOnoneSupport'
Undefined symbol: protocol descriptor for Swift.ExpressibleByFloatLiteral
Undefined symbol: associated type descriptor for Swift.ExpressibleByIntegerLiteral.IntegerLiteralType
Undefined symbol: associated conformance descriptor for Swift.ExpressibleByIntegerLiteral.Swift.ExpressibleByIntegerLiteral.IntegerLiteralType: Swift._ExpressibleByBuiltinIntegerLiteral
Undefined symbol: method descriptor for Swift.ExpressibleByFloatLiteral.init(floatLiteral: A.FloatLiteralType) -> A
Undefined symbol: protocol descriptor for Swift.ExpressibleByIntegerLiteral
Undefined symbol: value witness table for Builtin.Int32
Undefined symbol: __swift_FORCE_LOAD_$_swiftCoreImage
Undefined symbol: associated type descriptor for Swift.ExpressibleByFloatLiteral.FloatLiteralType
Undefined symbol: __swift_FORCE_LOAD_$_swiftQuartzCore
Undefined symbol: __swift_FORCE_LOAD_$_swiftDispatch
Undefined symbol: method descriptor for Swift.ExpressibleByIntegerLiteral.init(integerLiteral: A.IntegerLiteralType) -> A
Undefined symbol: __swift_FORCE_LOAD_$_swiftCoreFoundation
Undefined symbol: protocol witness table for Swift.Int : Swift._ExpressibleByBuiltinIntegerLiteral in Swift
Undefined symbol: __swift_FORCE_LOAD_$_swiftObjectiveC
Undefined symbol: __swift_FORCE_LOAD_$_swiftCoreGraphics
Undefined symbol: _swift_getForeignTypeMetadata
Undefined symbol: __swift_FORCE_LOAD_$_swiftFoundation
Undefined symbol: associated conformance descriptor for Swift.ExpressibleByFloatLiteral.Swift.ExpressibleByFloatLiteral.FloatLiteralType: Swift._ExpressibleByBuiltinFloatLiteral
Undefined symbol: __swift_FORCE_LOAD_$_swiftUIKit
Undefined symbol: __swift_FORCE_LOAD_$_swiftMetal
Undefined symbol: Swift.Float.init(Swift.Double) -> Swift.Float
Undefined symbol: __swift_FORCE_LOAD_$_swiftDarwin
Undefined symbol: protocol witness table for Swift.Float : Swift._ExpressibleByBuiltinFloatLiteral in Swift
还要在 pod 文件末尾添加此代码
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings["ONLY_ACTIVE_ARCH"] = "NO"
end
end
end
执行 pod install,清理构建文件夹并重新启动构建,这将解决问题。
更新:对于 xCode 13 使用以下配置: 如果你面对
Command PhaseScriptExecution failed with a nonzero exit code in react native xcode 13
我通过向 Xcode 中的项目添加一个空的 swift 文件来解决这个问题。这具有创建桥接头文件的副作用,该文件(至少对我来说)让我的项目得以编译。
如果您使用的是 m1 Mac
arch -x86_64 pod install
最终对我有用的是从 Xcode 中删除 LIBRARY_SEARCH_PATHS...
https://github.com/facebook/react-native/issues/31438#issuecomment-865180401
使用 Dipan Sharma 解决方案时,我无法再为设备或“任何 iOS 设备”构建。对我来说解决这个问题的方法只是将arm64排除在“任何iOS模拟器SDK”之外,而不是在上层排除它。即使从排除的架构的上层删除arm64,也没有为设备和“任何iOS设备”再次构建项目。不得不从我的 git 中提取一个旧的项目文件。 在 Apple Silicon M1 上使用“排除架构”设置
Dipan 的出色答案最初是有效的,但后来由于我无法控制的力量,我不得不更新一堆 React 库,但它不再有效。
最终我通过删除two对
的引用解决了这个问题"\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\""
在
<my project name>.xcodeproj/project.pbxproj
文件中。然后我再次运行我的项目,它完成了最后几个文件。
注意:为了充分披露,我不知道此更改会产生什么后果
我遇到错误未定义符号:CoreGraphics.CGFloat 的标称类型描述符。
反应本机:63.3 Xcode:v 16 MacOC:15.0.1 (24A348)。
解决方案适合我:在“构建阶段”->“链接二进制文件与库”的目标中,添加 libswiftCoreGraphics.tbd。
这是因为您的项目包含 Swift 和 Objective c 的框架/库。
添加一个 swift 文件(如果您看到项目中已有 Objective C 文件)或 Objective C 文件(如果您看到项目中已有 Objective C 文件)。选择出现上述错误的目标。
此步骤将要求创建桥接头。创建桥接标头 说是并编译并运行。