Referensi CLI
Semua perintah retrojet, apa yang ditampilkan, dan apa yang harus dilakukan kalau gagal.
retrojet <perintah> [flag]
Jalankan retrojet --help atau retrojet <perintah> --help untuk melihat informasi yang sama di terminal. Pesan CLI
ditulis dalam bahasa Inggris.
retrojet login
Login CLI ke akun Retrojet kamu lewat browser.
retrojet login
retrojet login --no-browser # hanya tampilkan URL, buka sendiri
| Flag | Arti |
|---|---|
--no-browser | Tidak membuka browser. Berguna lewat SSH atau di komputer tanpa desktop. |
Yang terjadi:
- CLI menyalakan server kecil di
127.0.0.1lalu membuka console dihttps://retrojetdev.cloud/cli/login. URL juga ditampilkan di terminal, kalau-kalau browser tidak terbuka. - Kamu login kalau belum, lalu klik Izinkan. Batal menghentikan login.
- Browser mengantar kode sekali pakai kembali ke CLI, dan CLI menukarnya dengan access token langsung ke Retrojet.
Access token tidak pernah lewat browser. Login memakai PKCE (RFC 7636), jadi kode yang bocor dari riwayat browser tidak berguna dengan sendirinya. Kode itu kedaluwarsa setelah 5 menit dan hanya bisa dipakai sekali.
Kalau browser tidak kembali dalam 5 menit, CLI berhenti dengan pesan gave up waiting for the browser login.
Jalankan retrojet login lagi.
Tempat token disimpan
| OS | File |
|---|---|
| macOS | ~/Library/Application Support/retrojet/credentials.json |
| Linux | ~/.config/retrojet/credentials.json, atau $XDG_CONFIG_HOME/retrojet/ kalau variabel itu di-set |
| Windows | %AppData%\retrojet\credentials.json |
Di macOS dan Linux, file ini hanya bisa dibaca oleh kamu (0600). Token berlaku 30 hari. Mengganti password
mengeluarkan semua sesi, termasuk CLI.
retrojet whoami
Menampilkan akun yang sedang dipakai CLI.
retrojet whoami
Logged in to Retrojet as Budi <budi@acme.com>
| Pesan | Solusi |
|---|---|
not logged in to Retrojet, run ... first | Jalankan retrojet login. |
your login to Retrojet has expired, run ... again | Masa 30 hari sudah lewat. Jalankan retrojet login. |
your login to Retrojet is no longer valid ... | Token ditolak, misalnya setelah ganti password. Jalankan retrojet login. |
retrojet logout
Menghapus token dari komputer ini. Perintah ini tidak menghubungi Retrojet.
retrojet logout
retrojet init
Menghubungkan project Flutter di folder saat ini dengan sebuah app di Retrojet, lalu menulis retrojet.yaml.
Jalankan di folder yang berisi pubspec.yaml.
retrojet init
Langkahnya:
Memastikan
pubspec.yamlada danretrojet.yamlbelum ada. Untuk menjalankaninitlagi, hapus duluretrojet.yaml.Membaca package ID dari setiap folder platform yang ada:
Platform File Nilai Android android/app/build.gradle.ktsataubuild.gradleapplicationIdiOS ios/Runner.xcodeproj/project.pbxprojPRODUCT_BUNDLE_IDENTIFIERmacOS macos/Runner/Configs/AppInfo.xcconfigPRODUCT_BUNDLE_IDENTIFIERLinux linux/CMakeLists.txtAPPLICATION_IDWindows tidak ada dilewati, app Flutter Windows tidak punya package ID Mencari app dengan package ID yang persis sama di organisasi kamu:
- Ada di satu organisasi: app itu dipakai.
- Ada di beberapa organisasi: kamu diminta memilih.
- Tidak ada: app dibuat di organisasi tempat kamu menjadi Owner atau Admin, dan kamu diminta memilih kalau ada lebih dari satu.
Menulis
retrojet.yamlberisiapp_id. Commit file ini.
Package ID harus sama
Package ID harus persis sama di semua platform. Kalau tidak, init berhenti dan menampilkan yang ditemukan:
Error: the package ID must be exactly the same on every platform:
android com.acme.demo_app android/app/build.gradle.kts
ios com.acme.demoApp ios/Runner.xcodeproj/project.pbxproj
Make them identical, then run `retrojet init` again.
Ini terjadi di kebanyakan project baru: flutter create --project-name demo_app memakai com.acme.demo_app di
Android dan Linux, tetapi com.acme.demoApp di iOS dan macOS, karena bundle ID Apple tidak boleh mengandung _.
Pilih satu ID yang hanya berisi huruf, angka, dan titik, misalnya com.acme.demoapp, lalu pakai di semua platform.
App yang sudah terbit di store dengan ID berbeda per platform tidak bisa mengganti ID-nya, sehingga belum bisa memakai
retrojet init.
Belum didukung
- Flavor Android dengan lebih dari satu
applicationId. (applicationIdSuffix, misalnya.debug, diabaikan.) - Bundle ID dari variabel build, misalnya
$(APP_ID)di Xcode. - Konfigurasi Xcode dengan bundle ID berbeda. Test target dan extension, misalnya
com.acme.demo.RunnerTests, diabaikan.
Error
| Pesan | Solusi |
|---|---|
this project is already set up: retrojet.yaml has app_id ... | Tidak perlu apa-apa. Hapus retrojet.yaml hanya kalau memang ingin menghubungkan app lain. |
no android, ios, macos or linux folder found | Jalankan init di root project Flutter. |
no app with package ID ... exists, and you are not an Owner or Admin of any organization ... | Minta Admin membuat app di console, lalu jalankan init lagi. |
Upgrade your plan to add more apps | Paket Free hanya untuk satu app. Pakai app yang sudah ada atau upgrade. |
retrojet release dan retrojet patch
retrojet release android
retrojet patch android
Variabel environment
| Variabel | Efek |
|---|---|
NO_COLOR | Mematikan warna di output. Warna juga mati kalau output diarahkan ke file atau program lain. |