Lompat ke konten

Saluran

Channels are the core mechanism for managing app updates in Capgo. They allow you to control how and when your users receive updates, enabling features like A/B testing, staged rollouts, and platform-specific updates.

Judul bagian “Pahami Saluran”

__CAPGO_KEEP_0__

A channel mewakili jalur distribusi untuk pembaruan aplikasi Anda. Setiap saluran dapat dikonfigurasi dengan aturan dan keterbatasan tertentu:

  • Bundel (versi) Kontrol: Tentukan bundel (versi) mana yang diterima pengguna
  • Target Platform: Targetkan platform tertentu (iOS/Android/Electron)
  • Kebijakan Pembaruan: Kendalikan bagaimana pembaruan disampaikan
  • Pengaturan Perangkat: Kelola perangkat mana yang dapat mengakses pembaruan
  • publik: Tetapkan sebagai saluran default untuk perangkat baru
  • __CAPGO_KEEP_0__: Mencegah pembaruan ketika versi aplikasi asli perangkat lebih baru dari paket pembaruan (versi) yang tersedia di saluran (misalnya, perangkat berada pada versi aplikasi asli 1.2.3, tetapi saluran memiliki paket pembaruan (versi) 1.2.2)
  • : Kendalikan perilaku pembaruan (“besar”, “kecil”, “nomor versi”, “tidak ada”)ios/android/electron
  • : Aktifkan/dimatikan untuk platform tertentu: Izinkan perangkat memilih saluran
  • : Izinkan pembaruan pada perangkat emulator: Izinkan pembaruan pada perangkat pengembang
  • __CAPGO_KEEP_0____CAPGO_KEEP_0__
  • __CAPGO_KEEP_0__: Izinkan pembaruan pada build pengembangan
  1. Sumber Uji: Tahanlah saluran uji untuk validasi internal
  2. Rollout Langkah demi Langkah: Gunakan beberapa saluran untuk pengembangan pembaruan secara bertahap
  3. Pemisahan Platform: Buatlah saluran terpisah untuk iOS, Android, dan Electron jika perlu
  4. Pengendalian Paket (versi): Gunakan versi semantik untuk jalur pembaruan yang jelas

https://api.capgo.app/channel/

Buat atau perbarui konfigurasi saluran.

type disable_update = "major" | "minor" | "version_number" | "none"
interface ChannelSet {
app_id: string
channel: string
version?: string // bundle (version) name
public?: boolean
disableAutoUpdateUnderNative?: boolean
disableAutoUpdate?: disable_update
ios?: boolean
android?: boolean
electron?: boolean
allow_device_self_set?: boolean
allow_emulator?: boolean
allow_dev?: boolean
}
Jendela Terminal
curl -X POST \
-H "authorization: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"app_id": "app_123",
"channel": "beta",
"version": "1.2.0",
"public": false,
"disableAutoUpdate": "minor",
"ios": true,
"android": true,
"electron": true,
"allow_emulator": true
}' \
https://api.capgo.app/channel/
{
"status": "ok"
}

https://api.capgo.app/channel/

Mengambil informasi saluran. Mengembalikan 50 saluran per halaman.

  • app_id: Wajib. ID aplikasi Anda
  • page: Opsional. Nomor halaman untuk pengaturan halaman
  • channel: Opsional. Nama saluran spesifik untuk diambil
Jendela Terminal
# Get all channels
curl -H "authorization: your-api-key" \
"https://api.capgo.app/channel/?app_id=app_123"
# Get specific channel
curl -H "authorization: your-api-key" \
"https://api.capgo.app/channel/?app_id=app_123&channel=beta"
# Get next page
curl -H "authorization: your-api-key" \
"https://api.capgo.app/channel/?app_id=app_123&page=1"
interface Channel {
id: number;
created_at: string;
name: string;
app_id: string;
version: { // bundle (version) assigned to the channel
id: number,
name: string
};
created_by: string;
updated_at: string;
public: boolean;
disableAutoUpdateUnderNative: boolean;
disableAutoUpdate: boolean;
allow_emulator: boolean;
allow_dev: boolean;
}

Dalam respons di bawah ini, version merujuk pada paket (versi) yang ditugaskan ke saluran.

{
"data": [
{
"id": 1,
"name": "production",
"app_id": "app_123",
"version": {
"id": 1,
"name": "1.0.0"
},
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-01T00:00:00Z",
"created_by": "user_123",
"public": true,
"disableAutoUpdateUnderNative": false,
"disableAutoUpdate": false,
"allow_emulator": false,
"allow_dev": false
}
]
}

https://api.capgo.app/channel/

Hapus sebuah saluran. Perlu diingat bahwa ini akan mempengaruhi semua perangkat yang menggunakan saluran ini.

interface Channel {
channel: string
app_id: string
}
Jendela Terminal
curl -X DELETE \
-H "authorization: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"app_id": "app_123",
"channel": "beta"
}' \
https://api.capgo.app/channel/
{
"status": "ok"
}

Skenario kesalahan umum dan responsnya:

// Channel not found
{
"error": "Channel not found",
"status": "KO"
}
// Invalid bundle (version) format
{
"error": "Invalid version format. Use semantic versioning",
"status": "KO"
}
// Invalid update policy
{
"error": "Invalid disableAutoUpdate value",
"status": "KO"
}
// Permission denied
{
"error": "Insufficient permissions to manage channels",
"status": "KO"
}
  1. Pengujian Beta
{
"app_id": "app_123",
"channel": "beta",
"version": "1.2.0-beta",
"public": false,
"allow_emulator": true,
"allow_dev": true
}
  1. Peluncuran Produksi
{
"app_id": "app_123",
"channel": "production",
"version": "1.2.0",
"public": true,
"disableAutoUpdate": "minor"
}
  1. Perbaruan Khusus Platform
{
"app_id": "app_123",
"channel": "ios-hotfix",
"version": "1.2.1",
"ios": true,
"android": false
}

Jika Anda menggunakan Channel untuk merencanakan routing channel dan peluncuran tahap demi tahap, hubungkannya dengan Channel untuk detail implementasi di Channel, Channel untuk detail implementasi di Channel, Solusi Pengujian Beta untuk alur kerja produk di Solusi Pengujian Beta, Solusi Target Versi untuk alur kerja produk di Solusi Target Versi, dan Capgo Praktik Terbaik Lingkungan: Pengujian dengan Satu ID Aplikasi Mobile untuk konteks praktis di Capgo Praktik Terbaik Lingkungan: Pengujian dengan Satu ID Aplikasi Mobile.