본 콘텐츠로 바로 가기

트랜지스터 소프트 백그라운드 위치 추적 대안

무료, 오픈 소스 Capacitor 8: 기능, 라이선스, 설정, 지오펜싱 및 마이그레이션 가이드

Transistorsoft 배경 지오로케이션 대체

Transistorsoft 배경 지오로케이션 대체를 찾고 있다면 Capacitor 8에서 가장 가까운 무료 옵션은 @capgo/background-geolocation. MIT 라이선스이며 Capacitor 8에 배포, iOS 및 Android에서 배경에서 위치 추적, 네이티브 지오펜싱을 지원, code에서 네이티브로 서버로 위치를 POST할 수 있습니다. Transistorsoft의 모든 기능을 복사하지 않으므로 이 가이드는 무엇을 얻고 무엇을 포기하는지, 그리고 마이그레이션 방법을 다룹니다.

팀이 Transistorsoft 대체를 찾는 이유

Transistorsoft SDK은 여러 해 동안 수송, 배달 및 피트니스 앱을 지원하는 성숙한 제품입니다. 사람들은 이 제품이 깨진 것이 아니기 때문에 거의 이 제품을 떠나지 않습니다. 그들은 다음 이유로 떠납니다:

Release 빌드에는 이제 양쪽 플랫폼 모두에서 키가 필요합니다.

Transistorsoft changelog에 따르면 버전 9.0.0은 JWT 기반 라이선스 키로 이동하여 iOS에서도 키가 필요하게 되었습니다. v9 이전에는 Android release 빌드만 잠금이 걸려있었습니다. v8 및 이전 버전의 키는 v9과 호환되지 않으므로 플러그인 업그레이드도 키를 다시 생성해야 합니다.

그들의 상점에서는 앱 식별자당 영구 라이선스를 판매하고, 1개부터 100개의 키까지, 1년 동안 업데이트가 포함됩니다. 폴리곤 지오페칭과 같은 추가 기능은 이제 동일한 키에 인코딩되어 있습니다. 1개의 앱에 대해 이 가격은 합리적입니다. 20개의 화이트 레이블 앱을 가진 대행사 또는 별도의 스테이징 및 프로덕션 번들 ID를 배포하는 회사에겐 라이선스는 매년 관리해야 하는 항목이 됩니다.

코어 엔진은 바이너리입니다.

Capacitor wrapper는 공개되어 있지만 위치 엔진은 iOS 프레임워크와 Android 라이브러리 형태로 Maven에서 배포됩니다. 특정 Android OEM에서 이상한 일이 발생하면 code이 기록을 기록할 때 결정하는 코드를 읽거나 패치할 수 없습니다. 일부 팀은 그럴 수 있지만, 엄격한 감사 요구를 가진 팀이나 Xcode에서 code를 단계별로 실행하고 싶은 팀은 그렇지 않습니다.

설정 표면

이 플러그인은 매우 큰 구성 객체를 노출합니다: 운동 감지, 스케줄링, 오도메터, SQLite 저장소, HTTP 동기화 템플릿, 무인도 작업 및 더 많은 기능이 있습니다. 만약 모든 기능이 필요하다면 좋습니다. 만약 “운전 중 30초마다 내 위치를 전송하고 싶다면” 많은 설정을 이해해야 합니다.

capgo/배경 위치 정보

Capgo 플러그인은 Cordova 백그라운드 위치 플러그인 분기와 가볍고 커뮤니티 Capacitor 플러그인의 오랜 역사에서 시작되었습니다. 정확한 고정점, 신뢰할 수 있는 백그라운드 작업 및 네이티브 지오펜싱을 제공하기 위해 라이선스가 필요하지 않습니다.

