iOS Universal Links (유니버셜 링크)
2025. 1. 9. 21:57ㆍiOS
반응형
iOS에서 유니버설 링크(Universal Links)를 설정하려면 클라이언트와 서버 측 모두 작업이 필요합니다. 아래는 전체적인 플로우와 필요한 작업을 자세히 설명한 것입니다.
1. 유니버설 링크 플로우
- 사용자가 링크를 클릭
- 브라우저, 이메일, 메시지 등에서 링크를 클릭합니다.
- iOS 확인
- iOS는 클릭한 URL이 유니버설 링크로 설정된 앱에 연결된 도메인인지 확인합니다.
- 앱 실행
- 연결된 앱이 설치되어 있으면 앱이 열립니다.
- 앱이 설치되어 있지 않으면 웹사이트로 이동합니다.
- 앱에서 URL 처리
- 앱이 열리면 URL을 처리하고 적절한 화면을 표시합니다.
2. 클라이언트 측 작업
1) Xcode에서 프로젝트 설정
- Capabilities 활성화
- Xcode에서 프로젝트를 열고 Signing & Capabilities 탭으로 이동합니다.
- Associated Domains 항목을 추가합니다.
- applinks:<your-domain> 형식으로 도메인을 입력합니다.
- 예: applinks:example.com 또는 applinks:www.example.com.
2) App Delegate에 URL 처리 구현
- 유니버설 링크로 앱이 열릴 때 호출되는 메서드를 구현합니다.
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let incomingURL = userActivity.webpageURL else {
return false
}
// URL을 처리
handleIncomingURL(incomingURL)
return true
}
func handleIncomingURL(_ url: URL) {
// URL 경로에 따라 적절한 화면으로 이동
if url.path == "/product" {
// 예: 특정 상품 페이지로 이동
} else if url.path == "/profile" {
// 예: 프로필 화면으로 이동
}
}
3. 서버 측 작업
1) Apple App Site Association 파일 생성
- 도메인의 루트에 .well-known/apple-app-site-association 파일을 생성합니다.
- JSON 형식으로 앱 정보를 포함해야 합니다.
예제 파일
{
"applinks": {
"apps": [],
"details": [
{
"appID": "TEAMID.com.example.app",
"paths": [
"/product/*",
"/profile/*", "*"
]
}
]
}
}
- appID: Apple 개발자 계정의 Team ID와 앱 번들 ID를 결합한 값.
- 예: TEAMID.com.example.app
- paths: 유니버설 링크에서 앱으로 연결할 URL 경로.
2) 서버 설정
- apple-app-site-association 파일을 호스팅하려면 다음 조건을 충족해야 합니다.
- HTTPS 필수: SSL 인증서를 사용하여 HTTPS로 제공.
- MIME 타입: application/json 또는 application/pkcs7-mime으로 제공.
Apache 설정 예시
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/.well-known/apple-app-site-association$
RewriteRule .* - [L]
</IfModule>
NGINX 설정 예시
location /.well-known/apple-app-site-association {
root /var/www/html;
default_type application/json;
}
4. 테스트 및 검증
1) 링크 테스트
- Safari에서 도메인 링크를 클릭해 앱이 열리는지 확인합니다.
- 앱이 열리지 않을 경우, 디바이스의 Settings > Developer > Universal Links에서 설정 확인.
2) apple-app-site-association 파일 검증
- 파일이 제대로 제공되는지 확인:
추가 팁
- 딥링크 분석: 유니버설 링크에서 받은 데이터를 Firebase Dynamic Links, AppsFlyer 등과 연동하여 분석.
- 웹사이트 fallback: 앱이 설치되지 않았을 때 사용자 경험을 위해 웹사이트에서 적절한 페이지를 제공.
- 다중 앱 지원: 여러 앱에서 동일한 도메인을 사용하는 경우, apple-app-site-association 파일에 각 앱의 정보를 추가.
반응형
'iOS' 카테고리의 다른 글
[RxSwift] zip, combineLate (1) | 2025.01.09 |
---|---|
[RxSwift] Button rx.tap (2) | 2025.01.09 |
구글로그인 해제 (0) | 2025.01.09 |
애플로그인 계정 연동해제 (0) | 2025.01.09 |
radix : 진수변환 (0) | 2024.08.09 |