__CAPGO_KEEP_0__ 메인 콘텐츠로 바로 가기
대안

특정 사용자 또는 그룹에게 업데이트를 보내는 방법

사용자가 테스트 플라이트나 구글 베타 프로세스 없이 베타 버전을 시도할 수 있도록 허용합니다. 단, Ionic 앱에 버튼을 추가하면 끝입니다!

마틴 도나디유

마틴 도나디유

콘텐츠 마케터

특정 사용자 또는 그룹에게 업데이트를 보내는 방법

소개

업데이트 시스템을 Capgo처럼 즐기기 시작하면, 나도 앱을 만들 때 마찬가지로 “더 많은 것을 원한다면?”하는 생각이 들게 됩니다.

나는 그 생각을 하였지만, Capgo의 제작자로서 나는 직접 확인할 수 있었습니다.

모든 것이 오픈 소스이기 때문에, 당신도 이 권한을 가집니다 :)

Capacitor 앱 배포 프로세스의 다음 문제는 팀원들이 업데이트를 테스트하는 것입니다.

테스트 플라이트를 사용하면 이 문제는 간단합니다. 팀원들을 초대하고 업데이트를 받는 방법을 알려주는 것은 시간이 걸립니다.

애플에 업데이트를 제출할 때마다, 봇에 의해 무작위로 검토되며, 5분에서 5시간까지의 시간이 걸릴 수 있습니다.

이 문제로 인해 나의 발표가 여러 번 지연되었습니다.

구글에서는 thậm chí còn tồi tệ hơn, cuộc sống của tôi luôn là bí ẩn, phiên bản sản xuất được phát hành trong vòng 2 giờ, nhưng phiên bản gần beta mất 1-2 ngày.

해결

Capgo에서 채널 시스템을 만들었습니다.

npx @capgo/cli@latest bundle upload -c production 채널을 프로덕션 채널로 설정하면 모든 사용자에게 업데이트를 적용합니다.

만약에 그럴 경우 버전을 다른 채널로 옮길 수 있습니다. 이건 __CAPGO_KEEP_0__ 액션에서 자동화할 수 있습니다. npx @capgo/cli@latest bundle upload -c development 그럼 사용자들은 채널에서 업데이트를 받을 수 있습니다. 사용자들이 업데이트를 받을 수 있는 방법은 2가지가 있습니다. GitHub action.

이 방법은 채널 설정을 위한 백엔드 만들기를 원하지 않을 때 유용합니다. 이 방법은 빠르게 구현할 수 있습니다.

이 방법을 사용하려면, 하나의 채널을 자체 채널로 설정할 수 있습니다.

__CAPGO_KEEP_0__에서 자체 채널 설정을 허용하세요.

그리고 Ionic 앱의 __CAPGO_KEEP_0__에 이 코드를 추가하세요. 사용자들이 버타 등록 버튼을 클릭한 후에 이 코드를 사용하는 것이 좋습니다.

Allow set self in Capgo

이 방법은 내부 팀에 유용합니다. 이 방법은 빠르게 구현할 수 있습니다. 사용자들이 자신의 기기 ID를 복사하고, 그 ID를 보내는 방법을 허용하세요. 이 code은 사용자들이 ID를 보내는 것을 도와줄 것입니다.

import { CapacitorUpdater } from '@capgo/capacitor-updater'

const deviceId = await CapacitorUpdater.setChannel({ channel: 'beta' })

앱에 버튼을 숨기거나, 네트워크에 연결된 사용자에게만 버튼을 보여주세요.

code

import { CapacitorUpdater } from '@capgo/capacitor-updater'

const deviceId = await CapacitorUpdater.getDeviceId()

__CAPGO_KEEP_0__ admin 역할을 위해 예를 들어.

Web 앱 또는 네이티브 앱으로 이동하여 Capgo으로 앱 관리자로 로그인하고 앱을 선택한 다음 장치 목록을 클릭합니다.

