이 도움말에서는 앱 링크 또는 범용 링크를 구현할 때 발생하는 일반적인 오류를 파악하고 해결하는 방법을 설명합니다.
이 페이지의 내용
앱 링크 구현 시 발생하는 일반적인 설정 오류
다음은 Android 앱 링크의 일반적인 설정 오류와 해결 방법입니다.
웹 오류
- 호스트 속성 유효성 검사: 호스트가 google.com 또는 www.google.com과 같은 올바른 URL인지 확인합니다.
- 디지털 애셋 링크 JSON 파일 누락: 인텐트 필터에 있는 각 고유 호스트 이름에 대해 파일이 있어야 합니다. 예: https://[domain.name]/.well-known/assetlinks.json
- 참고: Google에서 JSON 파일을 크롤링하지 않는 경우에도 이 오류가 발생할 수 있습니다. 예를 들어 robots.txt 파일에서 크롤러 액세스가 거부된 경우입니다. JSON 파일 URL을 확인하여 이 경우에 해당하는지 확인할 수 있습니다.
- 디지털 애셋 링크 JSON의 앱 패키지 이름이 잘못됨: 이 패키지 이름은 앱의 build.gradle 파일에 선언된 애플리케이션 ID와 일치해야 하며 앱은 Google Play 스토어에서 제공해야 합니다.
- 디지털 애셋 링크 JSON의 앱 디지털 지문(sha256_cert_fingerprints)이 잘못됨 이 오류를 해결하는 방법을 자세히 알아보세요.
- 디지털 애셋 링크 JSON의 content-type이 잘못됨: 모든 웹 도메인의 content-type은 'application/json'이어야 합니다.
- 디지털 애셋 링크 JSON에 https:// 대신 http://에서만 액세스할 수 있음: 앱에서 http:// 또는 https://를 앱 링크로 선언하는지와 관계없이 보안을 위해 JSON은 항상 https://에서 호스팅해야 합니다.
- 디지털 애셋 링크 JSON 파일에 리디렉션을 통해서만 액세스할 수 있음: 앱 소유권을 확인하기 위해 301/302 리디렉션 없이 이 파일에 직접 액세스할 수 있어야 합니다.
- robots.txt 파일이 /.well-known/assetlinks.json에 대한 크롤링 액세스를 차단함: 이 파일은 봇이 액세스할 수 있어야 합니다.
앱 오류
- 앱의 매니페스트에 android:scheme 속성이 포함된 <data> 태그가 누락됨
- 인텐트 필터 내에 ACTION_VIEW 인텐트 작업 속성이 누락됨(android.intent.action.VIEW)
- 인텐트 필터 내의 속성으로 DEFAULT 및 BROWSABLE 카테고리가 누락됨(android.intent.category.DEFAULT 및 android.intent.category.BROWSABLE)
- 인텐트 필터에 android:autoVerify=”true” 속성이 누락됨
- 리디렉션 URL 포함: 모든 URL은 사용자를 앱으로 바로 연결해야 합니다.
- 논리적으로 모순되는 앱 링크 선언: 중복되는 앱 링크 URL(예: https://example.com/이 활동 X를 트리거하고 https://example.com/Y가 활동 Y를 트리거함) 이 조건에서는 Android 시스템에 앱 선택 대화상자가 표시되어 앱 링크가 중단됩니다. 현재 딥 링크 검사기에서 감지되지 않으며 권장되는 구현이 아닙니다.
범용 링크 구현 시 발생하는 일반적인 설정 오류
다음은 iOS 범용 링크의 일반적인 설정 오류와 해결 방법입니다.
웹 오류
- 웹 도메인에 연결 파일이 누락됨: 사이트에서 여러 하위 도메인(예: example.com, www.example.com, support.example.com)을 사용하는 경우 연결된 도메인 사용 권한에 각각의 항목이 필요하며 각각 자체 apple-app-site-association 파일을 제공해야 합니다.
- 잘못된 위치에 연결 파일 호스팅: 연결 파일은 범용 링크와 동일한 도메인에서 호스팅해야 합니다. 리디렉션은 허용되지 않습니다. 예를 들어 범용 링크가 https://photo.google.com/album인 경우 연결 파일은 https://photo.google.com/.well-known/apple-app-site-association 또는 https://photo.google.com/apple-app-site-association에 있어야 합니다.
- 참고: /.well-known/이 선호하는 방법입니다.
- Apple 앱 사이트 연결(AASA) 파일에 .json 확장자 추가: apple-app-site-association.json은 올바르지 않으므로.json을 제외합니다.
- MIME plain/text의 content-type으로 연결 파일 제공: application/json이 있어야 합니다.
- 파일 크기 제한 초과: 연결 파일은 128KB(압축 해제된 크기)보다 작아야 합니다.
- 잘못된 앱 ID 구성: 앱 ID는 점(.)으로 연결된 팀 ID와 번들 ID로 생성해야 합니다.
- 도메인에 연결 파일에 대한 크롤링 액세스를 차단하는 robots.txt 또는 기타 메커니즘이 있음
- 논리적으로 모순되는 범용 링크 선언: 'paths' 키는 순서대로 처리됩니다.
예 1
https://apple.com/wwdc/는 범용 링크를 트리거합니다.
{
"appID": "ABCD1234.com.apple.wwdc",
"paths": [ "*", "NOT /wwdc/*" ]
},
예 2
두 번째 앱(EFGH5678.com.apple.wwdc)의 범용 링크는 작동하지 않습니다.
{
"appID": "ABCD1234.com.apple.wwdc",
"paths": [ "*" ]
},
{
"appID": "EFGH5678.com.apple.wwdc",
"paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]
}
앱 오류
- 맞춤 스키마 사용: https 또는 http를 사용합니다.
- applinks: 접두사가 누락됨: 모든 연결된 도메인의 형식은 applinks:yourdomain.com과 유사해야 합니다.
- 연결된 도메인의 부적절한 구성: 예를 들어 .google.com은 www.google.com과 일치하지만 google.com과는 일치하지 않습니다. google.com과 하위 도메인(예: www.google.com) 둘 다의 연결을 선언하려면 applinks:*.google.com 및 applinks:google.com을 선언해야 합니다.
참고: 딥 링크 검사기는 AASA JSON 파일의 유효성에 대한 앱 수준 검사를 실행하지 않습니다.
권장사항
- 휴대전화에서 테스트: 앱이 설치된 휴대전화로 URL을 전송합니다. 브라우저가 내장되지 않은 앱을 사용하여 링크를 클릭합니다(Google Keep이 이 테스트에 유용할 수 있음).
- 앱이 열리면 유효한 범용 링크입니다.
- 앱이 열리지 않거나 앱을 여는 확인 대화상자가 표시되면 유효한 범용 링크가 없는 것입니다.
- 이 경우 앱이 Appify에서 열리지 않습니다.
- 참여 유도 앱 캠페인에 앱이 사용되는 경우 광고가 비승인됩니다.