[英]Expo eject causes Invalid `Podfile` file: syntax error, unexpected '.'
I just ejected from expo and I am getting this error bellow:我刚刚从 expo 弹出,我收到以下错误消息:
[!] Invalid `Podfile` file: syntax error, unexpected '.'.
# -------------------------------------------
# installer.pods_project.targets.each do |target|
> if (target.name&.eql?('FBReactNativeSpec'))
# target.build_phases.each do |build_phase|
# -------------------------------------------
I am not sure where the error is.我不确定错误在哪里。 I haven't touched the pod file I think there must have been a syntax error or something.
我没有触及 pod 文件,我想一定是有语法错误之类的。 If anyone can help me out It would be very much appreciated.
如果有人可以帮助我,将不胜感激。 Thank you.
谢谢你。
require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking")
require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods")
require File.join(File.dirname(`node --print "require.resolve('@react-native-community/cli-platform-ios/package.json')"`), "native_modules")
platform :ios, '12.0'
require 'json'
podfile_properties = JSON.parse(File.read('./Podfile.properties.json')) rescue {}
target 'Match' do
use_expo_modules!
config = use_native_modules!
use_react_native!(
:path => config[:reactNativePath],
:hermes_enabled => podfile_properties['expo.jsEngine'] == 'hermes'
)
# Uncomment to opt-in to using Flipper
#
# if !ENV['CI']
# use_flipper!('Flipper' => '0.75.1', 'Flipper-Folly' => '2.5.3', 'Flipper-RSocket' => '1.3.1')
# end
post_install do |installer|
react_native_post_install(installer)
# Workaround `Cycle inside FBReactNativeSpec` error for react-native 0.64
# Reference: https://github.com/software-mansion/react-native-screens/issues/842#issuecomment-812543933
installer.pods_project.targets.each do |target|
if (target.name&.eql?('FBReactNativeSpec'))
target.build_phases.each do |build_phase|
if (build_phase.respond_to?(:name) && build_phase.name.eql?('[CP-User] Generate Specs'))
target.build_phases.move(build_phase, 0)
end
end
end
end
end
post_integrate do |installer|
begin
expo_patch_react_imports!(installer)
rescue => e
Pod::UI.warn e
end
end
end
I find a reason for it.我找到了一个理由。 if ruby version is less than 2.3, the operate of '&.'
如果 ruby 版本小于 2.3,'&.' 的操作cannot be support.
不能支持。 so, upgrade your ruby version can solve it.
所以,升级你的ruby版本即可解决。
And if you install cocoapods by brew, the default ruby version is 2.0.x.而如果你用brew安装cocoapods,默认的ruby版本是2.0.x。 so that, use 'gem install cocoapods' instead.
因此,请改用“gem install cocoapods”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.