1. 다운로드
APK는 GitHub Actions 빌드가 완료되면 게시됩니다. 링크가 동작하지 않으면 잠시 후 다시 시도하세요. 홈페이지의 APK 다운로드 버튼에서도 동일하게 내려받을 수 있습니다.
2. 폰 설치 (Android)
- APK 내려받기 — 위
soccergps-phone.apk를 폰 브라우저(Chrome 등)에서 다운로드합니다. 현재 버전은 1.1.2입니다. 기존 앱이 있으면 덮어쓰기 설치됩니다. - 설치 허용 — 처음 설치 시 "출처를 알 수 없는 앱 설치"를 허용해야 합니다. 설정 → 앱 → 특정 앱(브라우저) → "이 출처 허용"을 켭니다.
- 설치 실행 — 다운로드한 APK를 탭해 설치합니다.
- 로그인 — 앱을 열고 홈페이지에서 만든 계정으로 로그인합니다. (홈페이지 회원가입 계정과 동일)
- 위치 권한 허용 — 경기 기록을 위해 위치 권한(정확한 위치)과 알림 권한을 허용합니다.
3. 워치 블루투스 연동 (먼저 하세요)
워치 앱 설치 전에 폰과 워치가 블루투스로 페어링되어 있어야 합니다. 이 연결이 폰↔워치 데이터 동기화(자동 로그인, 경기 연동, 트랙 전송) 통로가 됩니다.
- Galaxy Wearable 설치 — 폰 Play 스토어에서 Galaxy Wearable(갤럭시 워치) 앱을 설치합니다. 그 외 Wear OS 워치는 Wear OS by Google 앱을 사용합니다.
- 블루투스 켜기 — 폰과 워치 모두 블루투스를 켭니다.
- 페어링 — Galaxy Wearable 앱을 열고 목록에서 내 워치를 선택해 화면 안내대로 연결합니다. 워치에 표시되는 숫자를 폰에서 확인해 승인합니다.
- 연결 확인 — Galaxy Wearable 상단에 연결됨으로 표시되면 완료입니다.
- 같은 Wi-Fi 권장 — 이후 APK 설치(무선 디버깅)를 위해 폰·워치·PC를 같은 Wi-Fi에 연결해 두세요.
SoccerGPS는 블루투스로 연결된 구간에서 Wearable Data Layer를 사용합니다. 이 통로로 ① 폰 로그인 토큰이 워치로 전달되어 워치에서 재로그인이 필요 없고, ② 폰이 시작한 경기 정보가 워치로 전달되어 하나의 경기로 함께 기록되며, ③ 워치가 수집한 좌표가 폰으로 전송됩니다.
4. 갤럭시 워치 앱 설치 (Wear OS)
갤럭시 워치4 이상(Wear OS 3+)에 설치합니다. 워치는 Play 스토어 사이드로드가 제한되므로 개발용 ADB 무선 디버깅으로 설치합니다.
- 워치 개발자 옵션 켜기 — 워치 설정 → 정보 → 소프트웨어 → 빌드 번호를 7번 연속 탭하여 개발자 모드를 활성화합니다.
- ADB / 무선 디버깅 켜기 — 워치 설정 → 개발자 옵션에서 ADB 디버깅과 무선 디버깅을 켭니다.
- 연결 정보 확인 — 워치의 무선 디버깅 화면에 표시되는
IP 주소:포트를 확인합니다. - PC에서 연결 — 워치에 표시된 주소로 연결합니다. 워치에 승인 팝업이 뜨면 허용합니다.
adb connect <워치_IP>:<포트> - APK 설치 — 내려받은 워치 APK를 설치합니다.
adb -s <워치_IP>:<포트> install soccergps-wear.apk - 실행 & 권한 — 워치 앱 목록에서 SoccerGPS를 실행하고 위치 권한을 허용합니다.
폰과 워치의 applicationId가 동일(me.soccergps.app)해 컴패니언 앱으로 인식됩니다. 폰 앱에서 로그인만 해두면 토큰이 블루투스로 워치에 전달되어 워치에서 따로 로그인할 필요가 없습니다. 폰에서 로그아웃하면 워치 토큰도 함께 정리됩니다.
5. 폰 · 워치 동시 사용 (워치 좌표 우선)
폰과 워치를 함께 켜고 뛰면 워치 GPS 좌표가 우선 사용됩니다. 손목에서 측정한 값이 방향 전환과 스프린트를 더 정확히 잡아내기 때문입니다.
- 폰에서 경기 시작 — 폰 앱에서 경기를 시작하면 해당 경기 정보가 워치로 전달됩니다.
- 워치에서 시작 — 워치 앱에서 시작을 누르면 "폰 경기에 연동됨 — 워치 좌표 우선"이 표시되며, 새 경기를 만들지 않고 같은 경기로 기록합니다.
- 종료 — 어느 쪽에서 종료해도 폰이 워치 데이터를 받아 하나의 경기로 병합해 업로드합니다.
- 결과 확인 — 결과 화면과 홈페이지 지도 하단에
출처: 워치 N · 폰 M이 표시되어 실제로 워치 좌표가 사용됐는지 확인할 수 있습니다.
워치 배터리가 소진되거나 블루투스가 끊긴 구간은 폰 좌표로 자동 보완되어 경기 기록이 중간에 비지 않습니다. 워치만 사용하고 폰이 없으면 워치가 서버로 직접 업로드합니다.
6. 문제 해결
| 증상 | 해결 |
|---|---|
| APK 링크가 "준비중"으로 표시됨 | 빌드가 아직 게시 전입니다. GitHub Actions(Android Build) 완료 후 다시 시도하세요. |
| "앱이 설치되지 않음" 오류 | 기존에 다른 서명의 앱이 설치돼 있으면 제거 후 재설치하세요. |
| 워치에서 GPS가 안 잡힘 | 워치 위치 권한을 허용하고, 실외에서 잠시 대기해 GPS를 확보하세요. |
| 로그인 실패 | 홈페이지에서 회원가입·이메일 인증을 먼저 완료했는지 확인하세요. |
| 워치가 자동 로그인되지 않음 | 블루투스 연결(2단계)을 확인하고, 폰 앱에서 로그아웃 후 다시 로그인하세요. 로그인 시점에 토큰이 워치로 전송됩니다. |
| 워치에서 "폰 앱에서 먼저 로그인" 안내가 나옴 | 아직 토큰이 도착하지 않은 상태입니다. 폰·워치 블루투스 연결을 확인한 뒤 폰에서 로그인하세요. |
| 결과에 워치 좌표가 반영되지 않음 | 워치를 폰보다 먼저 종료했거나 전송이 지연된 경우입니다. 폰은 종료 시 최대 4초간 워치 데이터를 기다립니다. 블루투스 연결을 유지한 상태로 종료하세요. |
| 지도가 비어 있거나 인증 오류가 표시됨 | 네이버 지도 Client ID 문제입니다. 401은 패키지명 불일치, 429는 사용량 초과 또는 Maps 서비스 미선택입니다. |