그런 다음 검색 바에 장치 ID를 입력하고 찾은 장치 ID를 클릭한 다음 채널 링크를 클릭하여 __CAPGO_KEEP_1__를 선택합니다. development__CAPGO_KEEP_2__를 클릭하여 앱을 다시 열면 __CAPGO_KEEP_3__ 버전을 받을 수 있습니다.

자동화된 방법

이 방법은 베타 테스터에게 유용할 수 있습니다. 그러나 구현이 더 오래 걸립니다.

수동 방법과 동일하게 장치 ID를 얻어야 합니다.

이번에는 자동으로 백엔드에 장치 ID를 전송해야 합니다. 방법은 여러분에게 맡기겠습니다.

import { CapacitorUpdater } from '@capgo/capacitor-updater'

const deviceId = await CapacitorUpdater.getDeviceId()

백엔드에서 장치 ID를 __CAPGO_KEEP_0__ 백엔드에 전송해야 합니다. 아래 두 가지 __CAPGO_KEEP_1__ 예시가 있습니다.

NodeJS로 __CAPGO_KEEP_4__를 사용하는 방법입니다.

Then in your backend you have to send it to Capgo backend too. Below two code examples:

__CAPGO_KEEP_7__를 사용하여 __CAPGO_KEEP_8__를 구현하는 방법입니다.
import axios from 'axios'

await axios.post('https://api.capgo.app/device', {
  app_id: 'YOUR_APP_ID',
  device_id: 'DEVICE_ID',
  channel: 'CHANNEL_NAME', // The name of the channel, or undefined if version_id provided
  version_id: 'VERSION_NAME' // this is optional, if provide it will override the channel, that useful when you want to debug only one user.
}, {
  headers: {
    authorization: 'YOUR_API_KEY' // choose a key with 'write' or 'all' rights
  }
})
Cloudflare
addEventListener('fetch', (event) => {
  event.respondWith(
    handleRequest(event.request).catch(
      err => new Response(err.stack, { status: 500 })
    )
  )
})

async function handleRequest(request) {
  const { pathname, method } = new URL(request.url)
  const body = await request.json()
  const newBody = JSON.stringify({
    app_id: 'YOUR_APP_ID',
    device_id: body.device_id,
    channel: 'alpha'
  })
  const newUrl = new URL('https://api.capgo.app/device')
  const options = {
    headers: {
      authorization: 'YOUR_API_KEY',
    },
    method: 'POST',
    body: newBody
  }

  if (request.method === 'DELETE') {
    // DELETE the channel link
    options.method = 'DELETE'
    return fetch(newUrl.toString(), options)
  }

  return fetch(newUrl.toString(), options)
}

__CAPGO_KEEP_1__

__CAPGO_KEEP_2__

__CAPGO_KEEP_3__ null __CAPGO_KEEP_4__

__CAPGO_KEEP_5__

import axios from 'axios'

const res = await axios.get('https://api.capgo.app/device?app_id=YOUR_APP_ID&device_id=DEVICE_ID', {
  headers: {
    authorization: 'YOUR_API_KEY' // choose a key with 'write' or 'all' rights
  }
})

console.log('data', res.json())

__CAPGO_KEEP_6__

__CAPGO_KEEP_7__ __CAPGO_KEEP_8__ __CAPGO_KEEP_9__ __CAPGO_KEEP_10__ __CAPGO_KEEP_11__ 채널 채널 구현 세부 정보에 대해 채널 채널 구현 세부 정보에 대해 베타 테스트 솔루션 베타 테스트 솔루션의 제품 워크플로에 대해 버전 목표 솔루션 버전 목표 솔루션의 제품 워크플로에 대해

Live updates for Capacitor apps

When a web-layer bug is live, ship the fix through Capgo instead of waiting days for app store approval. Users get the update in the background while native changes stay in the normal review path.

__CAPGO_KEEP_0__를 사용하면 사용자들은 배경에서 업데이트를 받을 수 있으며, 네이티브 변경 사항은 일반적인 검토 경로를 유지합니다.

Get Started Now

Capgo gives you the best insights you need to create a truly professional mobile app.