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

Flutter iOS应用:调试最终IPA中的App Links权限问题

App Links无法工作且embedded.mobileprovision无对应域名的原因及验证方法

可能的原因

  • Xcode签名配置未关联entitlements文件:你本地的Runner.entitlements已经配置了applinks,但如果Xcode中Runner目标的签名设置没指定这个文件,打包时不会把权限注入到mobileprovision里。去Xcode的「Signing & Capabilities」标签下,确认Associated Domains已添加,且对应的entitlements文件路径正确(默认是ios/Runner/Runner.entitlements)。
  • Provisioning Profile未开启Associated Domains权限:苹果开发者后台的Provisioning Profile必须开启Associated Domains功能。如果创建Profile时没勾选这个权限,哪怕本地entitlements配置正确,打包后也不会出现在embedded.mobileprovision里。去开发者后台编辑对应的Profile,勾选Associated Domains,重新下载导入Xcode再尝试打包。
  • Flutter打包配置被覆盖:使用flutter build ios打包时,若未指定正确的签名配置,可能会使用默认Profile导致权限丢失。可以直接用Xcode打包Archive,确保签名配置完全符合要求。
  • entitlements文件路径错误:确认Runner.entitlements确实在ios/Runner目录下,且Xcode项目中该文件的引用未丢失、路径未变更。

验证权限是否传入最终产物的方法

  • 检查IPA内的Info.plist:解压IPA后,打开Payload/Runner.app里的Info.plist,查看是否包含com.apple.developer.associated-domains键,以及对应的applinks域名数组是否正确。
  • 用codesign命令查看签名信息:在终端执行以下命令(替换为你的IPA解压后Runner.app的实际路径):
    codesign -d --entitlements :- /path/to/Payload/Runner.app
    
    执行后会输出App的所有entitlements配置,直接查找com.apple.developer.associated-domains项,确认域名是否正确。
  • 查看Xcode打包日志:Xcode打包过程中,打开Build日志,搜索「entitlements」相关内容,确认打包时是否正确加载了你的Runner.entitlements文件,是否有权限注入的错误提示。
  • 真机调试查看系统日志:连接真机到Xcode,打开「Window > Devices and Simulators」,选中设备后点击「View Device Logs」,搜索「App Links」或「associated domains」关键词,查看是否有权限验证失败的日志信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:47:35