스토어에 있는 앱을 앱박스로 옮기기
웹사이트를 웹뷰로 띄우는 앱을 이미 App Store · Google Play 에서 운영 중이라면, 빌드 1단계에서 앱을 스토어에서 운영중입니다. 를 고르고 아래 순서로 확인하세요.
새 앱이 아니라 기존 앱의 업데이트로 올라가야 합니다.
확인 순서
- 시작 전 확인 : 빌드를 누르기 전에 Apple 권한 · 번들 ID · 버전을 맞춥니다.
- 기능별 지원 : 기존 앱이 하던 기능이 앱박스 앱에서 어떻게 되는지 확인합니다.
- 빌드 뒤 확인 : 스토어 공개 전에 테스트 빌드로 확인합니다.
시작 전 확인
기존 iOS 앱이 iPad 를 지원하면 빌드 전에 앱박스에 iPad 지원 설정을 요청하세요. App Store Connect › 앱 › 빌드에서 기기 군에 iPad 가 있는지 확인하고, 있으면 콘솔 고객지원 › 문의하기로 요청해 주세요. 설정 없이 빌드하면 Apple 은 업데이트에서 지원 기기를 줄일 수 없어 TestFlight 업로드가 거절됩니다. iPad 지원 앱은 심사 제출 때 13인치 iPad 스크린샷이 필요합니다.
| 작업 | 필요한 권한 |
|---|---|
| App ID · App Group 등록, 기존 App ID 에 기능(App Groups · 푸시) 켜기 | 계정 소유자 또는 관리자 |
| 푸시용 APNs 키(.p8) 만들기 | 계정 소유자 또는 관리자 |
| App Store Connect API 키(Key ID · .p8) 만들기 | 계정 소유자 또는 관리자 |
| App Store Connect API 액세스 요청(팀에서 처음 한 번) | 계정 소유자만 |
- 팀에서 API 키를 처음 만들 때는 계정 소유자가 먼저 [사용자 및 액세스 › 통합]에서 액세스를 요청해야 합니다. Apple 이 검토한 뒤 승인하니 미리 해 두세요.
- 권한이 없다면 다음 중 하나로 진행하세요.
① 계정 소유자·관리자에게 내 역할을 「관리자」로 바꿔 달라고 요청합니다.
② 해당 단계만 계정 소유자·관리자에게 부탁하고, 결과(Issuer ID · Key ID · .p8 파일)를 안전한 방법으로 전달받습니다. .p8 파일은 다시 내려받을 수 없습니다.
③ 앱박스 등록 대행을 이용합니다(애플 개발자 권한 초대). 초대도 계정 소유자·관리자가 해야 합니다.
- iOS 번들 ID는 App Store Connect 에 등록된 기존 앱의 번들 ID 와 한 글자도 다르지 않아야 합니다. 다르면 기존 앱과 연결되지 않아 새 앱으로 등록됩니다.
- Android 패키지 이름도 Google Play 에 올라간 기존 앱과 같아야 합니다.
- 「iOS 앱 빌드」 6단계의 번들 ID 칸은 이전에 앱박스로 빌드한 적이 없을 때만 고칠 수 있습니다. 첫 빌드 전에 꼭 확인하세요.
- 콘솔 「FCM 설정」에서 고른 iOS 앱의 번들 ID 가 6단계 번들 ID 칸에 먼저 채워집니다. 고치지 않으면 그 값으로 빌드됩니다.
- Firebase 프로젝트에 iOS 앱이 여러 개면 목록의 첫 번째 앱이 자동으로 선택됩니다. 스토어 앱과 같은 번들 ID 의 앱을 골랐는지 확인하세요.
- Firebase 를 새로 만든다면 iOS 앱을 등록할 때 스토어 앱의 번들 ID 를 그대로 넣으세요.
- 첫 빌드는 3단계에서 「수동 생성」을 고르세요. 「자동 생성」을 고르면 버전 1.0.1 · 빌드 번호 1 로 들어가 스토어 앱보다 작아집니다.
- 앱 버전은 스토어에 올라간 버전보다 크게 넣습니다. 예: 스토어 4.3.7 → 4.3.8
- 빌드 번호는 정수만 넣을 수 있습니다. 기존 앱의 빌드 번호가 4.3.7 처럼 점 표기라면 앞자리보다 큰 정수를 넣으세요.
예: 5 를 넣으면 Apple 은 5.0.0 으로 봐서 4.3.7 보다 큽니다. 4 는 4.0.0 이라 작아서 안 됩니다. - Android 버전 코드도 Google Play 에 올라간 값보다 큰 정수를 넣습니다.
- 앱박스로 한 번 빌드한 뒤로는 콘솔이 빌드 번호를 6, 7 … 처럼 하나씩 올려 줍니다.
기능별 지원
- 앱박스 앱에서 : 웹의 파일 선택(<input type="file">)이 그대로 동작합니다.
- 할 일 : 없음. 카메라 권한 문구는 아래 「설정 필요 › 권한 사용 문구(iOS)」를 확인하세요.
- 앱박스 앱에서 : 「알림」 제목의 대화상자로 뜹니다. iOS 는 다른 화면이 이미 떠 있으면 표시하지 않고 넘어갑니다.
- 할 일 : 알림창을 연달아 띄우는 페이지는 빌드 뒤 한 번 확인하세요.
- 앱박스 앱에서 : 「확인 / 취소」 대화상자로 뜹니다.
- 할 일 : 없음.
- 앱박스 앱에서 : 웹뷰 데이터를 기기에 계속 저장하는 기본 방식을 씁니다. 기존 앱도 같은 방식이었다면 업데이트 뒤에도 로그인이 유지될 것으로 봅니다(실기기 확인 전).
- 할 일 : 스토어 공개 전에 TestFlight · 내부 테스트로 확인하세요 — 빌드 뒤 확인.
- 앱박스 앱에서 : iOS 앱은 기존 사이트와 호환되도록 http 연결을 막지 않습니다.
- 할 일 : 없음. 다만 사이트는 https 로 운영하세요.
- 앱박스 앱에서 : 「웹 사이트(도메인)」에 경로까지 넣을 수 있고, 앱이 그 주소로 시작합니다. 하단 메뉴 「홈」도 이 주소를 엽니다. 저장할 때 주소 끝의 / 는 지워집니다.
- 할 일 : 도메인 주소가 첫 화면으로 이동시켜 준다면 도메인만 넣으세요. 경로를 넣는다면 끝 / 를 뺀 주소(예: www.example.com/user)가 브라우저에서 https 로 열리는지 먼저 확인하세요.
- 앱박스 앱에서 : 기본은 세로 고정입니다(iPad 는 세로 · 거꾸로 세로). 4단계 「가로모드 지원」을 켜면 가로 회전도 됩니다.
- 할 일 : 기존 앱이 가로 회전을 썼다면 4단계 「가로모드 지원」을 켜세요.
- 앱박스 앱에서 : 5단계 「OS 권한 사용 문구 설정」에서 카메라 · 위치 문구를 바꿀 수 있습니다(각 70자 이내). 끄면 기본 문구가 들어갑니다 — 카메라 기본 문구는 「QR 코드 · 바코드 스캔」 용도입니다. 광고 추적(ATT) 문구는 고정이라 바꿀 수 없습니다.
- 할 일 : 토글을 켜고 기존 앱의 문구를 옮겨 넣으세요. 실제 용도와 문구가 다르면 심사에서 지적받을 수 있습니다. 마이크는 아래 「지원 안 됨과 주의」를 보세요.
- 앱박스 앱에서 : 웹에서 kakaonavi:// 처럼 http(s) 가 아닌 주소를 열면 해당 앱을 실행합니다.
- 할 일 : 기존 앱에서 쓰던 외부 앱 스킴을 5단계 「외부 앱 스킴 설정」에 등록하세요(최대 20개). 등록하지 않아도 실행되는지는 실기기 확인 전입니다.
- 앱박스 앱에서 : 기본은 꺼짐입니다. iOS 는 켜면 최대 3배까지 확대됩니다. 바꾼 값은 저장돼 앱을 다시 실행해도 유지됩니다.
- 할 일 : 확대가 필요하면 웹에서 AppboxSDK.ui.setZoomEnabled({ enabled: true }) 를 호출하세요 — SDK 가이드 › 핀치 줌.
- 앱박스 앱에서 : 기존 앱이 직접 그리던 하단 버튼은 자동으로 생기지 않습니다.
- 할 일 : 웹에서 앱박스 브라우저 메뉴(AppboxSDK.gmenu.openBrowserMenu)를 호출하세요 — SDK 가이드 › 브라우저 메뉴.
- 앱박스 앱에서 : 새 전체화면 화면으로 열립니다. width · height 같은 창 크기 옵션은 반영되지 않습니다. 새 창 안에서 window.close() 를 부르면 닫히고 원래 화면으로 돌아갑니다.
- 할 일 : 바로 아래 「새 창의 닫기 버튼」을 같이 보세요.
- 앱박스 앱에서 : iOS 는 새 창에 닫기 버튼이 없습니다. 페이지가 window.close() 를 부르지 않으면 화면 왼쪽 끝을 밀어서 뒤로 가는 방법만 남습니다(실기기 확인 전). Android 는 기기 뒤로가기 버튼으로 새 창 안 이전 페이지 → 새 창 닫기 순서로 돌아갑니다.
- 할 일 : 새 창으로 여는 페이지에 「닫기」 버튼을 두고 window.close() 를 호출하세요. 또는 새 창 대신 같은 창에서 이동(location.href)하도록 바꾸세요.
- 앱박스 앱에서 : 실기기 확인 전입니다.
- 할 일 : 인쇄(보고서 출력 등)를 쓰는 사이트는 빌드 뒤 꼭 확인하세요.
- 앱박스 앱에서 : iOS 는 「확인」 버튼만 있고 취소할 수 없습니다. 기본값은 입력값이 아니라 흐린 안내 글자로 보이고, 비워 두고 확인하면 기본값이 돌아갑니다. Android 는 시스템 기본 동작입니다.
- 할 일 : 취소가 필요한 입력은 페이지 안의 입력 화면으로 바꾸세요.
- 앱박스 앱에서 : iOS 앱에 마이크 권한 문구가 들어가지 않습니다. 콘솔에도 마이크 문구 칸이 없습니다. iOS 는 문구 없이 권한을 요청하면 그 순간 앱이 종료됩니다.
- 할 일 : 사이트가 녹음이나 소리 있는 동영상 촬영을 쓴다면, 빌드 전에 고객지원에 먼저 문의하세요.
빌드 뒤 확인
- 스토어 앱으로 로그인합니다. 「자동 로그인」이 있으면 켭니다.
- 같은 기기에 TestFlight(Android 는 내부 테스트) 빌드를 설치하고 실행합니다.
- 로그인이 유지되는지 봅니다.
- 앱을 완전히 종료한 뒤 다시 실행해 한 번 더 봅니다.
- 새 창(window.open)으로 여는 화면을 열고, 닫고 원래 화면으로 돌아올 수 있는지 봅니다.
- 인쇄 · 외부 앱 실행 · 파일 첨부 · 알림창을 쓰는 화면을 한 번씩 눌러 봅니다.