Flutter混合开发NSBonjourServices问题

-- 使用最新版的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


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容