Ride Explorer 개인정보 처리방침 / Privacy Policy
최종 수정: 2026-10-18
한국어
Ride Explorer 는 Hyena 구동계를 쓰는 전기자전거에 Bluetooth 로 연결해 주행 상태를 보여주고 설정을 관리하는 앱입니다.
- 로그인, 비밀번호, 자체 서버, 광고가 없습니다. 광고 식별자(IDFA)를 쓰지 않으며 사용자를 추적하지 않습니다.
- 속도 제한 변경 승인을 요청할 때만 iCloud 사용자 식별자(이 앱 전용 가명 ID, 이름이나 이메일이 아님)와 사용자가 적은 닉네임이 Apple iCloud(CloudKit) 공개 데이터베이스에 저장되어 관리자가 승인에 사용합니다. 요청하지 않으면 아무것도 저장되지 않으며, 앱의 "요청 철회" 버튼으로 언제든 그 기록을 삭제할 수 있습니다.
- 호환성 리포트는 사용자가 보낼 때만 전송됩니다. 앱이 아직 확인하지 못한 자전거에서 "리포트 보내기"를 누르면 보낼 내용을 먼저 보여 주고, 사용자가 "보내기"를 눌러야 Apple iCloud(CloudKit) 공개 데이터베이스에 저장됩니다. 자동으로 보내지 않습니다. 담기는 것: 자전거가 알리는 이름, 기기 정보(제조사, 모델, 일련번호, 하드웨어·펌웨어 버전), 컨트롤러·디스플레이의 부품번호와 펌웨어, 자전거에서 읽은 설정값, 최근 5분의 상태 요약(전압·배터리 범위, 어시스트 단계, 고장 코드), 호환성 판정, 앱·iOS 버전과 기기 모델, 최근 앱 로그. 위치, 주행 기록, 속도· 거리(로그에서도 뺍니다), 다른 사람의 기기 이름, 닉네임은 담지 않습니다. CloudKit 은 리포트에 보낸 사람의 iCloud 사용자 식별자(이 앱 전용 가명 ID)를 자동으로 붙입니다. 이름이나 이메일은 아니지만, 속도 제한 승인을 요청한 적이 있다면 관리자는 같은 식별자로 그 요청(닉네임)과 리포트를 연결할 수 있습니다. 리포트는 관리자만 볼 수 있고, 다른 사용자는 볼 수 없습니다. 설정 탭의 "내 호환성 리포트"에서 언제든 지울 수 있으며, 관리자가 처리한 리포트는 정리하며, 어떤 리포트도 1년을 넘겨 보관하지 않습니다. iCloud 에 로그인하지 않았다면 같은 파일을 사용자가 직접 공유할 수 있을 뿐 아무것도 전송되지 않습니다.
- 모델 정의(자전거 설정 위치 데이터)를 받을 때 앱은 연결한 자전거의 컨트롤러·디스플레이 부품번호로 Apple iCloud(CloudKit) 공개 데이터베이스를 조회합니다. 읽기만 하며 사용자 정보는 보내지 않습니다.
- "모델 정의 확인"을 누를 때만 그 확인 결과(통과·실패, 모델 정의 ID·버전, 자전거에서 읽은 설정값을 해석한 결과, 식별 키 해시, 앱 빌드 번호)가 Apple iCloud(CloudKit) 공개 데이터베이스에 저장됩니다. 자전거 이름, 일련번호, 위치, 주행 기록, 닉네임은 담지 않습니다. CloudKit 이 보낸 사람의 iCloud 사용자 식별자(이 앱 전용 가명 ID)를 자동으로 붙이며, 결과는 관리자만 볼 수 있고 1년을 넘겨 보관하지 않습니다. 설정 탭의 "내 모델 정의 확인 결과"에서 언제든 지울 수 있습니다.
- 앱에는 개발자 본인의 자전거를 진단하는 실시간 진단 기능이 있지만, 개발자(관리자) 계정에서만 보이고 켜집니다. 일반 사용자에게는 나타나지 않으며, 일반 사용자의 기기에서는 이 기능으로 아무것도 전송되지 않습니다.
- 자전거에서 읽은 데이터(속도, 배터리, 설정값)와 주행 기록은 사용자 기기 안에만 저장됩니다. 주행 기록 파일은 파일 앱의 "Ride Explorer/Rides" 폴더에 있으며, 사용자가 직접 지우거나 공유하지 않는 한 어디로도 전송되지 않습니다.
- Bluetooth 권한은 자전거와 통신하기 위해서만 사용합니다. 위치 정보는 사용하지 않습니다.
- Apple Watch 앱은 같은 데이터를 iPhone 과 Watch 사이에서만 주고받습니다.
- 인앱 구입(Ride Explorer Pro)의 결제는 Apple 이 처리합니다. 앱은 결제 정보나 구입 기록을 따로 저장하거나 전송하지 않으며, Pro 여부는 기기의 App Store 가 알려 주는 구입 내역으로만 확인합니다.
- 사용 통계와 오류 보고서 (Google Firebase): 앱을 개선하기 위해 Google 의 Firebase Crashlytics, Firebase Analytics, Firebase Performance Monitoring 으로 다음을 보냅니다. - 앱이 비정상 종료되었을 때의 오류 보고서(스택 트레이스, 기기 모델, iOS 버전, 앱 버전, 메모리·저장 공간 상태, 자전거 연결 여부, 일부 설정 쓰기 실패 기록) - 연결·설정 읽기·설정 쓰기·주행 저장 실패 보고와, 오류 보고서에 함께 붙는 최근 앱 동작 기록. 동작 기록에는 일어난 일의 이름(연결·끊김, 설정 읽기·쓰기와 그 설정값, 구입·복원, 알림·리마인더, 주행 기록 시작·저장 같은 사건)과 연결 단계, 신호 세기, 오류 코드가 들어가며, 배터리 잔량, 속도, 누적 거리, 주행 수치, 알림 시각, 가격, 위치는 들어가지 않습니다. 문제를 찾기 위해 Hyena 구동계 자전거에 연결했을 때는 그 자전거가 알리는 이름과 기기 정보(제조사, 모델, 일련번호, 하드웨어·펌웨어 버전) 가 포함됩니다. 다른 기기의 이름이나 정보는 보내지 않습니다 - 호환성 확인 결과: 연결한 자전거가 앱이 아는 모델로 확인되지 않으면 연결마다 한 번, 판정 상태와 이유, 컨트롤러·디스플레이의 부품번호·펌웨어·하드웨어 버전으로 만든 식별 키와 그 해시, 어시스트 단계 수, 스로틀 여부, 배터리 전압 등급을 보냅니다. 호환성 리포트 전송이 실패했을 때는 실패 단계, 대기열 보관 여부, 식별 키 해시, 파일 크기, 오류 코드를 보냅니다. 모델 정의를 쓰지 않고 거부했을 때는 그 모델 정의의 ID·버전, 단계, 이유(쓰기 거부면 주소와 쓰기 종류)를 보냅니다 - 몇 가지 익명 사용 이벤트: 자전거 연결, 주행 저장(거리 구간만, 예 "5–10 km"), Pro 구입, 속도 프로필 적용(값은 제외), 기능 사용(정비 완료, 알림 켜기, 달력 사용, CSV 내보내기, 진단 실험 켜기·끄기, Pro 안내 화면 열기), 그리고 Firebase 가 자동으로 모으는 앱 실행·화면 사용 시간 같은 기본 이벤트. 이와 함께 Pro 여부, 속도 제한 승인 상태(승인·대기·없음), 자전거 모델명, 앱 버전 같은 구분 값을 보냅니다 - 앱 성능 정보: 앱 시작·화면 표시에 걸린 시간, 자전거 연결·설정 읽기·주행 저장에 걸린 시간과 성공 여부, 앱이 직접 보내는 네트워크 요청(App Store·Firebase)의 통신 시간. iCloud 통신은 시스템이 따로 처리해 측정되지 않습니다 - 기기에 무작위로 만들어지는 Firebase 앱 인스턴스 ID 주행 기록 내용, 위치, iCloud 식별자, 닉네임, 이름·이메일 같은 개인 정보는 보내지 않으며, 보낸 데이터를 사용자 신원과 연결하지 않습니다. Firebase 기본 보존 기간에 따라 Crashlytics 오류 보고서는 90일, Analytics 의 사용자·이벤트 단위 데이터는 2개월 보관된 뒤 삭제됩니다(집계된 통계만 남습니다). 설정 > 개인정보의 "사용 통계 및 오류 보고서 보내기" 를 끄면 즉시 수집이 멈추고, 아직 보내지 않은 오류 보고서와 기기에 쌓인 분석 데이터도 지웁니다.
- 원격 설정 (Firebase Remote Config): 연결·설정 읽기 방식 같은 진단용 설정값을 받아 옵니다. 받을 때 Firebase 설치 ID(기기에 무작위로 만들어지는 값), 앱 버전과 빌드 번호, iOS 버전, 기기 언어·국가, 시간대를 보내고, 위 스위치가 켜져 있으면 Analytics 구분 값(Pro 여부, 승인 상태, 자전거 모델명, 앱 버전)도 함께 보냅니다. 설정값 받기는 스위치와 관계없이 이루어지므로, 스위치를 꺼도 Firebase 설치 ID 는 만들어져 전송됩니다. 이름·이메일·위치·iCloud 식별자 같은 개인 정보는 보내지 않습니다.
- 푸시 알림: 설정 > 알림에서 "업데이트·공지 알림"을 켤 때만 알림 권한을 요청합니다. 켜면 Apple 푸시 알림 서비스 토큰과 Firebase Cloud Messaging 등록 토큰이 만들어져 Google Firebase 에 저장되며, 앱 업데이트·공지 알림을 보내는 데만 씁니다. 끄면 토큰을 더 이상 쓰지 않도록 등록을 해제합니다. 일반 사용자의 푸시 토큰은 iCloud(CloudKit)에 올리지 않습니다(개발자 본인 계정의 기기만 관리용 알림을 받으려고 토큰을 개발자 전용 CloudKit 레코드에 저장합니다).
- Google 의 데이터 처리에 관한 내용은 https://firebase.google.com/support/privacy 에서 볼 수 있습니다.
- 문의: ask@bianchi.co.kr
English
Ride Explorer connects over Bluetooth to e-bikes built on the Hyena drive system to show live ride data and manage bike settings.
- There is no sign-in, password, server of our own or advertising. The app does not use the advertising identifier (IDFA) and does not track you.
- Only when you request approval to change the speed limit, your iCloud user identifier (a pseudonymous, app-specific ID, not your name or email) and the nickname you enter are stored in Apple's iCloud (CloudKit) public database so the administrator can approve you. Nothing is stored unless you request, and the "Withdraw request" button in the app deletes that record at any time.
- A compatibility report is sent only when you send it. On a bike the app has not confirmed yet, "Send Report" first shows what would be sent, and only tapping "Send" stores it in Apple's iCloud (CloudKit) public database; nothing is sent automatically. It holds: the name the bike advertises, its device information (manufacturer, model, serial number, hardware and firmware versions), the controller's and display's part numbers and firmware, the settings read from the bike, a summary of the last five minutes of status (voltage and battery range, assist levels, fault codes), the compatibility decision, the app and iOS versions and the device model, and the recent app log. It holds no location, ride records, speed or distance (removed from the log too), other people's device names or nickname. CloudKit automatically attaches the sender's iCloud user identifier (a pseudonymous, app-specific ID). It is not your name or email, but if you ever requested speed-limit approval, the administrator can link your reports to that request (and its nickname) through the same identifier. Only the administrator can read reports; other users cannot. You can delete your reports at any time under "My Compatibility Reports" in the Settings tab; reports the administrator has handled are cleared, and none is kept for more than one year. Without an iCloud sign-in nothing is sent; you can only share the same file yourself.
- To receive model definitions (data on where a bike keeps its settings) the app looks up the connected bike's controller and display part numbers in Apple's iCloud (CloudKit) public database. This only reads; no information about you is sent.
- Only when you tap "Check model definition", the result (pass or fail, the model definition's ID and version, how the settings read from the bike decoded, the identity key hash and the app build number) is stored in Apple's iCloud (CloudKit) public database. It holds no bike name, serial number, location, ride records or nickname. CloudKit automatically attaches the sender's iCloud user identifier (a pseudonymous, app-specific ID); only the administrator can read results, and none is kept for more than one year. You can delete your results at any time under "My model definition checks" in the Settings tab.
- The app has a live diagnostics feature for diagnosing the developer's own bike. It appears and works only on the developer's (administrator's) account; it is not available to other users, and nothing is sent through it from their devices.
- Data read from the bike (speed, battery, settings) and recorded rides are stored only on your device. Ride files live in the Files app under "Ride Explorer/Rides" and are never transmitted unless you share them yourself.
- Bluetooth permission is used only to talk to the bike. Location is not used.
- The Apple Watch app exchanges the same data only between your iPhone and Watch.
- The in-app purchase (Ride Explorer Pro) is processed by Apple. The app stores and sends no payment or purchase data of its own; it only asks the App Store on your device whether Pro has been purchased.
- Usage statistics and crash reports (Google Firebase): to improve the app, it sends the following to Google's Firebase Crashlytics, Firebase Analytics and Firebase Performance Monitoring: - crash reports when the app quits unexpectedly (stack trace, device model, iOS version, app version, memory and storage state, whether a bike was connected, and a record of certain failed settings writes) - reports of failed connections, settings reads, settings writes and ride saves, and a log of recent app activity attached to error reports. The activity log holds the names of what happened (connecting and disconnecting, settings read or written and their values, purchases and restores, notifications and reminders, a ride starting or being saved), the connection stage, signal strength and error codes; it holds no battery level, speed, odometer, ride figures, notification times, prices or location. To help find problems, when the app is connected to a bike with the Hyena drive system these include the name that bike advertises and its device information (manufacturer, model, serial number, hardware and firmware versions). Other devices' names and information are never sent - compatibility checks: when a connected bike is not confirmed as a model the app knows, once per connection, the decision and its reason, an identity key built from the controller's and display's part numbers and firmware and hardware versions and its hash, the assist level count, whether it has a throttle and the battery voltage class. When sending a compatibility report fails: the failing step, whether it was kept for a retry, the identity key hash, the file size and the error code. When a model definition is refused: its ID and version, the stage and the reason (for a refused write, the address and the kind of write) - a few anonymous usage events: bike connected, ride saved (distance range only, e.g. "5–10 km"), Pro purchased, speed profile applied (without the value), feature use (maintenance marked done, reminders turned on, calendar used, CSV exported, diagnostics experiments switched, Pro screen opened), plus basic events Firebase collects automatically, such as app opens and time spent on screens. Alongside them go a few grouping values: whether Pro is unlocked, the speed-limit approval state (approved, pending, none), the bike's model name and the app version - app performance data: how long app start and screen rendering take, how long connecting to the bike, reading its settings and saving a ride take and whether they succeeded, and the timing of network requests the app makes itself (App Store, Firebase). iCloud traffic is handled separately by the system and is not measured - a random Firebase app-instance ID created on the device Ride contents, location, your iCloud identifier, nickname, name or email are never sent, and the data is not linked to your identity. Under Firebase's default retention, Crashlytics crash reports are kept for 90 days and Analytics user- and event-level data for 2 months, then deleted (only aggregated statistics remain). Turning off "Send usage statistics and crash reports" under Settings > Privacy stops collection immediately and also deletes unsent crash reports and the analytics data stored on the device.
- Remote settings (Firebase Remote Config): the app downloads diagnostic settings, such as how it connects to and reads from the bike. The request sends the Firebase installation ID (a random value created on the device), the app version and build, the iOS version, the device's language, country and time zone, and, while the switch above is on, the Analytics grouping values (whether Pro is unlocked, approval state, bike model name, app version). The download happens regardless of the switch, so the Firebase installation ID is created and sent even when it is off. No name, email, location or iCloud identifier is sent.
- Push notifications: permission is requested only when you turn on "Updates & notices" under Settings > Notifications. Turning it on creates an Apple Push Notification service token and a Firebase Cloud Messaging registration token, stored by Google Firebase and used only to send app update and announcement notifications. Turning it off unregisters, so the token is no longer used. Riders' push tokens are never uploaded to iCloud (CloudKit); only the developer's own account stores its device token in a developer-only CloudKit record, to receive admin notifications.
- How Google handles this data: https://firebase.google.com/support/privacy
- Contact: ask@bianchi.co.kr