本地测试apple-app-site-association文件的最简单服务部署方法是什么
iOS Universal Links 开发阶段免正式部署测试方案
本地测试方案(无需公网资源,零协作成本)
- 前置条件:测试设备或iOS模拟器与开发设备处于同一局域网
- 第一步:准备符合格式要求的
apple-app-site-association文件,存放在本地新建的.well-known文件夹内,文件不要带.json后缀 - 第二步:在
.well-known文件夹的上级目录启动本地HTTPS静态服务,苹果要求关联文件必须通过HTTPS请求获取,你可以直接用Node生态的serve工具快速启动:- 全局安装serve:
npm install -g serve - 启动带SSL的443端口服务:
serve --ssl --listen 443
- 全局安装serve:
- 第三步:修改测试设备/模拟器的hosts配置,将你需要绑定的正式域名指向开发设备的局域网IP,例如开发设备IP为
192.168.3.25,绑定域名是app.example.com,就新增一行hosts规则:192.168.3.25 app.example.com - 第四步:直接在Xcode运行Debug包到测试设备,点击对应域名的链接即可验证Universal Links跳转逻辑,苹果会直接从本地服务拉取关联文件,不会请求公网正式服务器。
远程模拟测试方案(适合多设备跨环境测试)
- 若需要给不在同一局域网的测试人员验证功能,可使用内网穿透工具将本地HTTPS服务映射到公网,直接将穿透生成的临时域名配置到Xcode的Associated Domains列表中即可,无需修改正式域名的DNS解析
- 配置校验:测试时可先用测试设备的Safari访问
https://<临时域名>/.well-known/apple-app-site-association,如果能正常下载文件且Content-Type为application/json,即代表服务端配置符合要求。
调试注意事项
- iOS 14及以上系统Debug模式下会绕过苹果CDN缓存直接拉取关联文件,无需等待CDN更新,非常适合反复调试
- 如果跳转失败,优先核对
apple-app-site-association内的Team ID、Bundle ID与Xcode配置是否完全一致,其次检查Associated Domains的前缀是否正确填写为applinks:
内容的提问来源于stack exchange,提问作者Abdul Momen
相关产品推荐
相关产品推荐

