테스트 앱 사용 가이드
업무앱 샘플과 독립 지원 앱을 설치하고, 사용자가 승인한 원격지원을 시작·검증·종료합니다.
1. 두 앱의 차이
| 앱 / 파일 | 용도 |
|---|---|
| JCI Store · Support sample / jci-sample-debug.apk | 기존 업무 화면에 SDK를 붙인 예제. 상품 코드·수량·조회 버튼으로 터치와 텍스트를 시험합니다. 실제 재고를 변경하지 않습니다. |
| Streamzet Support / streamzet-support-debug.apk | 지원 시작·종료에 집중한 독립 앱. 다른 앱으로 이동해 화면 공유 동작을 확인할 수 있습니다. |
두 앱은 applicationId와 등록 정보를 따로 보관하므로 기기 코드도 서로 다릅니다. 한 번에 하나의 앱에서 공유하고, 다른 앱을 시험하기 전에 현재 지원을 종료하세요.


2. 설치하고 처음 실행하기
- 전달받은 ZIP의 SHA-256과 내부 SHA256SUMS를 확인합니다. Android 8 이상 테스트 기기, 인터넷, 운영자 대시보드 계정을 준비합니다.
- 파일 앱 또는 adb로 두 APK를 설치합니다. 이 APK는 개발용 debug 서명이며 앱스토어 배포용 호스트 앱이 아닙니다. 기존 앱과 서명이 다르면 업데이트할 수 없으므로 관리자에게 맞는 빌드를 받습니다.
- 연결 설정이 없다는 오류가 나오면 APK 제공자에게 해당 테스트 환경용 빌드를 요청합니다. 앱에는 URL·키를 입력하는 설정 화면이 없습니다. 소스 빌드 방법은 아래에 있습니다.
sh
adb devices
adb install -r jci-sample-debug.apk
adb install -r streamzet-support-debug.apk
adb shell am start -n com.streamzet.sample.jci/com.streamzet.sample.MainActivity
# Standalone app:
adb shell am start -n com.streamzet.support/com.streamzet.app.MainActivity3. 지원 시작과 권한 선택
- 앱에서 원격지원 시작 / Start support를 누릅니다. 첫 실행은 등록 후 기기 코드를 표시합니다. 안내에서 운영자가 볼 수 있는 범위를 읽고 계속합니다.
- 원격 터치·문자 입력이 필요하면 OPEN SETTINGS를 누릅니다. 업무앱은 JCI Store remote support, 독립 앱은 Streamzet Support remote input 항목을 켜고 Android 확인 창에서 허용한 뒤 앱으로 돌아옵니다.
- 화면만 보여주려면 SHARE SCREEN ONLY를 선택합니다. 접근성을 켜지 않아도 화면을 공유할 수 있습니다. 알림 요청 거부는 화면 공유 거부와 다릅니다.
- Android 화면공유 창에서 범위를 확인하고 Share screen을 선택합니다. Android 버전에 따라 단일 앱/전체 화면 선택과 문구가 다릅니다. Cancel이면 공유가 시작되지 않으며 다시 시도할 수 있습니다.




4. 운영자 연결과 왕복 확인
- 앱에 표시된 8자리 코드를 승인된 운영자에게 전달합니다. 코드를 공개 게시하거나 스크린샷·로그에 포함해 외부 배포하지 않습니다. 코드 표시만으로 공유가 켜진 것은 아닙니다.
- 운영자는 대시보드의 Devices → Pair Device에서 해당 앱의 코드를 입력합니다. 테넌트 자동 등록을 사용했다면 관리자 안내에 따라 이미 배정된 기기를 선택합니다.
- 앱의 운영자 대기 상태를 확인하고 대시보드에서 원격지원을 시작합니다. 영상이 움직이는지, 연결 상태와 원격 입력 가능 표시가 맞는지 확인합니다.
- 업무앱의 상품 입력란을 원격으로 눌러 SDK-TEST-123을 입력하고 수량을 바꾼 뒤 Check product를 누릅니다. 독립 앱은 승인한 테스트 앱으로 이동해 터치·뒤로·홈·문자 입력을 확인합니다. 비밀번호·개인정보는 테스트에 사용하지 않습니다.
- 화면만 공유 세션에서는 입력이 차단되어야 합니다. 업무 화면 회전·다른 화면 이동 후 영상이 계속되는지 확인합니다. 업무앱의 상품 조회 결과는 고정된 데모이며 바코드 장비·재고 시스템 검증을 대신하지 않습니다.
5. 종료·재시작·업데이트
앱의 Stop support, 대시보드의 End support, Android 공유 중지 중 하나로 종료합니다. 영상·입력이 중단되고 새 시작 버튼이 나타나는지 확인하세요. 새 세션은 다시 화면공유 승인이 필요합니다. 업무 화면을 닫거나 앱을 백그라운드로 보내는 것만으로 종료되지 않습니다.
동일 서명 업데이트와 앱 재실행 후 기기 코드가 유지되는지 확인합니다. 두 APK의 코드를 서로 바꾸어 사용하지 마세요. 앱 제거나 데이터 삭제를 테스트할 때는 새 등록이 생길 수 있으므로 기존 페어링과 기록의 처리 방식을 관리자와 맞춥니다.
문제 해결
| 증상 | 확인과 조치 |
|---|---|
| 설정 오류 / 시작 불가 | 공개 연결 값이 들어 있는 APK인지 확인하거나 sdk-test.properties를 채워 재빌드합니다. |
| 등록 실패 | HTTPS 접속, 공개 anon JWT, 프로젝트 주소, 선택적 등록 키의 유효성을 확인합니다. service_role 키를 넣지 않습니다. |
| 운영자 대기 | 승인한 앱과 연결한 기기 코드가 같은지, 계정 페어링·WSS 접속·TURN 허용이 맞는지 확인합니다. |
| 영상은 보이지만 입력 불가 | 보기 전용인지 확인하고 해당 앱의 접근성 항목을 켠 뒤 복귀합니다. 보안 입력란·보호 화면·제조사 제한은 별도입니다. |
| Enter 검색이 동작하지 않음 | API 30 이상에서 지원하는 IME 동작만 호출합니다. Android 8~10이나 커스텀 입력란에서는 화면의 검색 버튼을 탭합니다. |
| 서명 불일치 / 설치 실패 | 데이터 보존이 필요하면 앱을 삭제하지 말고 기존 서명으로 빌드된 APK를 받습니다. |
소스에서 테스트 앱 만들기
sh
# Inside the delivered ZIP's source directory:
cp sdk-test.example.properties sdk-test.properties
# Set supabase.url, supabase.publicKey and signaling.url.
# Keep sdk.registrationKey empty for redistributable test APKs.
./gradlew :sample:assembleDebug :app:assembleDebug
# Both apps use the ZIP's Maven SDK by default.
# Outputs:
# sample/build/outputs/apk/debug/sample-debug.apk
# app/build/outputs/apk/debug/app-debug.apk