如何解决Flutter 错误:无效的 `Podfile` 文件:没有将 nil 隐式转换为 String
我在稳定频道中将我的 Flutter 项目更新到 2.0.4,我正在尝试运行 iOS 应用程序,但是,在 pod install 中使应用程序崩溃。我收到此错误:
[!] 无效的 Podfile
文件:没有将 nil 隐式转换为 String。
# 来自 /Users/lucassesti/workspace/vendor_app/ios/Podfile:57
# -------------------------------------------
# 除非 File.exist?(copied_framework_path)
> FileUtils.cp_r(File.join(cached_framework_dir,'Flutter.framework'),copy_Flutter_dir)
# 结尾
# -------------------------------------------
这是我的 podfile:
platform :ios,'10.0'
# CocoaPods analytics sends network stats synchronously affecting Flutter build latency.
ENV['COCOAPODS_disABLE_STATS'] = 'true'
project 'Runner',{
'Debug' => :debug,'Profile' => :release,'Release' => :release,}
def parse_KV_file(file,separator='=')
file_abs_path = File.expand_path(file)
if !File.exists? file_abs_path
return [];
end
generated_key_values = {}
skip_line_start_symbols = ["#","/"]
File.foreach(file_abs_path) do |line|
next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
plugin = line.split(pattern=separator)
if plugin.length == 2
podname = plugin[0].strip()
path = plugin[1].strip()
podpath = File.expand_path("#{path}",file_abs_path)
generated_key_values[podname] = podpath
else
puts "Invalid plugin specification: #{line}"
end
end
generated_key_values
end
target 'Runner' do
use_frameworks!
use_modular_headers!
# Flutter Pod
copied_Flutter_dir = File.join(__dir__,'Flutter')
copied_framework_path = File.join(copied_Flutter_dir,'Flutter.framework')
copied_podspec_path = File.join(copied_Flutter_dir,'Flutter.podspec')
unless File.exist?(copied_framework_path) && File.exist?(copied_podspec_path)
# copy Flutter.framework and Flutter.podspec to Flutter/ to have something to link against if the xcode backend script has not run yet.
# That script will copy the correct debug/profile/release version of the framework based on the currently selected Xcode configuration.
# CocoaPods will not embed the framework on pod install (before any build phases can generate) if the dylib does not exist.
generated_xcode_build_settings_path = File.join(copied_Flutter_dir,'Generated.xcconfig')
unless File.exist?(generated_xcode_build_settings_path)
raise "Generated.xcconfig must exist. If you're running pod install manually,make sure Flutter pub get is executed first"
end
generated_xcode_build_settings = parse_KV_file(generated_xcode_build_settings_path)
cached_framework_dir = generated_xcode_build_settings['FlutteR_FRAMEWORK_DIR'];
unless File.exist?(copied_framework_path)
FileUtils.cp_r(File.join(cached_framework_dir,copied_Flutter_dir)
end
unless File.exist?(copied_podspec_path)
FileUtils.cp(File.join(cached_framework_dir,'Flutter.podspec'),copied_Flutter_dir)
end
end
# Keep pod path relative so it can be checked into Podfile.lock.
pod 'Flutter',:path => 'Flutter'
# Plugin Pods
# Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
# referring to absolute paths on developers' machines.
system('rm -rf .symlinks')
system('mkdir -p .symlinks/plugins')
plugin_pods = parse_KV_file('../.Flutter-plugins')
plugin_pods.each do |name,path|
symlink = File.join('.symlinks','plugins',name)
File.symlink(path,symlink)
pod name,:path => File.join(symlink,'ios')
end
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
我希望能正常工作,但它没有发生,我也尝试了一些 stackoverflow(如 flutter error Invalid `Podfile` file: no implicit conversion of nil into String. ive searched through discussions but I cant seem to fix the issue)问题,但没有解决问题
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。