问题一:FLutter 项目在VSCode上 attach一直显示# Waiting for a connection from Flutter on xxx...
flutter开发或者flutter module嵌入原生中的混合开发都是支持热重载模式的,在iOS模拟器或者真机在14+以上时,打开VSCode进行attach一直连接不上,具体解决方法如下,值得注意是模拟器或者真机一定要在显示flutter页面时,再去进行attach,否则是连接不上的。
1、在iOS的主工程中的Info.plist
文件中新增如下配置:
<key>NSLocalNetworkUsageDescription</key>
<string>Allow Flutter tools to connect to your application</string>
<key>NSBonjourServices</key>
<array>
<string>_dartobservatory._tcp</string>
</array>
2、重新运行iOS工程,
进入flutter页面
,使用VSCode进行attach
问题二:Xcode升级14.3+后,flutter运行或者打包 flutter module产物报错DVTCoreDeviceEnabledState: DVTCoreDeviceEnabledState_Disabled set via user default (DVTEnableCoreDevice=disabled)xcodebuild: error: Unable to find a destination matching the provided destination specifier:
Xcode升级14.3+之后,使用flutter build ios-framework --cocoapods --release --no-debug --no-profile --output=XXXX
来打包flutter moudle的release产物会报如上错误,解决办法如下:
1、找到flutter module的隐藏的iOS文件夹中podfile文件
2、Podfile文件中添加如下,值得注意的是这里给的版本就是flutter module打出的产物支持的
最低系统版本
,也就是说如下配置后打出的产物最后在iOS12以下的机器上是加载不出的
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
end
问题三:Xcode升级16+后,flutter项目运行报错ld: file cannot be open()ed, errno=2 path=marker in 'marker'
Xcode升级16+之后,运行 iOS - flutter项目会有如下报错,解决办法如下:
arget debug_universal_framework failed: ProcessException: Process exited abnormally:
ld: warning: -bitcode_bundle is no longer supported and will be ignored
ld: warning: -bitcode_process_mode is no longer supported and will be ignored
ld: file cannot be open()ed, errno=2 path=marker in 'marker'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Command: /usr/bin/arch -arm64e xcrun clang -x c -arch arm64/var/folders/dh/g2znj0xd5w33ywhvv4wxvd240000gn/T/flutter_tools.RthOAn/flutter_tools_stub_source.62gemK/debug_app.cc -dynamiclib
-fembed-bitcode-marker -miphonesimulator-version-min=9.0 -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks
-install_name@rpath/App.framework/App -isysroot
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk -o/Users/zmtzawqlp/Documents/flutter/github/abcd/.dart_tool/flutter_build/57ba3070442bc6d1a61e4871c8443a69/App.framework/App
#0 RunResult.throwException(package:flutter_tools/src/base/process.dart:124:5)
#1_DefaultProcessUtils.run(package:flutter_tools/src/base/process.dart:276:19)
1、找到flutter sdk路径中的iOS.dart文件,并且注释'-fembed-bitcode-marker':flutter/packages/flutter_tools/lib/src/build_system/targets/ios.dart
2、删除flutter sdk中的
flutter_tools.snapshort
和flutter_tools.stamp文件
- 路径:flutter/bin/cache/flutter_tools.snapshot
- 路径:flutter/bin/cache/flutter_tools.stamp
3、重新运行flutter doctor
后再次运行iOS - flutter项目即可
参考资料: