Universal LinkはiOS 12では問題なく動作していましたが、昨日iOS 13.1にアップデートしたときに問題が発生しました。タップされたときにアプリを開くはずのURLがブラウザで開かれているだけです。 iOS 13の一部のユーザーは同じことを報告しました。
繰り返しますが、iOS 12.4ではこの問題は発生しませんでした
AASAファイルが正しくダウンロードされていないと思います。 Safariの上部に表示されるバナーからOpen
をタップしてみました。URLの1つにアクセスしたときに表示されます。これは役に立ちませんでした。
場合によっては、再インストールと再起動を数回行っても問題なく動作しましたが、再インストールすると機能しなくなりました。
ログの表示について説明しているこのブログ投稿 https://ios13.dev/universal-links-debugging-on-ios-13-cjwsux93w001p6ws1swtstmzc を見つけました。
私はsysdiagnoseをエクスポートし、私のswcutil_show.txtは私のアプリでこれを示しています
Service: applinks
App ID: (my app ID)
App Version: 102
Domain: (app.myurl.com)
User Approval: unspecified
Site/Fmwk Approval: unspecified
Flags:
Last Checked: 2019-09-26 00:48:24 +0000
Next Check: 2019-09-30 23:51:38 +0000
他のアプリはこのように見えます
Service: applinks
App ID: ZL6BUSYGB3.com.Apple.news
App Version: 2300.5
Domain: news.Apple.com
Patterns: {"/":"*"}
User Approval: unspecified
Site/Fmwk Approval: approved
Flags: systemApplication
Last Checked: 2019-09-25 18:45:50 +0000
Next Check: 2019-09-30 17:49:04 +0000
何らかの理由でPatterns
(AASAから)が欠落しており、Site/Fmwk Approval
はunspecified
です。
数回再インストールして再起動した後、ユニバーサルリンクが機能しているときにsysdiagnoseをエクスポートしてみました。私のアプリにはPatterns
にSite/Fmwk Approval approved
の機能がありました
IOS 13で同様の問題が発生しましたか?どんな助けでも大歓迎です
Ios13、Apple-site-app-associationは 新しい形式 のようです
{
"applinks": {
"details": [
{
"appIDs": [ "ABCDE12345.com.example.app", "ABCDE12345.com.example.app2" ],
"components": [
{
"#": "no_universal_links",
"exclude": true,
"comment": "Matches any URL whose fragment equals no_universal_links and instructs the system not to open it as a universal link"
},
{
"/": "/buy/*",
"comment": "Matches any URL whose path starts with /buy/"
},
{
"/": "/help/website/*",
"exclude": true,
"comment": "Matches any URL whose path starts with /help/website/ and instructs the system not to open it as a universal link"
}
{
"/": "/help/*",
"?": { "articleNumber": "????" },
"comment": "Matches any URL whose path starts with /help/ and which has a query item with name 'articleNumber' and a value of exactly 4 characters"
}
]
}
]
},
"webcredentials": {
"apps": [ "ABCDE12345.com.example.app" ]
}
}
ファイルを更新しましたが、再び動作するようです。
編集:iOS12のサポートを維持するには:
古いフォーマットを新しいフォーマットに追加するだけです:
{
"applinks": {
"apps": [],
"details": [
{
"appIDs": [
"ABCDE12345.com.example.app"
],
"components": [
{
"/": "/help/*",
"comment": "Authenticate"
}
]
},
{
"appID": "ABCDE12345.com.example.app",
"paths": [
"/help/*"
]
},
]
}
}
[設定]> [Safari]> [デスクトップウェブサイトのリクエスト]> [すべてのウェブサイト]> [スイッチオフ]を開いてみてください。
この問題はiPadでより頻繁に発生します。これは、デスクトップのWebサイトを小さな画面ではなく大きな画面で表示するほうが理にかなっているためです。
Apple開発者フォーラムから。
それは私の問題を解決しました、素晴らしい
私はiOS 13でのみ同じ問題を抱えていましたが、iOS 13以降、appIDエントリでは大文字と小文字が区別されることがわかりました。アプリのバンドルIDとAASAファイルのappIDのエントリが大文字と小文字のみが一致していません。例:
バンドルID:TEAMID.com.company.EXAMPLE AASAエントリ:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "TEAMID.com.company.example",
"paths": [ "*" ]
}...
AASAファイルのappIDを修正する必要があり、私の問題は解決しました。
多くのテストの結果、以下がiOS12とiOS13の両方で機能する形式であることがわかりました。 iOS12では、正しく機能するために、すべてのdetails
辞書エントリにappID
およびpaths
パラメータを含める必要があります。一方、iOS13では、最初のエントリにappIDs
とcomponents
の両方が含まれていると想定しています。つまり、最初のエントリには、自動入力(パスワードの保存プロンプトを使用)とユニバーサルリンクの両方のプラットフォームをサポートするために、4つのパラメーターすべてを含める必要があります。
皮肉なことに、この形式はApple App Search API Validation Toolを通過しませんが、ブランチ1で機能します... FTS!また、異なるVCでユーザー名とパスワードUITextFieldを使用すると、動作しません(パスワードの保存プロンプトが表示されません)。パスワード画面に「偽の」ユーザー名UITextFieldを追加して、OSに表示されるようにし、非表示にしないでください。基本的には1x1pxのサイズにし、テキストと背景をクリアにし、前のVCのユーザー名を入力します)。
{
"applinks": {
"apps": [],
"details": [
{
"appIDs": [ "ABCDE12345.com.domain.app", "ABCDE12345.com.domain.app2" ],
"appID": "ABCDE12345.com.domain.app",
"components": [
{
"/": "/documentationsucksforios13",
"comment": "This documentation is awful"
}
],
"paths": [ "/documentationsucksforios12" ]
},
{
"appID": "ABCDE12345.com.domain.app2",
"paths": [ "/validationtoolsdontwork" ]
}
]
},
"webcredentials": {
"apps": [ "ABCDE12345.com.domain.app" ]
}
}
同様の問題が発生していました。 iOS 13.1.2にアップグレードした後、正常に動作しているようです。つまり、Appleは彼らの側でバグを解決した可能性が最も高いです。