메인 콘텐츠로 건너뛰기
대안

특정 사용자 또는 그룹에게 업데이트를 전송하는 방법

__CAPGO_KEEP_0__ 업데이트 시스템을 즐기기 시작하면, 나처럼 앱을 개발하는 사람들은 "더 많은 것을 원한다"는 느낌을 받게 됩니다.

마틴 도나디유

마틴 도나디유

콘텐츠 마케터

특정 사용자 또는 그룹에게 업데이트를 전송하는 방법

인삿말

Capgo가 모두 오픈 소스이기 때문에, 당신도 이 힘을 가질 수 있습니다 :)

I got the feeling too, but since I’m the maker of Capgo, I was able to take a look!

마틴 도나디유

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

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

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

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

구글에서는 thậm chí còn tồi tệ hơn, cuộc sống của tôi 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.

then the version land to a different channel, this can be automatized in __CAPGO_KEEP_0__ action

Super automatic Way

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

채널 중 하나를 자체로 설정하도록 허용하면, 그 외의 모든 작업은 자동으로 처리됩니다.

Capgo에서 자체 설정을 허용하세요.

code에 이 코드를 추가하세요. 사용자에게 '베타 등록' 버튼을 클릭한 후에 이 기능을 사용하는 것이 가장 좋습니다.

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

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

Manual way

내부 팀에 유용할 수 있는 기능입니다. 이 기능은 빠르게 구현할 수 있습니다. code을 사용하여 사용자가 자신의 기기 ID를 앱에서 복사하고, 그 ID를 수동으로 보내도록 허용하세요.

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

const deviceId = await CapacitorUpdater.getDeviceId()

앱에 버튼을 숨기거나, 특정 역할을 가진 사용자에게만 버튼을 표시하세요. admin 웹 앱 또는 네이티브 앱 __CAPGO_KEEP_0__으로 이동하세요. 앱 관리자로 로그인한 후, 앱을 선택하고, 기기 목록을 클릭하세요.

Capgo에서 기기 ID를 검색한 후, 찾은 기기를 클릭하고, 채널 링크를 클릭하세요.

__CAPGO_KEEP_0__에서 기기 ID를 검색한 후, 찾은 기기를 클릭하고, 채널 링크를 클릭하세요. development__CAPGO_KEEP_0__에서 기기 ID를 검색한 후, 찾은 기기를 클릭하고, 채널 링크를 클릭하세요.

__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:

NodeJS
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_8__을 __CAPGO_KEEP_9__에 POST로 보낸 후 __CAPGO_KEEP_10__ 메소드를 사용하여 __CAPGO_KEEP_11__을 삭제하세요.

__CAPGO_KEEP_12__이 설정되면 앱에 옵트인 버튼을 추가하고 웹 앱에서 설정이 되었는지 확인하세요.

__CAPGO_KEEP_13__도 보내실 수 있습니다. 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 테스트 솔루션 __CAPGO_KEEP_0__ Beta 테스트 솔루션의 제품 워크플로우에 대해 버전 목표 솔루션

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

웹-layer 버그가 활성화된 경우, 앱 스토어 승인 대기 없이 Capgo를 통해 수정을 배포하세요. 사용자는 배경에서 업데이트 받으며, 네이티브 변경 사항은 일반적인 검토 경로를 유지합니다.

시작하기

블로그에서 최신 뉴스

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