__CAPGO_KEEP_0__
대안

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

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

마틴 도나디유

마틴 도나디유

콘텐츠 마케터

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

인사말

업데이트 시스템을 즐기기 시작하면 Capgo와 같은 앱을 만들 때 “더 많은 것을 원한다면?”하는 생각이 들게 됩니다.

저도 그 생각을 했었는데, Capgo의 제작자이기 때문에 Capgo의 코드를 확인할 수 있었습니다.

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

Capacitor 앱 배포 프로세스에서 다음으로 고통스러운 것은 다른 팀원들이 업데이트를 테스트하는 것입니다!

TestFlight의 경우 문제는 간단합니다. 팀원들을 끌어들이고 업데이트를 받는 방법을 이해시키는 데 시간이 걸립니다.

애플에 업데이트를 제출할 때마다 봇이 랜덤으로 리뷰 프로세스를 진행하고 5분에서 5시간까지 걸릴 수 있습니다.

이것 때문에 나의 발표가 여러 번 지연되었습니다...

구글의 경우 thậm chí còn tồi tệ hơn, 내 삶의 큰 bí ẩn, 생산 버전을 릴리즈하는 데는 2시간 미만이 걸리지만, 근접 베타 버전을 릴리즈하는 데는 1-2일이 걸립니다.

해결책

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

npx @capgo/cli@latest bundle upload -c production 모든 사용자에게 업데이트를 적용할 수 있습니다 (기본 채널이 프로덕션 채널일 경우)

그렇다면 버전이 다른 채널로 이동할 수 있습니다. 이 과정을 자동화할 수 있습니다. npx @capgo/cli@latest bundle upload -c development __CAPGO_KEEP_0__ 액션을 사용하면 됩니다. GitHub action.

__CAPGO_KEEP_0__ 액션을 사용하면 됩니다.

Super automatic Way

이 기능을 사용하면 채널 세트에 대한 백엔드를 직접 만들지 않고도 유용할 수 있습니다. 이 기능은 빠르게 구현할 수 있습니다.

백엔드 없이 채널 세트를 구현할 수 있습니다. 이 기능은 빠르게 구현할 수 있습니다.

Capgo에서 자체 채널을 허용하십시오.

code에 이 코드를 추가하여 Ionic 앱에서 최적의 경험을 제공하십시오. 사용자가 '베타 등록' 버튼을 클릭한 후에 이 기능을 사용하는 것을 권장합니다.

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

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

Manual way

내부 팀에 유용할 수 있는 기능입니다. 이 기능은 빠르게 구현할 수 있습니다. code을 사용하여 사용자가 장치 ID를 복사하고 수동으로 전송할 수 있도록 허용하십시오.

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

const deviceId = await CapacitorUpdater.getDeviceId()

앱 내에서 버튼을 숨기거나, 연결된 사용자만 보여주려면 역할을 사용하십시오. 예를 들어. admin __CAPGO_KEEP_0__으로 가서 앱 관리자로 로그인한 후 앱을 선택한 후 장치 목록을 클릭하십시오.

Capgo에서 장치 ID를 입력한 후 찾은 장치를 클릭한 후 채널 링크를 클릭하십시오.

__CAPGO_KEEP_0__에서 30초 후에 앱을 열고 닫아보십시오. development__CAPGO_KEEP_0__에서 30초 후에 앱을 열고 닫아보십시오.

__CAPGO_KEEP_0__

자동화된 방법

__CAPGO_KEEP_2__

__CAPGO_KEEP_3__

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

const deviceId = await CapacitorUpdater.getDeviceId()

__CAPGO_KEEP_4__

__CAPGO_KEEP_5__

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

__CAPGO_KEEP_7__
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_9__

__CAPGO_KEEP_10__

__CAPGO_KEEP_11__ null __CAPGO_KEEP_0__

__CAPGO_KEEP_1__

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_2__

__CAPGO_KEEP_3__ __CAPGO_KEEP_4__ __CAPGO_KEEP_5__ __CAPGO_KEEP_6__ __CAPGO_KEEP_7__ __CAPGO_KEEP_8__ __CAPGO_KEEP_9__ __CAPGO_KEEP_10__ __CAPGO_KEEP_11__ Beta Testing Solution Beta 테스트 솔루션의 제품 워크플로우에 대해, 그리고 Version Targeting Solution 버전 목표 솔루션의 제품 워크플로우에 대해.

Capacitor 앱에 대한 실시간 업데이트

웹层 버그가 활성화된 경우 Capgo를 통해修정 배포하는 대신 앱 스토어 승인까지 며칠 기다리지 말고, 사용자는 배경에서 업데이트 받으면서 네이티브 변경 사항은 일반적인 검토 경로에 남겨둔다.

시작하기

블로그에서 최신 소식

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