微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter 错误:无效的 `Podfile` 文件:没有将 nil 隐式转换为 String

如何解决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 举报,一经查实,本站将立刻删除。