如何解决致命错误:lipo:-extract arm64 已指定,但脂肪为:armv7k arm64_32 适用于所有 watchos pods 库
Iphone 模拟器和 Apple Watch 模拟器的构建和运行一切正常 下面是一些项目设置和配置的屏幕截图:
为 arm64 构建:
使用 ios 14 为真正的 Iphone 构建:
项目配置:
开发配置文件:
WatchAppDev 配置文件:
watchExtentionDev 配置文件:
方案详情:
输出错误详情:
和我的 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,'Flutter.framework'),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
# Prevent Cocoapods from embedding a second Flutter framework and causing an error with the new Xcode build system.
install! 'cocoapods',:disable_input_output_paths => true
def watch_pods
pod 'Alamofire','~> 4.8.2'
pod 'AlamofireObjectMapper','~> 5.2.1'
pod 'SwiftyJSON','~> 5.0.0'
pod 'EMTLoadingIndicator','~> 4.0.0'
end
target 'MNO Watch' do
platform :watchos,'3.0'
use_frameworks!
use_modular_headers!
watch_pods
end
target 'MNO Watch Extension' do
platform :watchos,'3.0'
use_frameworks!
use_modular_headers!
watch_pods
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'YES'
end
end
end
解决方法
问题来自于 Flutter 引擎 要解决此问题,只需将 Flutter Channel 更改为 Beta , 有关它的更多信息:Flutter Issue Link
我会把我的问题留在这里,也许它可以挽救某人的一天
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。