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
  
FlagArti
--no-browserTidak membuka browser. Berguna lewat SSH atau di komputer tanpa desktop.

Yang terjadi:

  1. CLI menyalakan server kecil di 127.0.0.1 lalu membuka console di https://retrojetdev.cloud/cli/login. URL juga ditampilkan di terminal, kalau-kalau browser tidak terbuka.
  2. Kamu login kalau belum, lalu klik Izinkan. Batal menghentikan login.
  3. 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

OSFile
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>
  
PesanSolusi
not logged in to Retrojet, run ... firstJalankan retrojet login.
your login to Retrojet has expired, run ... againMasa 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:

  1. Memastikan pubspec.yaml ada dan retrojet.yaml belum ada. Untuk menjalankan init lagi, hapus dulu retrojet.yaml.

  2. Membaca package ID dari setiap folder platform yang ada:

    PlatformFileNilai
    Androidandroid/app/build.gradle.kts atau build.gradleapplicationId
    iOSios/Runner.xcodeproj/project.pbxprojPRODUCT_BUNDLE_IDENTIFIER
    macOSmacos/Runner/Configs/AppInfo.xcconfigPRODUCT_BUNDLE_IDENTIFIER
    Linuxlinux/CMakeLists.txtAPPLICATION_ID
    Windowstidak adadilewati, app Flutter Windows tidak punya package ID
  3. 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.
  4. Menulis retrojet.yaml berisi app_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

PesanSolusi
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 foundJalankan 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 appsPaket 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

VariabelEfek
NO_COLORMematikan warna di output. Warna juga mati kalau output diarahkan ke file atau program lain.