현재 8.x 라인에 있는 기능:

  • 전면과 후면 위치 업데이트를 단일 start() 콜백 함수를 사용하여 수행합니다.
  • distanceFilter 그리고 minIntervalMs 백그라운드 작업을 제어하는 방법을 제어합니다.
  • 네이티브 HTTP POST를 사용하여 위치를 url 사용자 지정 토큰 회전을 사용하여 구성된 headers 그리고 updateHeaders() URL로 전송합니다.
  • 네이티브 circular geofences with enter and exit events, and a native webhook for transitions.
  • checkPermissions() 그리고 requestPermissions() iOS When In Use와 Always를 구별하는 기능입니다.
  • openSettings() 사용자가 권한을 거부한 경우
  • setPlannedRoute() 사용자가 계획된 경로를 떠날 때 소리를 재생합니다.
  • 선택적 Android networkFallback 네트워크 위치를 사용하여 GPS 결핍을 채웁니다.
  • 개발 및 브라우저 테스트를 위한 웹 구현입니다.

기능 비교

능력 Transistorsoft (v9) @capgo/배경 위치 정보
라이선스 앱 ID당 유료 키 MIT, 무료
소스 Wrapper 열기, 엔진 바이너리 완전히 오픈 소스
Capacitor 8 네 네
배경 추적 네 네
__CAPGO_KEEP_0__ Yes No
__CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__
__CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__
__CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__
앱이 스와이프되어 사라진 후 추적 (Android) 네 네, url 설정
재부팅 후 추적 네 (startOnBoot) 아니오
스케줄링, 오도미터 네 아니오

정말로 말하자면, Transistorsoft는 앱이 스스로 추적할 때, 재부팅을 견뎌고 몇 주간의 데이터를 오프라인으로 버퍼링할 때 더 적합합니다. Capgo의 Capgo 플러그인은 사용자가 앱이 추적을 시작할 때, 정확한 위치 정보를 얻고 라이선스 없이 code를 읽을 수 있을 때 더 적합합니다.

설치 및 설정

bun add @capgo/background-geolocation
bunx cap sync

iOS

사용 문자열과 위치 배경 모드를 추가하세요. ios/App/App/Info.plist:

<key>NSLocationWhenInUseUsageDescription</key>
<string>We use your location to show your route.</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>We use your location in the background to record your route while the phone is locked.</string>
<key>UIBackgroundModes</key>
<array>
  <string>location</string>
</array>

애플 스토어 업로드는 Xcode 26이 2026년 4월부터 필요합니다. CI 이미지가 더 오래된 경우 빌드가 성공하더라도 업로드가 거부될 수 있습니다. Capgo 빌드 현재 Xcode 이미지를 사용하여 CI를 유지하지 않으려면 Mac 유지에 대한 유지 보수를 하지 않아도 됩니다.

Android

플러그인은 배경에서 추적 중인 동안 전면 서비스와 지속적인通知을 사용합니다. Android 13 이상에서, 위치가 승인되면通知을 표시할 수 있도록 요청합니다. POST_NOTIFICATIONS 설정

Set useLegacyBridge 설정 capacitor.config.ts배경에서 위치 추적을 위해 전면 서비스와 지속적인 알림을 사용합니다. Android 13 이상에서, 위치가 승인되면 알림을 표시할 수 있도록 요청합니다.

import type { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'com.example.tracker',
  appName: 'Tracker',
  webDir: 'dist',
  android: {
    useLegacyBridge: true,
  },
};

export default config;

설정 strings.xml 키가 문서화된 것 플러그인 문서.

추적 시작

import { BackgroundGeolocation } from '@capgo/background-geolocation';

export async function startShift(token: string) {
  await BackgroundGeolocation.start(
    {
      backgroundTitle: 'Shift in progress',
      backgroundMessage: 'Your location is shared with dispatch until you end the shift.',
      requestPermissions: true,
      stale: false,
      distanceFilter: 25,
      url: 'https://api.example.com/v1/locations',
      headers: { Authorization: `Bearer ${token}` },
      minIntervalMs: 30_000,
    },
    (location, error) => {
      if (error) {
        if (error.code === 'NOT_AUTHORIZED') {
          BackgroundGeolocation.openSettings();
        }
        console.error(error);
        return;
      }
      if (location) {
        // Update the UI while the WebView is alive
        console.log(location.latitude, location.longitude, location.accuracy);
      }
    },
  );
}

export async function endShift() {
  await BackgroundGeolocation.stop();
}

