Apple 應用網站協會:解釋

Ella

Apple App Site Association (AASA) 是 iOS 應用程序開發人員的重要工具。它將應用程序安全地連接到網站,並允許應用程序使用通用鏈接和共享網絡憑據等功能。在當今的數字時代,用戶在應用程序和網站之間無縫移動,提供流暢、安全的體驗至關重要。 AASA 在實現這一目標方面發揮著關鍵作用。

本指南將探討 AASA,解釋其機制、優點以及創建和驗證您自己的 AASA 文件的分步過程。無論您是經驗豐富的開發人員還是剛剛起步的開發人員,了解 AASA 對於提高用戶參與度並確保應用程序和網站之間的安全連接都至關重要。 AASA 文件位於 Web 服務器上並在用戶安裝應用程序時由用戶設備進行檢查,從而幫助應用程序與網站協作。

如果一切都匹配,應用程序可以更好地與網站配合使用。設置 AASA 文件很簡單。開發人員創建一個包含必要信息的 JSON 文件,並將其放置在其網站上的正確位置,以便 Apple 的服務器可以找到它。這使得應用程序和網站能夠順利協作。

請參閱此頁面以獲取 Apple 的更多文檔:https://developer.apple.com/documentation/xcode/supporting-linked-domains

簡化應用程序和網站集成

什麼是 Apple 應用網站協會?

Apple App Site Association (AASA) 是您網站上的一個文件,用於在您的應用程序和網站之間建立安全連接。此連接支持通用鏈接、共享 Web 憑據、切換和應用程序剪輯等功能。

AASA 如何運作?

當用戶點擊通用鏈接時,iOS 會檢查您網站上的 AASA 文件,以驗證您的應用是否可以處理該鏈接。如果是,則直接打開應用程序;否則,鏈接將在 Safari 中打開。

使用 AASA 的好處

  • 無縫的用戶體驗:用戶可以不間斷地在您的應用程序和網站之間移動。
  • 增強安全性:AASA 確保只有您的應用程序可以打開您網站的鏈接,從而防止未經授權的訪問。
  • 提高可發現性:AASA 使您的應用內容更容易通過網絡搜索和社交媒體找到。

創建您的 AASA 文件

  1. 將您的文件命名為“apple-app-site-association”(不帶擴展名)。
  2. 使用 JSON 格式構建文件的內容。
  3. 包括有關您的應用程序 ID、應用程序要處理的路徑以及您支持的其他服務的詳細信息。
  4. 將該文件放置在網站根目錄的“.wellknown”目錄中。

AASA 文件結構

鑰匙 描述
應用鏈接 包含有關與您的應用程序關聯的應用程序 ID 和路徑的信息。
應用程式 通用鏈接運行需要一個空數組。
細節 字典數組,每個字典包含特定應用程序 ID 及其關聯路徑的信息。
應用程序ID 您的應用程序的團隊 ID 或應用程序 ID 前綴,後跟捆綁包 ID。
路徑 一組字符串,指定您的應用程序應處理網站的哪些部分。

AASA 文件示例

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "9JA89QQLNQ.com.example.app",
        "paths": [ "/wwdc/news/", "/videos/wwdc/2015/*" ]
      }
    ]
  }
}

驗證您的 AASA 文件

使用App Search API Validation Tool由 Apple 提供,以確保您的 AASA 文件格式正確且可訪問。

要點

  • Apple App Site Association 鏈接應用程序和網站
  • 該文件啟用通用鏈接等功能
  • 正確的設置可改善應用程序和 Web 集成

實施Apple App Site Association

Apple App Site Association (AASA) 允許 iOS 應用程序直接打開 Web 鏈接。本節介紹創建 AASA 文件、服務器設置和 Xcode 配置。

了解 AASA 文件

AASA 文件是一個 JSON 文件,它將您的網站鏈接到您的 iOS 應用程序。它必須命名為“apple-app-site-association”,沒有文件擴展名。將其放在網站的根目錄或“.well-known”文件夾中。

該文件列出了您的應用程序 ID 以及它們可以打開的 URL。這是一個基本示例:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "TEAM_ID.BUNDLE_ID",
        "paths": ["*"]
      }
    ]
  }
}

將 TEAM_ID 替換為您的 Apple 開發者團隊 ID,將 BUNDLE_ID 替換為您的應用程序的捆綁包 ID。 “paths”數組顯示您的應用程序可以打開哪些 URL。

配置您的網絡服務器

您的 Web 服務器需要正確發送 AASA 文件。設定這些規則:

  1. 使用 HTTPS 來提供文件。
  2. 將內容類型設置為“application/json”。
  3. 不要重定向對此文件的請求。

許多服務器在 .htaccess 文件中使用這些設置:

<Files "apple-app-site-association">
  ForceType 'application/json'
</Files>

通過在 Web 瀏覽器中訪問 https://yourdomain.com/apple-app-site-association 來測試您的設置。您應該會看到文件的 JSON 內容。

在 Xcode 中設置關聯域

