2016-10-25 3 views
4

アプリストアにリダイレクトありません-site会合-unsigned.txtファイルとファイル内容ユニバーサルリンクは、私はconfiguration.Firstly私はステップをサーバ側で設定を行っている、両方の側でIOSのための9のデバイスをセットアップユニバーサルリンクを実装しようとしています

{ 
     "activitycontinuation": { 
      "apps": [ 
       "9JA89QQLNQ.com.apple.wwdc" 
      ] 
      }, 
     "applinks": { 
       "apps": [], 
       "details": [ 
        { 
         "appID":"9JA89QQLNQ.com.apple.wwdc", 
         "paths": [ 
             "*", 
             "/" 
           ] 
        } 
       ] 
      } 
    } 

ある

猫リンゴアプリサイト - 関連-unsigned.txtを使用して、上記のファイルに署名2.Did |それが署名した上で作成されたOpenSSL SMIME -sign -inkey demo.key -signer demo.crt -certfile demo.pem -noattr -nodetach -outform DER> リンゴアプリサイト会合

3.thenファイルie apple-app-site-association

4.このファイルを自分の証明書が利用できるルートサーバーに移動しました。私は普遍的にコピーした場合https://domain.com:8443/apple-app-site-association

7.Myアプリ、デバイスにインストールされていない - は:Node.jsの

var https = require('https'); 
var fs=require('fs'); 
var express = require('express'); 
var privateKey = fs.readFileSync(home_path + 'src/Server/API/demo.key', 'utf8'); 
var certificate = fs.readFileSync(home_path + 'src/Server/API/demo.crt', 'utf8'); 
var credentials = {key: privateKey, cert: certificate}; 
var app = express(); 
var httpsServer = https.createServer(credentials, app); 
httpsServer.listen(8443); 
console.log('deeplink service listening on port 3501');  
var aasa = fs.readFileSync('./apple-app-site-association'); 
app.get('/apple-app-site-association', function(req, res, next) { 
    console.log("Request landed on 8443 port."); 
    res.set('content-type', 'application/pkcs7-mime'); 
    res.status(200).send(aasa); 
}); 

6.thenは私のエンドポイントであると

5.created一方のエンドポイントつまり、Ios 9 Safariブラウザのhttps://domain.com:8443/apple-app-site-associationでは、ダウンロードするapple-app-site-associationファイルが表示されているのではなく、App Storeにリダイレクトされていません。

注:サーバー側の設定のみを行ったので、インストールされていないアプリがアプリストアにリダイレクトされるようにしました。

私はどこが間違っていますか?

答えて

4

ユニバーサルリンクのしくみを根本的に誤解していると思います。ユニバーサル・リンクスをさらに研究して、コンセプトが正しいことを確認する必要があります。 This might be a good place to start。あなたは、式のちょうど半分のユニバーサルリンクを実装することはできません

  1. :、役立つことがいくつかのことを言っ

    。動作させるには、サーバのアプリ内コンポーネントが必要です。

  2. iOSは、apple-app-site-associationファイルを探す場所で非常に特有です。最も簡単なオプションは、標準のHTTPSポート(443)を使用することですが、署名の試行が有効であると仮定すると、HTTPS以外のでも動作するはずです(ポート80)。
  3. URL https://domain.com/apple-app-site-association(外部ポート参照を削除した)自体はユニバーサルリンクではありません。これは、ホストする必要がある検証ファイルです。アプリでユニバーサルリンクを実装すると、iOSはあなたが問題のドメインを所有していることを確認できます。
  4. ユニバーサルリンクは、自動的にApp Storeへのリダイレクトを処理しません。アプリが開くか(インストールされている場合)、ウェブサイトが読み込まれるか(アプリがインストールされていない場合)のいずれかを制御するだけです。アプリケーションがインストールされていないときに読み込まれるWebサイトは、App Storeのリダイレクトを実装する必要があります。

多くのアプリケーションであっても、(彼らはSFSafariViewControllerを使用してFacebookやTwitter、または任意のアプリでは動作しませんユニバーサルリンクがまだディープリンクに部分的にしか解決されている、特に以来、この複雑さのすべてを処理しようとしないでくださいとりわけ、外部リンクルーティングサービスを検討したいかもしれません。 Branch.io(全開示:私は支店チームにいる)は良い選択肢であり、これらのすべての技術的な詳細を処理します。

+0

ユニバーサルリンクがサーバーに接続したか、 'get'リクエストを送信せずにアプリケーションを開くのか知っていますか? https://stackoverflow.com/q/45722140/4228969 Ps、将来的にはブランチを検討して、リンクに関する分析を行うことができます。 – toddg

+0

アプリがインストールされている場合、Universal Linksはアプリを開く前にサーバーにヒットしません。それは即座です。そのため、トラッキングを行うにはブランチのようなものが必要です。 –

+0

ありがとう、ありがとう。それは本当に役に立ちます。リンクされた質問に回答したいのですか? – toddg

関連する問題

 関連する問題