.NET Maui添加Entitlements.plist致构建失败,App Links无法生效
Visual Studio CE 2022 17.44 iOS App Links配置问题解决
1. 构建错误的修复
你将<CodesignResourceRules>替换为<CodesignEntitlements>的操作完全正确——--resource-rules参数在Mac OS X 10.10及以上版本已被废弃,需确保项目文件配置准确指向你的Entitlements.plist:
- 打开项目的
.csproj文件,找到原<CodesignResourceRules>节点,替换为:<CodesignEntitlements>Entitlements.plist</CodesignEntitlements> - 若Entitlements.plist存放在子目录,需填写完整相对路径(如
Resources/Entitlements.plist)。
2. App Links无法跳转的排查步骤
关联域配置验证
检查Entitlements.plist格式是否合规:
- 键为
com.apple.developer.associated-domains,值为数组类型,每个元素格式为applinks:popupshop.azurewebsites.net(不要添加http://或https://前缀)。
apple-app-site-association文件验证
- 确认文件可通过HTTPS正常访问:直接访问
https://popupshop.azurewebsites.net/apple-app-site-association和https://popupshop.azurewebsites.net/.well-known/apple-app-site-association,需返回200状态码,且内容为无注释、格式正确的JSON。 - 检查JSON核心配置:
appIDs必须包含完整App ID,格式为[TeamID].[BundleID](例如XYZ1234567.com.yourcompany.popupshop)。paths数组需包含/findshop,精确匹配写["/findshop"],需匹配子路径则用["/findshop/*"],注意路径大小写要和实际URL完全一致。
设备与测试方式
- 必须使用物理iOS设备测试,模拟器对App Links的支持存在限制。
- 应用需通过正式签名或Ad Hoc签名安装(调试签名可能导致功能受限)。
- 测试时不要直接在Safari地址栏输入URL,需点击网页或备忘录中的链接触发跳转逻辑。
- 重启设备和应用,清除Safari缓存,避免旧配置残留影响测试结果。
3. 项目设置缺少'Custom Entitlements'区域的处理
Visual Studio CE 2022部分版本确实没有该UI选项,手动修改.csproj文件是可靠的替代方案。需确保<CodesignEntitlements>节点放在对应iOS目标框架的PropertyGroup中,示例:
<PropertyGroup Condition="'$(TargetFramework)' == 'net6.0-ios'"> <CodesignEntitlements>Entitlements.plist</CodesignEntitlements> </PropertyGroup>
若有需求,可尝试更新Visual Studio至最新版本,后续版本可能补全该UI选项。
内容的提问来源于stack exchange,提问作者Cef
相关产品推荐
相关产品推荐

