iOS 原生项目和Flutter 混编时,开发环境真机可以运行,但iOS 14及以后的高版本中,断开连接后打开 Flutter 页面后会闪退。 这里结合我们项目记录一下处理过程,其中上部分内容也不是很明白,暂做记录。
1. 折分Info 文件
将应用程序的Info.plist重命名为Info-Debug.plist。复制一个名为Info-Release.plist的副本,并将其添加到Xcode项目中。
2. nfo-Debug添加NSBonjourServices键
【注: 实测这一步可以省略
在Info-Debug.plist中,添加键NSBonjourServices并将值设置为 _dartobservatory._tcp
3. 修改 Info.plist File 路径
在target’s build settings, 修改 Info.plist File 路径 path/to/Info.plist 为 path/to/Info-$(CONFIGURATION).plist.
4. 删除 Copy Bundle 中部分文件
在 target’s -> Build Settings > Build Phases > Copy Bundle Resources build phase, 如果有Info-Release.plist 删除即可(下图已经删除)
5. 结合公司项目添加User-Defined
用 Xcode 打开工程项目,在 Build Settings 的最下方找到 User-Defined,点击 + 按钮,添加一个键为 FLUTTER_BUILD_MODE