【App Store深度链接】【IOS-Universal-Links】给App添加App Store深度链接,方便APP的更新内容及时在App Store中显示并提示用户更新
设备/引擎:Mac(11.6)/Mac Mini
开发工具:Xcode(15.0.1)
开发需求:给App添加App Store深度链接,方便APP的更新内容及时在App Store中显示并提示用户更新
最近新项目刚刚结束,我们就腾出手来研究了一下【App Store深度链接Universal-Links】,因为看同行较好的都已经有这个功能了,所以就抓紧研究解决一下。
【App Store深度链接Universal-Links】简单说就是每次更新版本时,你可以在开发者后台左侧边栏找到App内活动(如下图),在这里添加版本更新的亮点,这样新老用户都可以在App Store中看到,用户可以直接点击活动进行下载或者内容更新,这样一来既增加了老用户的活跃度,也会一定程度增加一些新的用户,所以还是值得更新一个版本。
操作步骤
1.在账号后台找到之前的APP证书,在证书中添加Associated Domains选项,重新导出证书
2.电脑上写一个JSON文件
3.将写好的JSON文件上传到自己APP官网的服务器上,获取相应链接
4.在Xcode中target下找到 Signing & Capabilities ,增加associated domains选项
5.在代码中添加回调函数,用来相应服务器后台的链接通知
第一步:APP证书修改+编写JSON文件
前两步可以并行操作,因为JSON文件需要用到证书中的Team ID和Bundle ID,所以修改证书的时候可以同时记下ID。
1.在开发者后台找到对应APP的证书,在Capabilities中勾选Associated Domains,完成后点击save,重新导出证书即可。如下图所示
2.证书及文件都需要重新导一下,导出之后就可以写JSON文件了,内容如下
{
"applinks":{
"apps":[],
"details":[{
"appID":"TeamID.Bundle ID",
"paths":["*"]
}]
}
}
注:文件名字必须是【apple-app-site-association】,不能带json后缀名,绝对不能带,不要加任何多余的东西,包括注释啥的,就完全按上面写就行
将证书中对应的ID写到代码中的TeamID.Bundle ID对应位置上,至此这个JSON就可以了。
第二步:将JSON文件上传到官网后台,并获取对应的链接
关于官网域名:添加这个功能前提你需要有一个自己APP账户的域名,而且必须是受信任的,也就是有证书的域名。
我们项目有自己的域名,但是,我们没注意域名并没有买证书,所以导致第一次操作之后链接有问题无法打开,所以我们就先解决域名的问题,我们的官网是在GoDaddy上买的,只需要在上面买一个证书即可,这样就可以保证域名是受信任的,也就可以继续后面的操作,我们是将JSON文件在GoDaddy上上传到.well-known目录中,获取到链接https://你的APP官网/.well-known/apple-app-site-association,验证没有问题就可以接着往后操作了。
如果你们有专门负责后端的同事,你就可以告诉他你需要让他帮你把JSON文件放到服务器的根目录下或者放到.well-known目录下,然后确保后端给你的文件链接是:https: //你的APP官网/apple-app-site-association或者https://你的APP官网/.well-known/apple-app-site-association,自己在浏览器上试试链接是否能打开,电脑端打开应该就只能看见JSON代码内容。
第三步:在Xcode中进行设置
前两步完成之后,就可以在Xcode中进行相应设置了,也比较简单,在Xcode中target下找到 Signing & Capabilities ,增加associated domains选项,如下图:
格式必须是:applinks:你的域名。
第四步:在工程代码中添加回调函数
我们是在工程AppController中添加回调函数,如下
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler{
if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
NSURL* universalUrl = userActivity.webpageURL;
NSLog(@"%@",[universalUrl absoluteString]);
}
return YES;
}
直接用就可以。
完成以上所有步骤,你就可以在上传新版本时添加活动提醒,这样用户在新版本就可以看到活动内容,并且可以直接通过点击来跳转到新版本进行更新或者下载。
PS:我们做的是海外游戏,所以不需要考虑QQ微信跳转的内容,有需要的可以查一查相关内容。
以上就是关于App Store深度链接的相关内容。
希望能给大家带来帮助!!!有什么问题需要讨论的可以评论私信欢迎讨论~