두 옵션은 더 많은 것보다 더 중요합니다:

  • backgroundMessage 이것이 배경 업데이트를 활성화하는 것이며, 양쪽 플랫폼에서 작동합니다. 이것이 없으면 업데이트는 foreground에서만 보장됩니다. 안드로이드에서는 이 텍스트가 foreground 서비스 알림의 텍스트이기도 합니다.
  • url 각 점을 native code에 보내며 "source": "native" body에 field를 포함합니다. 이 경로는 WebView에 의존하지 않으며, 안드로이드에서 WebView가 제한되거나 iOS에서 JavaScript가 중단될 때 데이터가 흐르는 것을 유지하기 위해 WebView가 필요합니다. 안드로이드에서 설정 url 또한 서비스를 고정되도록 만들며, 앱이 스와이프되어도 점이 서버로 계속 도달합니다. 양쪽 플랫폼에서 신뢰할 수 있는 배경 추적을 위해 두 옵션이 모두 필요합니다.

액세스 토큰이 만료되었을 때, 세션을 재시작하지 않고 회전하세요:

await BackgroundGeolocation.updateHeaders({
  headers: { Authorization: `Bearer ${newToken}` },
});

지오펜싱

트랜스포터 소프트 사용자는 지오펜싱에 의존합니다. Capgo 플러그인은 양쪽 플랫폼에서 native API를 사용하여 원형 영역을 커버합니다:

import { BackgroundGeolocation } from '@capgo/background-geolocation';

await BackgroundGeolocation.setupGeofencing({
  url: 'https://api.example.com/v1/geofence-events',
  headers: { Authorization: 'Bearer <token>' },
  notifyOnEntry: true,
  notifyOnExit: true,
  payload: { driverId: 'd-381' },
  backgroundLocation: true, // Android only, needs ACCESS_BACKGROUND_LOCATION in your manifest
});

await BackgroundGeolocation.addGeofence({
  identifier: 'depot-north',
  latitude: 48.8584,
  longitude: 2.2945,
  radius: 200,
  payload: { depotId: 'north' },
});

await BackgroundGeolocation.addListener('geofenceTransition', (event) => {
  console.log(event.identifier, event.transition, event.payload);
});

iOS 지오펜싱은 항상 권한이 필요합니다. 안드로이드 10 이상에서는 배경 지오펜싱이 ACCESS_BACKGROUND_LOCATIONGoogle Play 승인 후 배경 위치를 추가합니다. 앱이 배경 위치를 추가하지 않습니다. 앱이 배경 위치를 추가하지 않습니다. iOS에서 geofence가 이상하게 동작하는 경우 iOS에서 geofence가 동작하지 않는 이유에 대한 가이드를 읽으십시오. iOS에서 geofence가 동작하지 않는 이유.

Transistorsoft에서 마이그레이션

API가 다르기 때문에 위치 서비스를 작은 리팩토링으로 대체하는 것이 좋습니다.

Transistorsoft 개념 Capgo 동등한 개념
ready(config) + start() start(options, callback)
onLocation listener The start() callback
stop() stop()
distanceFilter distanceFilter
url, headers HTTP sync url, headers, updateHeaders()
addGeofence / onGeofence addGeofence / geofenceTransition
removeGeofence(s) removeGeofence / removeAllGeofences
getGeofences getMonitoredGeofences
권한 도우미 checkPermissions / requestPermissions
운동 감지, 예약, 오도미터 애플리케이션 로직 또는 서버에서 구현하십시오.

실제로 잘 작동하는 단계는 다음과 같습니다.

  1. 앱 내에 작은 서비스를 위치 접근을 뒤로 숨기십시오 (startTracking, stopTracking, onPoint). 대부분의 앱이 이미 하나를 가지고 있습니다.
  2. 서비스를 Capgo 플러그인을 사용하여 특정 기능 플래그 또는 별도의 빌드로 구현하십시오.
  3. 백엔드가 플러그인의 위치 JSON을 수락하도록 하십시오. 요청 본문은 ( Location )와 같은 형식이며latitude, longitude, accuracy, speed, bearing, time Transistorsoft 플러그인을 제거하고, 라이선스 키, 추가 Gradle 변수 및 더 이상 필요하지 않은 배경 모드를 제거하십시오. source.
  4. 최소 30분 동안 화면이 잠금된 상태로 실제 기기에서 테스트하십시오. 최소한 Pixel, Samsung, iPhone 중 하나씩입니다.
  5. 네이티브 플러그인 변경은 새로운 스토어 빌드를 필요로 합니다. 빌드가 출시되면, 추적 UI에 대한 자바스크립트 수정을 계속 배포할 수 있습니다. __CAPGO_KEEP_0__ Live Update를 사용하십시오.

