美文网首页
iOS 微信分享----Universal Link 配置教程

iOS 微信分享----Universal Link 配置教程

作者: iOS程序媛ing | 来源:发表于2024-02-25 10:12 被阅读0次

    Univeral Link的配置有3方面:Apple Developer网站配置、XCode配置、服务器资源配置(apple-app-site-association文件创建和存放)
    首先说下我们的需求:支持一个域名下多个APP(目前是两个)的universal Link 跳转
    Universal Link访问地址为:
    (1)steel项目:https://chat.vol.com/steel/
    (2) companychat项目: https://chat.vol.com/companychat/
    一、Apple Developer网站配置
    项目的App ID 需要开通Associated Domains。
    【操作】:(1)登录Apple Developer网站 (Sign In - Apple),点开Identifiers一栏,找到我们项目的App ID。点击这个APP ID,进入APP ID设置页面。

    (2)在APP ID的设置页面,勾选Associated Domains。(如果在创建配置文件Profiles之后再勾选的Associated Domains,需要重新创建一下配置文件Profiles,然后下载最新的改APP ID的配置文件Profiles,重新安装上配置文件Profiles)。

    image.png

    二、服务器资源配置(apple-app-site-association文件创建和存放)
    【原理】:在第一次安装APP的时候,手机的iOS系统会去指定的路径(这个路径是后面后端开发人员给的)下载apple-app-site-association文件。通过这个文件,iOS系统就会知道哪些URL是Universal Links,哪些不是Universal Links。从而我们指定的路径可以发生跳转。这个apple-app-site-association文件需要开发者去创建(app端、后端人员都可以创建),并由后端开发人员放到一个苹果可以访问的服务器上。这个过程在XCode调试的时候也会发生。
    1、apple-app-site-association文件创建
    新建一个名字为apple-app-site-association的纯文本文件(Json格式),不要有任何后缀,文件内容为
    {"applinks": {"apps": [],"details": [{"appID": "团队ID.软件BundleID/APP ID","paths": ["限制的路径节点名,没有限制就填*"]}]}
    }

    上述填写内容,主要是appID和paths的填写,其他不用理会。
    一组{"appID":"XXX", "paths":"[xxx]"}对应一个APP。有多少个APP,就写多少组。我们的需求是一个域名下支持有两个APP使用Universal Link。所以我这里写了两组。
    (1)填写appID
    appID最正确的填写方式,就是XCode运行后,找到这个包,然后找到这个包下的配置文件embedded.mobileprovision, 在这个文件中的application-identifier是什么,APP ID就填写什么。
    【找appID方法】:参考下我的这篇文章Universal Link的apple-app-site-association填写appID最正确的方法_jifaliwo123的博客-CSDN博客
    (2)填写paths
    如果是一个服务器对应一个APP跳转,那么这里其实填写一个 “”就可以了。如果一个服务器支持多个APP跳转,则需要用不同的专用路径节点(填写“/节点/”)去互相屏蔽。比如地址https://chat.vol.com/AHost/XXX(paths填写"/AHost/") 只能用于A应用的跳转;地址https://chat.vol.com/BHost/XXX(paths填写"/BHost/")只能用于B应用的跳转。
    举个例子,因为我们需求是支持一个域名下多个APP(目前是两个)的universal Link 跳转
    Universal Link访问地址为:
    (1)steel项目:https://chat.vol.com/steel/
    (2) companychat项目: https://chat.vol.com/companychat/

    所以,下面是我用的文件(大概就这样)这两个APP都是在同一个开发者账号下,所以从embedded.mobileprovision, 在这个文件中的application-identifier拷贝到的appID里面的team ID都是同一个

    {"applinks": {"apps": [],"details": [{"appID": "CIKJHYGBHT.com.volcano.VOLSteelChat","paths": ["/steel/*"]},{"appID": "CIKJHYGBHT.com.volcano.VOLCompanyChat","paths": ["/companychat/*"]}]}
    }
    
    

    2、apple-app-site-association文件的存放
    这个文件创建好之后,交给后端人员。让他们把这个文件放到指定的url的根目录下(URL不一定要指定,可以后端人员给啥我们就用啥也行。这个URL在配置XCode会用到)。这个根目录下除了放这个文件不要放其他东西。
    【验证】:验证后端是否正确放置的方法,这是浏览器输入这个地址,会直接下载apple-app-site-association文件。如果没有下载到这个软件,说明服务器配置不对。
    例如

    • 企业ID是123456
    • bundileID是com.ceshi.abc.efg
    • 服务器地址是https://baidu.com
    • 存放apple-app-site-association文件的地址是https://baidu.com/cunfang/dizhi/
    • 那么apple-app-site-association文件就可以如下设置
      paths就是存放apple-app-site-association文件的地址去除服务器地址,在拼上*
    • 微信开发平台上配置的Universal Links就是https://baidu.com/cunfang/dizhi/

    ``
    {
    "applinks": {
    "apps": [],
    "details": [
    {
    "appID": "123456.com.ceshi.abc.efg",
    "paths": [ "/cunfang/dizhi/*" ]
    }
    ]
    }
    }

    ``

    相关文章

      网友评论

          本文标题:iOS 微信分享----Universal Link 配置教程

          本文链接:https://www.haomeiwen.com/subject/aowxedtx.html