HBuilderX2.3.0开始云端打包支持配置XCode中的Capabilities
如下XCode配置
打开项目的manifest.json文件,在源码视图中进行配置
"capabilities": {
"entitlements": { // 合并到工程entitlements文件的数据(json格式)
},
"plists": { // 合并到工程Info.plist文件的数据(json格式)
}
},
其中entitlements数据(json)将转换成XCode工程中entitlements文件的数据(字典格式)
plists节点数据将转换成XCode工程中Info.plist文件的数据(字典格式)
Universal Link是苹果在WWDC 2015上提出的iOS 9的新特性之一。此特性类似于深层链接,并能够方便地通过打开一个Https链接来直接启动您的客户端应用(手机有安装App)。对比起以往所使用的URL Sheme, 这种新特性在实现web-app的无缝链接时能够提供极佳的用户体验。
使用前请阅读苹果官方文档
使用通用链接(Universal Link)必须要有域名,下的配置中将要用到
登录苹果开发者网站,在“Certificates, Identifiers & Profiles”页面选择“Identifiers”中选择对应的App ID,确保开启Associated Domains服务
开启Associated Domains服务后需要重新生成profile文件,提交云端打包时使用
原生XCode环境配置通用链接域名(本地离线打包配置,使用HBuilderX云端打包跳过)
使用HBuilderX云端打包时在manifest.json中配置域名
在"plus" -> "distribute" -> "apple" -> "capabilities" -> "entitlements"节点(uni-app项目在"app-plus" -> "distribute" -> "ios" -> "capabilities" -> "entitlements")下添加"com.apple.developer.associated-domains"字段,字段值为字符串数组,每个字符串为要关联的域名
"capabilities": {
"entitlements": {
"com.apple.developer.associated-domains": [
"applinks:demo.dcloud.net.cn"
]
}
}
其中demo.dcloud.net.cn是应用通用链接的域名(这里不要包含path),请修改为自己应用要使用的域名
没有如上配置ipa包上传时会报错:
ERROR ITMS-90046: "Invalid Code Signing Entitlements. Your application bundle's signature contains code signing entitlements that are not supported on iOS. Specifically, value 'applinks:https://www.....' for key 'com.apple.developer.associated-domains' in 'Payload/HBuilder.app/HBuilder' is not supported."
实例
"ios" : {
"privacyDescription" : {
"NSCameraUsageDescription" : "需要您同意才能拍摄商品照片,进行商品发布的操作。",
"NSPhotoLibraryUsageDescription" : "需要您同意才能获取到相册图片,用于商品相册和用户头像的发布。"
},
"capabilities" : {
"entitlements" : {
"com.apple.developer.associated-domains" : [ "applinks:www.xianguovr.com" ]
}
},
"idfa": false
},
保存后提交云端打包生效。
HBuilderX中自带的默认真机运行基座HBuilderX注册的通用链接为:https://demo.dcloud.net.cn/ulink/
需要在上面域名对应的服务器上放apple-app-site-association文件。
apple-app-site-association文件配置如下:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "G56NU654TV.io.dcloud.HBuilder",
"paths": [ "/ulink/*"]
}
]
}
}
注意:不要直接拷贝使用上面的示例,必须根据自己应用的配置修改
把配置好的apple-app-site-association文件上传到你自己的服务器,确保通过https://demo.dcloud.net.cn/.well-known/apple-app-site-association可访问。
其中demo.dcloud.net.cn为上面配置的域名
应用安装后会通过访问上面的url向系统注册应用的通用链接。
可通过5+ API的plus.runtime.launcher判断应用启动来源,如果其值为"uniLink"则表示通过通用链接启动应。
这时可通过5+ API的plus.runtime.arguments获取启动参数,通用链接启动的情况将返回完整的通用链接地址。
微信配置通用链接参考:https://ask.dcloud.net.cn/article/36445
[1]
一键生成iOS通用链接: https://uniapp.dcloud.io/api/plugins/universal-links[2]
苹果官方文档: https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW1[3]
![: https://img-cdn-tc.dcloud.net.cn/uploads/article/20190918/aa61368e308ae5e310b02978fd97c5e7.png[4]
![: https://img-cdn-tc.dcloud.net.cn/uploads/article/20191024/2d348820422e3b02d8a65b8f6c6cd830.png[5]
![: https://img-cdn-tc.dcloud.net.cn/uploads/article/20191024/0221225d811e93279784d3235a32d055.png[6]
前端网页托管: https://uniapp.dcloud.io/uniCloud/hosting?id=%e7%ae%80%e4%bb%8b[7]
plus.runtime.launcher: https://www.html5plus.org/doc/zh_cn/runtime.html#plus.runtime.launcher[8]
plus.runtime.arguments: https://www.html5plus.org/doc/zh_cn/runtime.html#plus.runtime.arguments[9]
https://ask.dcloud.net.cn/article/36445: https://ask.dcloud.net.cn/article/36445