Flutter混合开发NSBonjourServices问题

2023-06-01  本文已影响0人  大大东

-- 使用最新版的Flutter,已经不再需要自己添加了 --

Flutter混合开发,在iOS中调试时需要添加Info.plist配置如下图:

image.png

对此官方文档也有指出, 文档给出的方案是拷贝一份info.plist分别命名为
info-debug.plistinfo-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


上一篇 下一篇

猜你喜欢

热点阅读