要在您的應用程序中使用 AASA:

  1. 打開您的 Xcode 項目。
  2. 單擊您的目標。
  3. 轉到“簽名和功能”選項卡。
  4. 添加“關聯域”功能。
  5. 添加一個條目,如“applinks.com”。

在應用程序的代碼中,處理傳入鏈接。在 Swift 中,使用 UIApplicationDelegate 方法:

func application(_ application: UIApplication,
                 continue userActivity: NSUserActivity,
                 restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
    if let incomingURL = userActivity.webpageURL {
        // Handle the URL here
    }
    return true
}

此設置允許您的應用程序直接打開來自您網站的鏈接。

AASA 高級主題

AASA 文件為 iOS 應用程序開發人員提供了強大的功能。它支持通用鏈接、深度鏈接以及對 App Clip 的支持。這些工具可以極大地提高用戶體驗和應用程序參與度。

使用通用鏈接和深層鏈接

通用鏈接讓 iOS 應用程序可以處理特定的 URL。這在網站和應用程序之間創建了平滑的鏈接。要設置通用鏈接,請將應用程序的 ID 添加到 AASA 文件。包含您希望應用程序處理的路徑。

您可以使用通配符進行更靈活的路徑匹配。例如:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "ABCDE12345.com.example.app",
        "paths": ["/product/*", "/category/*"]
      }
    ]
  }
}

此設置允許應用程序打開“example.com/product/123”或“example.com/category/shoes”等鏈接。

深層鏈接將用戶引導至應用中的特定內容。您可以通過 URL 參數傳遞數據。然後,您的應用程序使用此信息來顯示正確的屏幕或內容。

通過共享 Web 憑據和切換增強用戶體驗

共享 Web 憑據允許應用程序從 Safari 訪問保存的密碼。這使得登錄變得更加容易。要使用此功能,請將“webcredentials”密鑰添加到您的 AASA 文件中:

{
  "webcredentials": {
    "apps": ["ABCDE12345.com.example.app"]
  }
}

切換允許用戶在一台設備上開始任務並在另一台設備上完成。它適用於網站和應用程序。要支持 Handoff,請使用 AASA 文件中的“activitycontinuation”鍵:

{
  "activitycontinuation": {
    "apps": ["ABCDE12345.com.example.app"]
  }
}

這些功能創造了跨設備和平台的無縫體驗。

支持應用程序剪輯和替代模式

App Clip 是應用程序的一小部分,用戶可以快速運行。它們非常適合執行下訂單或租用自行車等任務。要支持 App Clips,請將“appclips”鍵添加到您的 AASA 文件中:

參見:防止 Safari 中的跨站跟踪

{
  "appclips": {
    "apps": ["ABCDE12345.com.example.appclip"]
  }
}

您還可以為您的應用程序設置備用模式。這對於“精簡”版本之類的東西很有用。在 AASA 文件的“details”鍵下添加這些模式:

{
  "applinks": {
    "details": [
      {
        "appID": "ABCDE12345.com.example.app",
        "paths": ["/standard/*"],
        "appIDs": ["ABCDE12345.com.example.app.lite"],
        "components": [
          {
            "/": "/lite/*"
          }
        ]
      }
    ]
  }
}

此設置允許您處理具有不同應用程序版本的不同路徑。

常見問題解答

Apple App Site Association (AASA) 文件有助於將網站鏈接到應用程序。以下是有關使用 AASA 文件的一些常見問題。

如何驗證我網站的 AASA 文件?

Apple 提供了一個在線工具來檢查 AASA 文件。訪問 Apple 搜索驗證工具網站。輸入您的域名。該工具將掃描您的站點並顯示 AASA 文件的任何問題。

託管 AASA 文件的正確路徑是什麼?

將 AASA 文件放入 Web 服務器上的 /.wellknown/ 文件夾中。完整路徑應該是:

https://example.com/.well-known/apple-app-site-association

確保該文件無需文件擴展名即可訪問。

一個 AASA 文件可以支持多個應用程序嗎?

是的,單個 AASA 文件可以鏈接到許多應用程序。在 JSON 文件的“applinks”部分列出每個應用程序的詳細信息。包含您要連接的每個應用程序的應用程序 ID 和路徑。

與 AASA 建立深度鏈接涉及哪些步驟?

要設置深度鏈接:

  1. 創建包含應用程序詳細信息和 URL 路徑的 AASA 文件
  2. 將文件上傳到您的網絡服務器
  3. 在 Xcode 中將關聯域添加到您的應用程序
  4. 處理應用代碼中的傳入 URL

測試設置以確保鏈接正確打開您的應用程序。

AASA 文件在用戶設備上多久更新一次?

當用戶打開您的應用程序時,iOS 會檢查 AASA 文件更新。它還會在後台定期檢查。確切的時間有所不同。為了更快地推送更新,用戶可以刪除並重新安裝您的應用。

在哪裡可以找到 AASA 實施的綜合文檔?

Apple 的開發者網站提供了有關 AASA 文件的完整詳細信息。在 iOS 文檔中查找“啟用通用鏈接”指南。它涵蓋文件格式、託管以及如何在應用程序中添加支持。