我尝试实现iOS9 Universal Links

时间:2017-01-23 11:28:58

标签: deep-linking ios-universal-links

我想知道如何创建apple-app-site-association文件。

https://developerinsider.co/enable-universal-links-in-ios-app-and-setup-server-for-it/

以上链接说这样做:

AppCompatDelegate

我没有.pem和.key文件,我不知道如何创建它。

1 个答案:

答案 0 :(得分:0)

您可以在Alex Austin of Branch的博客文章中找到此流程,此处:https://blog.branch.io/how-to-setup-universal-links-to-deep-link-on-apple-ios-9/

以下是关键部分:

第2部分:配置apple-app-site-association文件

Universal Links将您的网站网址转换为应用链接,因此您需要运行网络服务器才能利用它们。要帮助完成此过程,请使用我们的Universal Links Validator检查您的apple-app-site-association文件是否配置正确。

选择一个域名

首先,确定您要用于Universal Links的域名。您可以注册新的或使用现有的。如果注册一个新的,我们更喜欢使用像ghandi.net这样干净,非垃圾邮件的注册商。

获取SSL认证

您需要获取用于托管Universal Links的域的SSL认证文件。为此,您需要使用第三方服务为SSL注册域名,并创建所需的文件。环顾四周之后,我们选择了Digicert来处理branch.io和相关的子域。

以下是创建SSL认证的步骤:

  1. 访问https://www.digicert.com/easy-csr/openssl.htm并填写顶部的表单以生成openSSL命令。保持此窗口打开
  2. 登录您的远程服务器
  3. 执行openSSL命令以生成证书签名请求(.csr)和证书文件(.cert)
  4. https://www.digicert.com/welcome/ssl-plus.htm
  5. 支付您的SSL认证
  6. 等待Digicert批准并向您发送最终文件
  7. 最后,将yourdomain.com.cert,yourdomain.com.key和digicertintermediate.cert移动到远程服务器上的同一目录中 创建您的apple-app-site-association JSON
  8. 此JSON文件有一个非常标准的结构,因此您基本上只需复制此版本并进行编辑即可满足您的需求。我将详细说明在哪里获得正确的值。

    {
        "applinks": {
            "apps": [],
            "details": [
                {
                    "appID": "R63EM248DP.io.branch.TestBed-Swift",
                    "paths": [
                        "NOT /e/*",
                        "*",
                        "/"
                    ]
                }
            ]
        }
    }
    

    您需要更改的唯一字段与“R63EM248DP.io.branch.TestBed-Swift”相关联。这实际上是两个值与句点连接在一起。这两个值都可以在标识符中的developers.apple.com上找到 - >应用ID部分。只需单击相应的已注册App ID。

    在此示例中,将前缀和ID与句点连接在一起,使其如下所示:“R63EM248DP.io.branch.TestBed-Swift”。 将此JSON文件另存为apple-app-site-association-unsigned。

    使用您的SSL证书签署JSON文件

    注意:如果您已将您的域认证为HTTPS,则可以跳过此步骤并以纯文本格式发送JSON。

    将apple-app-site-association-unsigned文件上传到您的服务器,与上一步中的认证和密钥文件相同。使用命令行,将目录更改为该文件夹并发出以下命令:

    cat apple-app-site-association-unsigned | openssl smime -sign -inkey yourdomain.com.key -signer yourdomain.com.cert -certfile digicertintermediate.cert -noattr -nodetach -outform DER > apple-app-site-association
    

    这将生成文件apple-app-site-association

    配置文件服务器

    好的!因此,您拥有已签名的apple-app-site-association文件。现在,您只需配置文件服务器即可为您托管。有几点需要注意:

    • 必须使用标题'application / pkcs7-mime'
    • 发送
    • 必须从端点youdomain.com/apple-app-site-association
    • 发送
    • 必须返回200个http代码。

    我们使用Node + Express链接服务器为所有Branch集成应用设置了一个。这是我们在有用的情况下使用的代码:

    var aasa = fs.readFileSync(__dirname + '/static/apple-app-site-association');app.get('/apple-app-site-association', function(req, res, next) {
         res.set('Content-Type', 'application/pkcs7-mime');
         res.status(200).send(aasa);
    });
    

    同样,您可以避免所有JSON托管和SSL证书工作,只需使用分支链接为您托管它。 快乐联系!