一、微信SDK1.8.6.1 更新之后 注册方法变更
+ (BOOL)registerApp:(NSString *)appid universalLink:(NSString *)universalLink;
其中 universalLink 微信开发者Universal Link
所以更细之后 友盟和shareSDK 等三方登录托管平台都需要相关的配置 参考:微信官网文档
iPhone 的最新系统 如果没有配置相关设置 可能出现无法唤醒客户端或者是注册APP
所以尽早的做好适配
二、 Universal Link 通用链接 参考:苹果官方文档1 参考文档2
UniversalLink与URL Schemes一样,访问该URL的时候 会检测对应的APP是否已安装。
Seamlessly link to content inside your app, or on your website in iOS 9 or later. With universal links, you can always give users the most integrated mobile experience, even when your app isn’t installed on their device.
Universal Link(通用链接)是苹果在iOS9推出的,一种能够方便的通过传统HTTPS链接来启动APP的功能,可以使用相同的网址打开网址和APP。
三、配置 Universal Link
1.苹果开发者账号打开配置
2、打开Associated Domains开关,将Universal Links域名加到配置上
以applinks:+你准备的UniversalLink的形式填写对应值。例如:applinks:help.wechat.com,注意此次应是裸的域名,不要加https或者文件名
如果没有Associated Domains选项,则添加。
3、微信配置对应的UniversalLink和SDK注册方法填写相同UniversalLink,微信的要求https开头 /结尾,列如:https://help.wechat.com/
4、配置JSON文件
创建一个空白文件(必须纯文本,命名为apple-app-site-association,去除后缀名)。这里建议让后台人员在其本地创建,避免文件传输时,文件自动被更改格式、后缀自动添加等问题。
{
"applinks": {
"apps": [],
"details": [
{
"appID": "XXXXXXX.OOOOOOO",
"paths": [ "*" ]
}
]
}
}
说明:XXX表示苹果账号的团队ID,OOO表示项目的BundleID。
该文件若改动过,建议卸载重新安装,苹果重新主动请求
一般放在根目录下即可,若你的链接有重定向,建议尝试放置在.well-known子目录下,并且保证能GET请求到此文件,且文件不需要后缀名。
例如:以https://help.wechat.com为基础链接,则该文件请求路径为
https://help.wechat.com/apple-app-site-association
https://help.wechat.com/.well-known/apple-app-site-association
其实就是一个json,apps数组不用管,details里面填入对应得appID和paths。
浏览器打开这个地址,可以下载这个文件。另外GET请求这个地址,返回文件的JSON内容。
注意,返回的数据,不能存在乱码,否则说明JSON文件有问题。
5、可在safari浏览器中测试,要先卸载APP 重新运行一次即可,链接地址:https://help.wechat.com(微信的测试link) 页面加载完成之后下拉一下,是否有打开APP 的提示,有则配置成功
6、在Xcode中,在 “info”标签栏的“LSApplicationQueriesSchemes“添加weixin 和weixinULAPI
7、常规的URL Types 和白名单还是需要添加对应的配置(可参考上下文图
8、 .除了之前常用的回调 还需要添加一个新的回调
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray> * __nullable restorableObjects))restorationHandler {
return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}
四、总结:
配置的过程请一定要仔细,大致可分为2个阶段。
一、优先完成safari中测试,能提示打开APP
二、确保后台配置的地址可以GET请求和网页打开直接下载下来的json文件不会乱码
三、再配置微信相关内容
如果没有条件配置apple-app-site-association文件的,可以去三方托管平台例如友盟或者是shareSDK 都会有提供配置相关参数的功能