주요 콘텐츠로 건너뛰기
대안

특정 버전을 사용자에게 전송하는 방법

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

특정 버전을 사용자 또는 그룹에게 보내는 방법

소개

업데이트 시스템을 즐기기 시작할 때, Capgo와 같은 앱에서 마찬가지로 느끼실 겁니다. "더 많은 것을 원한다면"라는 생각이 들 것입니다.

저도 그 생각을 했지만, Capgo의 제작자이기 때문에, 제가 직접 확인할 수 있었습니다.

모든 것이 오픈 소스이기 때문에, 여러분도 이 권한을 가집니다.

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

TestFlight으로는 이 문제가 간단합니다. 사람들을 팀에 끌어들이고 그들이 어떻게 얻을 수 있는지 이해하는 것은 시간이 걸립니다!

애플에 보내면 매번 봇이 검토하는 과정을 거치는데, 5분에서 5시간까지의 시간이 걸릴 수 있습니다. 언제 걸릴지 알 수 없습니다.

이 문제로 인해 여러 번 발표가 늦어졌습니다.

구글에서는 thậm chí còn tồi tệ hơn, đó là bí ẩn của cuộc đời tôi, sản xuất phiên bản sản xuất chỉ mất hơn 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 모든 사용자에게 업데이트를 업데이트합니다 (제품 채널이 기본값으로 설정되어 있으면)

만약에 npx @capgo/cli@latest bundle upload -c development __CAPGO_KEEP_0__ 액션 GitHub 액션.

Super 자동화된 방법

__CAPGO_KEEP_0__

이 기능은 채널 세트에 대한 백엔드를 만들지 않으려면 유용할 수 있습니다. 이 기능은 빠르게 구현할 수 있습니다.

그것을 사용하면, 채널 중 하나를 자체로 설정하도록 허용하는 것만 하면 됩니다.

자체 설정을 허용하십시오 Capgo

그 다음, Ionic 앱의 code에 이 코드를 추가하세요. 최적의 경험을 위해, 사용자가 '베타 등록' 버튼을 클릭한 후에 이 코드를 사용하세요.

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

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

수동 방법

이 기능은 내부 팀에 유용할 수 있습니다. 이 기능은 빠르게 구현할 수 있습니다. 사용자들이 앱에서 기기ID를 복사하고, 그 code를 사용하여 얻을 수 있습니다:

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

const deviceId = await CapacitorUpdater.getDeviceId()

앱에 버튼을 숨기거나, 연결된 사용자만에게 버튼을 표시하도록 role을 사용하여, 예를 들어. admin 그 다음, 웹 앱 또는 네이티브 앱 __CAPGO_KEEP_0__로 이동하여, 앱 관리자로 로그인하고, 앱을 선택한 후, 기기 목록을 클릭합니다.

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

사용자에게 버튼을 클릭하도록 요청하고, 팀원에게 앱을 다시 열어달라고 요청하고, 30초 기다렸다가 앱을 닫고 다시 열어보십시오. development그럼 사용자는 버전을 받을 수 있을 것입니다.

그 사용자는 당신의 버전을 받을 것입니다.

자동화된 방법

이 방법은 베타 테스터에게 유용할 수 있으며, 구현하는 데 더 오랜 시간이 걸립니다.

자동화된 방법과 동일하게, 디바이스 ID를 가져야 합니다.

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

const deviceId = await CapacitorUpdater.getDeviceId()

이번에는 자동으로 백엔드에 전송해야 합니다. 방법은 여러분이 결정하셔야 합니다.

데이터베이스에 저장하는 것을 추천합니다. 나중에 편리하게 사용할 수 있습니다.

그리고 Capgo 백엔드에도 전송해야 합니다. 아래 두 가지 code 예시를 참고하세요.

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)
}

배포된 URL에 POST 요청을 보내고, body에 device_id를 포함하여 추가하고 삭제할 수 있습니다.

이 설정을 완료한 후, 앱에 옵트인 버튼을 추가하고, 웹 앱에서 설정이 설정되었는지 확인하세요.

또한 __CAPGO_KEEP_0__를 제거하여 override를 제거할 수 있습니다. null __CAPGO_KEEP_0__

프로그램적으로 장치에 설정된 오버라이드 확인이 필요하다면 URL에서 가져올 수 있습니다.

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())

How to send specific update to one user or a group에서 계속 진행하세요.

이 기능을 사용하고 있다면 사용자에게 특정 버전을 전송하는 방법 채널 라우팅과 스테이지드 롤아웃을 계획하고자 한다면 Channels Channels Channels Channels Channels Channels 채널 라우팅과 스테이지드 롤아웃 구현 세부 사항은 Channels에서 확인할 수 있습니다. Beta Testing Solution Beta 테스트 솔루션의 제품 워크플로우에 대해 버전 목표 솔루션 버전 목표 솔루션의 제품 워크플로우에 대해

Capacitor 앱에 대한 즉시 업데이트

Capgo를 통해 웹层 버그가 활성화된 경우, 앱 스토어 승인 대기 없이 패치를 배포할 수 있습니다. 사용자는 배경에서 업데이트를 받으며 네이티브 변경 사항은 일반적인 검토 경로에 남아 있습니다.

최근 블로그

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