You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter iOS已配置Info.plist仍报scheme查询无权限错误

问题根因
  • LSApplicationQueriesSchemes字段类型配置错误:iOS系统强制要求该字段为数组类型,用于存放所有需要查询的第三方URL Scheme白名单。你当前将其配置为字符串类型,系统无法正确读取你声明的instagram scheme权限,直接抛出无查询权限的错误。
  • Info.plist存在无效冗余节点:你在该配置项后额外添加了一组空的<key></key><string></string>无效键值对,可能干扰系统对plist文件的正常解析。
  • 配置更新后未做全量清理:iOS仅在App首次安装时读取Info.plist配置,如果你修改配置后仅使用热重载/热重启,或未卸载旧版本App直接覆盖安装,旧配置缓存会持续生效,新配置无法加载。
修复方案
  1. 修正Info.plist配置
    找到原文件中错误的LSApplicationQueriesSchemes配置段:
<key>LSApplicationQueriesSchemes</key>
<string>instagram</string>
<key></key>
<string></string>

将其替换为正确的数组类型配置,同时删除无效空节点:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>instagram</string>
    <!-- 后续业务需要跳转的其他App的URL Scheme,直接新增<string>项加入该数组即可 -->
</array>
  1. 清理缓存重新安装
    配置修改完成后,依次执行以下操作确保配置生效:
  • 在项目根目录执行清理命令:flutter clean
  • 删除模拟器/真机上已安装的旧版本测试App
  • 重新执行flutter run编译安装新版本,不要使用热重载/热重启触发更新
  1. 跳转代码校验
    你当前写的跳转调用逻辑本身没有语法问题,可以补充失败兜底逻辑优化体验:
void _launchApp() async {
  final launchResult = await LaunchApp.openApp(
    iosUrlScheme: 'instagram://',
  );
  if (launchResult == null || launchResult == false) {
    // 这里写跳转失败的兜底逻辑,比如提示用户未安装对应应用
  }
}

内容的提问来源于stack exchange,提问作者flutterloop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 18:27:25