Flutter混合开发NSBonjourServices问题
2023-06-01 本文已影响0人
大大东
-- 使用最新版的Flutter,已经不再需要自己添加了 --
Flutter混合开发,在iOS中调试时需要添加Info.plist
配置如下图:
对此官方文档也有指出, 文档给出的方案是拷贝一份info.plist
分别命名为
info-debug.plist
和info-release.plist
配置到build setting
中。
这种方式后续维护起来会有成本,比如需要添加新的权限key时,很可能忘记修改另一个plist
文件
尝试在添加了一个Run Script,在编译后,如果是DEBUG模式,自动向info.plist
添加了调试的权限声明,经测试可以解决问题,脚本如下
# 指定 Info.plist 的路径
info_plist="${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"
# 要添加的键和新值
your_key_name="NSBonjourServices"
your_new_value="_dartobservatory._tcp"
# 检查当前是否为 Debug 模式
if [ "${CONFIGURATION}" == "Debug" ]; then
if ! /usr/libexec/PlistBuddy -c "Print $your_key_name" "$info_plist" | grep -q "$your_key_name";
then
# 创建一个空数组
/usr/libexec/PlistBuddy -c "Add $your_key_name array" "$info_plist"
# 将值添加到数组中
/usr/libexec/PlistBuddy -c "Add $your_key_name:0 string $your_new_value" "$info_plist"
fi
fi