컨텍스트: Capgo 마케팅 웹사이트. 역할: 호출을 위한 액션 버튼 또는 링크 레이블. 위치: 페이지 에이전트/[슬러그].astro. Capgo 제품/브랜드 및 개발자 용어를 정확하게 유지하십시오. 메시지 키 `agents_page_loop_update_link` (에이전트 페이지 루프 업데이트 링크). Capgo 실시간 업데이트 다시 검토 주기를 거치지 않고.

Capgo 플러그인이 부족한 곳에서

switch하기 전에 명확히 이해해야 할 점은 다음과 같습니다.

  • 영구적인 큐가 없습니다. 네이티브 POST는 최선을 다합니다. 장치가 오프라인일 경우 실패한 점은 로그되고 삭제됩니다. 점을 잃을 수 없는 경우에는 콜백에서 점을 저장하고 앱에서.sync 하거나 Transistorsoft를 유지하세요.
  • 재부팅 후 재시작이 없습니다. 사용자가 앱을 열 때 트래킹이 재개됩니다.
  • 자동 운동 감지가 없습니다. 앱이 시작과 중단을 결정합니다.
  • iOS 종료. iOS에서 사용자가 강제 종료하면 표준 위치 업데이트 중단됩니다. 그건 플러그인 제한이 아닌 OS 규칙입니다.

Capacitor은 앱이 백그라운드 상태일 때 실행할 수 있는 내용에 대한 더 많은 정보는 Capacitor.

문제 해결

안드로이드에서는 몇 분 후에 업데이트가 중단됩니다. 확인 useLegacyBridge: true배터리 소비 최적화가 활성화된 OEM에서 앱 테스트 시 WebView를 사용하지 않도록 선택하여 배달이 WebView에 의존하지 않도록 하십시오. url iOS에서는 배경에서 업데이트가 없습니다.

확인 확인 UIBackgroundModes 확인 location확인 backgroundMessage확인 start() 확인 iOS 백그라운드 위치 업데이트 왜 멈추는가? iOS 백그라운드 위치 업데이트 멈추는 이유를 모두 살펴본다.

NOT_AUTHORIZED 오류. 사용자가 위치 허용을 거부했다. 사용자에게 위치 허용이 왜 필요한지 설명한 후에 openSettings() 내부에 있을 때 점프한다.

Raise Raise distanceFilterMock delivery 앱에서 위치를 시뮬레이션한다. accuracy 각각 networkFallback: true coarse 위치 고정만 허용된다면.

배달 앱에서 가상 위치를 시뮬레이션합니다. Each Location has a simulated flag이 있습니다. 더 엄격한 검사를 위해 add @capgo/capacitor-mock-location-detector.

선택

운동 기반 자동 시작, 재부팅 지속성, 오프라인 큐 및 다각형 지오 펜스, 그리고 라이선스 비용이 맞는 경우 Transistorsoft를 선택하세요. @capgo/background-geolocation 세션 기반 추적이 필요한 경우, 읽을 수 있는 code 및 앱당 라이선스가 필요하지 않은 경우, 큐잉을 앱에 소유하는 것이 괜찮은 경우를 선택하세요. 여러 개의 유료 네이티브 SDK를 동시에 대체하는 경우, Capgo 대체품을 나열한 페이지입니다.

Capacitor 앱에 대한 즉시 업데이트

Capgo를 통해 웹-layer 버그가 생긴 경우, 앱 스토어 승인 대기 없이 바로 수정을 배포하고 사용자는 배경에서 업데이트를 받으며 네이티브 변경은 일반적인 검토 경로에 남겨둔다.

최신 블로그

Capgo은 전문적인 모바일 앱을 만들기 위해 필요한 최고의洞察력을 제공합니다.