링크로 앱 열기
앱이 설치되어 있으면 휴대폰은 링크를 브라우저 대신 앱에서 바로 열 수 있습니다. iOS에서는 Universal Links, Android에서는 App Links라고 부릅니다. 둘 다 같은 방식입니다. 휴대폰이 링크 호스트에서 앱 목록이 담긴 작은 파일을 가져오고, 앱은 그 호스트를 처리한다고 선언합니다. Mocco가 프로젝트의 두 호스트에서 이 파일을 대신 제공합니다. Mocco에 정보 몇 가지를 입력하고 앱에 몇 줄을 추가하면 됩니다.
앱이 설치되지 않은 사람은 지금처럼 링크가 보내는 곳, 즉 스토어 페이지나 지정한 웹 페이지로 이동합니다(딥링크 개요 참고).
1. Mocco에 앱 정보 입력하기
딥링크 → 설정(Settings)에서 프로젝트의 iOS·Android 앱마다 카드가 있습니다. 소유자와 관리자만 바꿀 수 있습니다.
iOS: Apple Team ID를 입력합니다. developer.apple.com/account의 Membership details에 있는 영문자·숫자 10자리입니다. 번들 ID는 프로젝트 앱(Apps)에서 가져옵니다.
Android: 서명 인증서 SHA-256 지문을 한 줄에 하나씩 입력합니다. 패키지 이름은 프로젝트 앱(Apps)의 애플리케이션 ID를 씁니다.
카드마다 저장합니다. 저장하면 호스트의 파일이 바로 바뀝니다.
Android 지문 찾기
Google Play가 앱에 서명한다면(Play 앱 서명, 새 앱의 기본값) 업로드 키가 아니라 Google의 앱 서명 키 지문을 씁니다. Play Console에서 앱을 열고 테스트 및 출시 → 앱 무결성 → Play 앱 서명으로 가서 앱 서명 키 인증서 아래의 SHA-256 인증서 지문을 복사합니다. 내부 테스트 빌드처럼 직접 서명한 빌드도 설치한다면 업로드 키의 지문도 추가합니다.
2. 앱에 줄 추가하기
링크로 앱 열기(Open the app from links) 아래에 두 호스트용 줄이 복사할 수 있게 나와 있습니다.
iOS: Associated Domains entitlement입니다(호스트마다
applinks:<호스트>). Xcode의 Signing & Capabilities → Associated Domains에 추가합니다. Expo를 쓴다면 Expo app.json (iOS) 내용을ios.associatedDomains에 복사합니다.Android:
android:autoVerify="true"와 두 호스트가 들어간 AndroidManifest.xml intent filter입니다. Expo를 쓴다면 Expo app.json (Android) 내용을android.intentFilters에 복사합니다.
그다음 앱을 다시 빌드해 설치합니다. 휴대폰은 앱을 설치할 때 이 줄을 읽습니다.
3. 파일 확인하기
지금 확인(Check now)을 누릅니다. Mocco가 Apple과 Google이 가져가는 방식 그대로 각 호스트에서 두 파일을 가져와 문제가 있으면 알려 줍니다. 응답하지 않는 호스트, 리디렉션, 잘못된 콘텐츠 유형, 앱이나 지문이 빠진 파일 같은 문제입니다. 1분에 10번까지 확인할 수 있습니다.
파일 내용 보기(Show the files)를 누르면 각 호스트가 제공하는 내용을 그대로 볼 수 있습니다. 파일 주소도 복사할 수 있습니다.
4. 휴대폰에서 테스트하기
iOS: Apple은 자체 캐시를 거쳐 파일을 가져가므로 바뀐 내용을 보기까지 하루쯤 걸릴 수 있습니다. Apple의 사본이 늦으면 지금 확인이 알려 줍니다. 더 빨리 테스트하려면 개발 빌드의 entitlement에
?mode=developer를 붙이고(applinks:<호스트>?mode=developer) 기기의 설정 → 개발자 → Associated Domains Development를 켭니다. 그다음 메모나 메시지 앱에서 링크를 엽니다. Safari 주소창에 직접 입력한 링크는 Safari에서 열립니다.Android: 앱을 설치한 뒤
adb shell pm get-app-links <패키지 이름>을 실행해 두 호스트가verified인지 확인합니다. 메시지 같은 다른 앱에서 링크를 엽니다.
브라우저에 남는 페이지
호스트에 있는 Mocco 자체 페이지(예: 이 링크 신고하기 양식)는 두 플랫폼 모두 항상 브라우저에서 열립니다.