flutter-dev 0.1.13__tar.gz → 0.1.14__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/CHANGELOG.md +21 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/PKG-INFO +74 -4
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/README.md +73 -3
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/fdev.py +17 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/flutter_dev.egg-info/SOURCES.txt +2 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/managers/__init__.py +4 -0
- flutter_dev-0.1.14/managers/app_check.py +1596 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/pyproject.toml +1 -1
- flutter_dev-0.1.14/tests/test_app_check.py +271 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/.env.example +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/LICENSE +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/MANIFEST.in +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/common_utils.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/core/__init__.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/core/ai_config.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/core/constants.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/core/state.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/create_page.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/gemini_api.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/git_diff_output_editor.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/install_legacy.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/managers/ai.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/managers/app.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/managers/brew.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/managers/build.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/managers/datetime.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/managers/device.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/managers/doctor.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/managers/git.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/managers/git_account.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/managers/localization.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/managers/merge.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/managers/mirror.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/managers/package.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/managers/project.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/managers/web_deploy.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/requirements.txt +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/setup.cfg +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/setup.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/switch_ai.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/tests/test_ai_config.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/tests/test_app_commands.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/tests/test_fdev_cli.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/tests/test_localization.py +0 -0
- {flutter_dev-0.1.13 → flutter_dev-0.1.14}/tests/test_package_commands.py +0 -0
|
@@ -2,6 +2,27 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project are documented in this file.
|
|
4
4
|
|
|
5
|
+
## 0.1.14 - 2026-09-01
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Added five Firebase App Check commands: `status`, `token`, `register`, `list`, and `revoke`.
|
|
10
|
+
- Added dynamic Android device discovery, device-specific token extraction, multi-device registration with `register --all`, and Firebase CLI/REST backend selection.
|
|
11
|
+
- Added Firebase Android configuration discovery from Gradle, `google-services.json`, `firebase.json`, and `.firebaserc`, with explicit overrides for ambiguous projects and variants.
|
|
12
|
+
- Added Python regression coverage for command routing, device/config discovery, backend version parsing, validation, and secret redaction.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- Expanded the main command list and README with the App Check command count, all five subcommands, and the `register --device`, `register --all`, and `--backend` forms.
|
|
17
|
+
- Bumped the package version from `0.1.13` to `0.1.14` for the PyPI release.
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- Added strict UUID4, Firebase app/project ownership, and debug-token resource validation before remote mutations.
|
|
22
|
+
- Kept collected debug-token secrets out of normal registration output, error messages, and project files.
|
|
23
|
+
- Improved emulator/ADB transport detection and made malformed project configuration or unavailable CLI checks fail safely.
|
|
24
|
+
- Ensured `register --all` processes every ready device even when `ANDROID_SERIAL` is set.
|
|
25
|
+
|
|
5
26
|
## 0.1.13 - 2026-07-22
|
|
6
27
|
|
|
7
28
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flutter-dev
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.14
|
|
4
4
|
Summary: A cross-platform CLI toolkit for Flutter development workflows.
|
|
5
5
|
Author: Royal Court BD
|
|
6
6
|
License-Expression: MIT
|
|
@@ -42,7 +42,7 @@ The package is published on PyPI as `flutter-dev` and installs console commands
|
|
|
42
42
|
python -m pip install flutter-dev
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
Current package metadata declares version `0.1.
|
|
45
|
+
Current package metadata declares version `0.1.14`, Python `>=3.8`, MIT license, and support for macOS, Linux, and Windows.
|
|
46
46
|
|
|
47
47
|
## Key Features
|
|
48
48
|
|
|
@@ -50,6 +50,7 @@ Current package metadata declares version `0.1.13`, Python `>=3.8`, MIT license,
|
|
|
50
50
|
- Project maintenance helpers for `flutter clean`, dependency refresh, `build_runner`, localization generation, analysis, formatting, cache repair, and CocoaPods.
|
|
51
51
|
- Localization CSV helpers for exporting ARB files to translator-friendly CSV files and generating ARB files back from CSV.
|
|
52
52
|
- Android device helpers for APK install, app uninstall, project/foreground app data clearing, screen mirroring with `scrcpy`, wireless ADB setup, and Date & Time settings.
|
|
53
|
+
- Dynamic Firebase App Check debug-token discovery, registration, listing, and revocation for connected Android devices.
|
|
53
54
|
- AI-assisted Git commits using Groq, Mistral, SambaNova, or OpenRouter-compatible chat completion APIs.
|
|
54
55
|
- Git workflow helpers for version tags, branch sync, deployment branch merge, discard, and GitHub account management through `gh`.
|
|
55
56
|
- Feature/page generator that creates a `lib/features/<name>` structure using the project's presenter/base-state pattern.
|
|
@@ -110,12 +111,13 @@ Feature-specific external tools:
|
|
|
110
111
|
|
|
111
112
|
| Tool | Used by |
|
|
112
113
|
| --- | --- |
|
|
113
|
-
| Android SDK Platform Tools / `adb` | `install`, `uninstall`, `clear-data`, `mirror`, `datetime`, `release-run` |
|
|
114
|
+
| Android SDK Platform Tools / `adb` | `install`, `uninstall`, `clear-data`, `mirror`, `datetime`, `release-run`, `app-check token/register` |
|
|
114
115
|
| Java/JDK | Android builds |
|
|
115
116
|
| CocoaPods | `pod`, `ipa` |
|
|
116
117
|
| Xcode / `xcrun` | iOS simulator and IPA workflows on macOS |
|
|
117
118
|
| `scrcpy` | `mirror` |
|
|
118
|
-
| Firebase CLI | `web-deploy` |
|
|
119
|
+
| Firebase CLI | `web-deploy`; App Check management when version `15.25.1` or newer |
|
|
120
|
+
| Google Cloud CLI / `gcloud` | App Check REST fallback when a compatible Firebase CLI is unavailable |
|
|
119
121
|
| GitHub CLI / `gh` | `fdev git ...` |
|
|
120
122
|
| VS Code CLI / `code` | Conflict helper in branch sync |
|
|
121
123
|
| Homebrew | `brew`, macOS `install-scrcpy` flow |
|
|
@@ -202,6 +204,11 @@ Android APK/AAB build commands rename output files using the Android app label a
|
|
|
202
204
|
| `fdev install` | Installs a built APK from `build/app/outputs/flutter-apk`, prefers `arm64-v8a`, retries after uninstall on failure, then launches the app. |
|
|
203
205
|
| `fdev uninstall` | In a Flutter project root, uninstalls by package/bundle id. Outside a project, detects the foreground app and asks for confirmation. |
|
|
204
206
|
| `fdev clear-data` | In a Flutter project root, clears the installed project's Android package data without confirmation; if it is missing or the clear fails, falls back to the foreground app with a default-Yes safety prompt. Outside a project, always detects and confirms the foreground app. iOS prints manual options. |
|
|
207
|
+
| `fdev app-check status [--device SERIAL] [--backend auto\|cli\|rest]` | Shows all ADB device states, dynamically resolved Firebase Android metadata, provider detection, and Firebase management backend readiness. |
|
|
208
|
+
| `fdev app-check token [--device SERIAL]` | Reads one debug build's UUID4 App Check token from its discovered preference store, with official logcat fallback, and explicitly prints the secret. |
|
|
209
|
+
| `fdev app-check register [--device SERIAL \| --all] [--backend auto\|cli\|rest]` | Collects token(s) without printing or persisting them and registers one selected device or every authorized connected device. |
|
|
210
|
+
| `fdev app-check list [--backend auto\|cli\|rest]` | Lists registered debug-token names, resource IDs, and update times; Firebase never returns the secrets. |
|
|
211
|
+
| `fdev app-check revoke <id> [--backend auto\|cli\|rest] [--force]` | Revokes a registered debug token after confirmation. Use `--force` for non-interactive operation. |
|
|
205
212
|
| `fdev install-scrcpy` | Installs `scrcpy` using the best supported package manager for the current platform. |
|
|
206
213
|
| `fdev mirror` | Launches `scrcpy` for a selected Android device. |
|
|
207
214
|
| `fdev mirror --wireless` | Guides wireless ADB setup using a USB-connected Android device. |
|
|
@@ -211,6 +218,69 @@ Android APK/AAB build commands rename output files using the Android app label a
|
|
|
211
218
|
|
|
212
219
|
When multiple Android devices are connected, device-aware commands prompt you to choose a device.
|
|
213
220
|
|
|
221
|
+
#### Firebase App Check Debug Tokens
|
|
222
|
+
|
|
223
|
+
There are five App Check subcommands: `status`, `token`, `register`, `list`, and
|
|
224
|
+
`revoke`.
|
|
225
|
+
|
|
226
|
+
Run App Check commands from a Flutter project root, or pass `--project-root`.
|
|
227
|
+
The resolver matches the Android `applicationId` with the appropriate client in
|
|
228
|
+
`android/app/google-services.json`. It also reads `firebase.json` and
|
|
229
|
+
`.firebaserc` when needed. Flavor-specific `google-services.json` files are
|
|
230
|
+
discovered under `android/app`; ambiguous configurations require an explicit
|
|
231
|
+
override instead of silently choosing the first client.
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
# Inspect device states, Firebase metadata, providers, and backend readiness
|
|
235
|
+
fdev app-check status --backend auto
|
|
236
|
+
|
|
237
|
+
# Print one device's token (the output is a secret)
|
|
238
|
+
fdev app-check token --device DEVICE_SERIAL
|
|
239
|
+
|
|
240
|
+
# Collect and register without printing the token
|
|
241
|
+
fdev app-check register --device DEVICE_SERIAL --backend cli
|
|
242
|
+
|
|
243
|
+
# Register every authorized connected device
|
|
244
|
+
fdev app-check register --all --backend cli
|
|
245
|
+
|
|
246
|
+
# Inspect and revoke registered token metadata
|
|
247
|
+
fdev app-check list --backend cli
|
|
248
|
+
fdev app-check revoke DEBUG_TOKEN_ID --backend cli
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
The default `--backend auto` uses Firebase CLI `15.25.1+` when available,
|
|
252
|
+
otherwise it uses the Firebase App Check REST API with the active `gcloud`
|
|
253
|
+
account. Force either route with `--backend cli` or `--backend rest`. Authenticate
|
|
254
|
+
the selected tool before registration:
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
firebase login
|
|
258
|
+
# or
|
|
259
|
+
gcloud auth login
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
Configuration precedence is command-line option, environment override, then
|
|
263
|
+
project discovery. Supported overrides are:
|
|
264
|
+
|
|
265
|
+
```text
|
|
266
|
+
--package FDEV_APP_CHECK_PACKAGE / PACKAGE_NAME
|
|
267
|
+
--project FDEV_FIREBASE_PROJECT_ID / FIREBASE_PROJECT_ID
|
|
268
|
+
--project-number FDEV_FIREBASE_PROJECT_NUMBER / FIREBASE_PROJECT_NUMBER
|
|
269
|
+
--app-id FDEV_FIREBASE_APP_ID / FIREBASE_ANDROID_APP_ID
|
|
270
|
+
--quota-project FDEV_GOOGLE_CLOUD_QUOTA_PROJECT / GOOGLE_CLOUD_QUOTA_PROJECT
|
|
271
|
+
--device ANDROID_SERIAL
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
`register` keeps the debug token in memory and never writes it to a project
|
|
275
|
+
file. The `token` subcommand is the only normal workflow that prints the secret.
|
|
276
|
+
If a stable display name already exists, pass `--force` only when replacing the
|
|
277
|
+
old token is intended.
|
|
278
|
+
|
|
279
|
+
The REST backend charges API quota to `--quota-project`, the configured gcloud
|
|
280
|
+
`billing/quota_project`, or the active gcloud project, in that order. That
|
|
281
|
+
project must have the Firebase App Check API enabled, and the active account
|
|
282
|
+
must be allowed to consume its service quota.
|
|
283
|
+
|
|
214
284
|
### Git Commands
|
|
215
285
|
|
|
216
286
|
| Command | Description |
|
|
@@ -8,7 +8,7 @@ The package is published on PyPI as `flutter-dev` and installs console commands
|
|
|
8
8
|
python -m pip install flutter-dev
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
Current package metadata declares version `0.1.
|
|
11
|
+
Current package metadata declares version `0.1.14`, Python `>=3.8`, MIT license, and support for macOS, Linux, and Windows.
|
|
12
12
|
|
|
13
13
|
## Key Features
|
|
14
14
|
|
|
@@ -16,6 +16,7 @@ Current package metadata declares version `0.1.13`, Python `>=3.8`, MIT license,
|
|
|
16
16
|
- Project maintenance helpers for `flutter clean`, dependency refresh, `build_runner`, localization generation, analysis, formatting, cache repair, and CocoaPods.
|
|
17
17
|
- Localization CSV helpers for exporting ARB files to translator-friendly CSV files and generating ARB files back from CSV.
|
|
18
18
|
- Android device helpers for APK install, app uninstall, project/foreground app data clearing, screen mirroring with `scrcpy`, wireless ADB setup, and Date & Time settings.
|
|
19
|
+
- Dynamic Firebase App Check debug-token discovery, registration, listing, and revocation for connected Android devices.
|
|
19
20
|
- AI-assisted Git commits using Groq, Mistral, SambaNova, or OpenRouter-compatible chat completion APIs.
|
|
20
21
|
- Git workflow helpers for version tags, branch sync, deployment branch merge, discard, and GitHub account management through `gh`.
|
|
21
22
|
- Feature/page generator that creates a `lib/features/<name>` structure using the project's presenter/base-state pattern.
|
|
@@ -76,12 +77,13 @@ Feature-specific external tools:
|
|
|
76
77
|
|
|
77
78
|
| Tool | Used by |
|
|
78
79
|
| --- | --- |
|
|
79
|
-
| Android SDK Platform Tools / `adb` | `install`, `uninstall`, `clear-data`, `mirror`, `datetime`, `release-run` |
|
|
80
|
+
| Android SDK Platform Tools / `adb` | `install`, `uninstall`, `clear-data`, `mirror`, `datetime`, `release-run`, `app-check token/register` |
|
|
80
81
|
| Java/JDK | Android builds |
|
|
81
82
|
| CocoaPods | `pod`, `ipa` |
|
|
82
83
|
| Xcode / `xcrun` | iOS simulator and IPA workflows on macOS |
|
|
83
84
|
| `scrcpy` | `mirror` |
|
|
84
|
-
| Firebase CLI | `web-deploy` |
|
|
85
|
+
| Firebase CLI | `web-deploy`; App Check management when version `15.25.1` or newer |
|
|
86
|
+
| Google Cloud CLI / `gcloud` | App Check REST fallback when a compatible Firebase CLI is unavailable |
|
|
85
87
|
| GitHub CLI / `gh` | `fdev git ...` |
|
|
86
88
|
| VS Code CLI / `code` | Conflict helper in branch sync |
|
|
87
89
|
| Homebrew | `brew`, macOS `install-scrcpy` flow |
|
|
@@ -168,6 +170,11 @@ Android APK/AAB build commands rename output files using the Android app label a
|
|
|
168
170
|
| `fdev install` | Installs a built APK from `build/app/outputs/flutter-apk`, prefers `arm64-v8a`, retries after uninstall on failure, then launches the app. |
|
|
169
171
|
| `fdev uninstall` | In a Flutter project root, uninstalls by package/bundle id. Outside a project, detects the foreground app and asks for confirmation. |
|
|
170
172
|
| `fdev clear-data` | In a Flutter project root, clears the installed project's Android package data without confirmation; if it is missing or the clear fails, falls back to the foreground app with a default-Yes safety prompt. Outside a project, always detects and confirms the foreground app. iOS prints manual options. |
|
|
173
|
+
| `fdev app-check status [--device SERIAL] [--backend auto\|cli\|rest]` | Shows all ADB device states, dynamically resolved Firebase Android metadata, provider detection, and Firebase management backend readiness. |
|
|
174
|
+
| `fdev app-check token [--device SERIAL]` | Reads one debug build's UUID4 App Check token from its discovered preference store, with official logcat fallback, and explicitly prints the secret. |
|
|
175
|
+
| `fdev app-check register [--device SERIAL \| --all] [--backend auto\|cli\|rest]` | Collects token(s) without printing or persisting them and registers one selected device or every authorized connected device. |
|
|
176
|
+
| `fdev app-check list [--backend auto\|cli\|rest]` | Lists registered debug-token names, resource IDs, and update times; Firebase never returns the secrets. |
|
|
177
|
+
| `fdev app-check revoke <id> [--backend auto\|cli\|rest] [--force]` | Revokes a registered debug token after confirmation. Use `--force` for non-interactive operation. |
|
|
171
178
|
| `fdev install-scrcpy` | Installs `scrcpy` using the best supported package manager for the current platform. |
|
|
172
179
|
| `fdev mirror` | Launches `scrcpy` for a selected Android device. |
|
|
173
180
|
| `fdev mirror --wireless` | Guides wireless ADB setup using a USB-connected Android device. |
|
|
@@ -177,6 +184,69 @@ Android APK/AAB build commands rename output files using the Android app label a
|
|
|
177
184
|
|
|
178
185
|
When multiple Android devices are connected, device-aware commands prompt you to choose a device.
|
|
179
186
|
|
|
187
|
+
#### Firebase App Check Debug Tokens
|
|
188
|
+
|
|
189
|
+
There are five App Check subcommands: `status`, `token`, `register`, `list`, and
|
|
190
|
+
`revoke`.
|
|
191
|
+
|
|
192
|
+
Run App Check commands from a Flutter project root, or pass `--project-root`.
|
|
193
|
+
The resolver matches the Android `applicationId` with the appropriate client in
|
|
194
|
+
`android/app/google-services.json`. It also reads `firebase.json` and
|
|
195
|
+
`.firebaserc` when needed. Flavor-specific `google-services.json` files are
|
|
196
|
+
discovered under `android/app`; ambiguous configurations require an explicit
|
|
197
|
+
override instead of silently choosing the first client.
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# Inspect device states, Firebase metadata, providers, and backend readiness
|
|
201
|
+
fdev app-check status --backend auto
|
|
202
|
+
|
|
203
|
+
# Print one device's token (the output is a secret)
|
|
204
|
+
fdev app-check token --device DEVICE_SERIAL
|
|
205
|
+
|
|
206
|
+
# Collect and register without printing the token
|
|
207
|
+
fdev app-check register --device DEVICE_SERIAL --backend cli
|
|
208
|
+
|
|
209
|
+
# Register every authorized connected device
|
|
210
|
+
fdev app-check register --all --backend cli
|
|
211
|
+
|
|
212
|
+
# Inspect and revoke registered token metadata
|
|
213
|
+
fdev app-check list --backend cli
|
|
214
|
+
fdev app-check revoke DEBUG_TOKEN_ID --backend cli
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
The default `--backend auto` uses Firebase CLI `15.25.1+` when available,
|
|
218
|
+
otherwise it uses the Firebase App Check REST API with the active `gcloud`
|
|
219
|
+
account. Force either route with `--backend cli` or `--backend rest`. Authenticate
|
|
220
|
+
the selected tool before registration:
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
firebase login
|
|
224
|
+
# or
|
|
225
|
+
gcloud auth login
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Configuration precedence is command-line option, environment override, then
|
|
229
|
+
project discovery. Supported overrides are:
|
|
230
|
+
|
|
231
|
+
```text
|
|
232
|
+
--package FDEV_APP_CHECK_PACKAGE / PACKAGE_NAME
|
|
233
|
+
--project FDEV_FIREBASE_PROJECT_ID / FIREBASE_PROJECT_ID
|
|
234
|
+
--project-number FDEV_FIREBASE_PROJECT_NUMBER / FIREBASE_PROJECT_NUMBER
|
|
235
|
+
--app-id FDEV_FIREBASE_APP_ID / FIREBASE_ANDROID_APP_ID
|
|
236
|
+
--quota-project FDEV_GOOGLE_CLOUD_QUOTA_PROJECT / GOOGLE_CLOUD_QUOTA_PROJECT
|
|
237
|
+
--device ANDROID_SERIAL
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
`register` keeps the debug token in memory and never writes it to a project
|
|
241
|
+
file. The `token` subcommand is the only normal workflow that prints the secret.
|
|
242
|
+
If a stable display name already exists, pass `--force` only when replacing the
|
|
243
|
+
old token is intended.
|
|
244
|
+
|
|
245
|
+
The REST backend charges API quota to `--quota-project`, the configured gcloud
|
|
246
|
+
`billing/quota_project`, or the active gcloud project, in that order. That
|
|
247
|
+
project must have the Firebase App Check API enabled, and the active account
|
|
248
|
+
must be allowed to consume its service quota.
|
|
249
|
+
|
|
180
250
|
### Git Commands
|
|
181
251
|
|
|
182
252
|
| Command | Description |
|
|
@@ -76,6 +76,9 @@ from managers.package import (
|
|
|
76
76
|
show_fdev_version,
|
|
77
77
|
upgrade_fdev_command,
|
|
78
78
|
)
|
|
79
|
+
from managers.app_check import (
|
|
80
|
+
app_check_command,
|
|
81
|
+
)
|
|
79
82
|
|
|
80
83
|
|
|
81
84
|
def show_usage(exit_code=1):
|
|
@@ -104,6 +107,12 @@ def show_usage(exit_code=1):
|
|
|
104
107
|
print(" install Install built APK on connected device")
|
|
105
108
|
print(" uninstall Uninstall app from connected device")
|
|
106
109
|
print(" clear-data Clear project app data with confirmed foreground fallback")
|
|
110
|
+
print(" App Check Commands (5):")
|
|
111
|
+
print(" app-check status [--device SERIAL] [--backend auto|cli|rest]")
|
|
112
|
+
print(" app-check token [--device SERIAL]")
|
|
113
|
+
print(" app-check register [--device SERIAL | --all] [--backend auto|cli|rest]")
|
|
114
|
+
print(" app-check list [--backend auto|cli|rest]")
|
|
115
|
+
print(" app-check revoke <id> [--backend auto|cli|rest] [--force]")
|
|
107
116
|
print(" install-scrcpy Install scrcpy for Android screen mirroring")
|
|
108
117
|
print(" mirror Launch scrcpy screen mirror (auto-detect device)")
|
|
109
118
|
print(" --wireless Setup wireless ADB connection")
|
|
@@ -141,6 +150,12 @@ def show_usage(exit_code=1):
|
|
|
141
150
|
print(f" {GREEN}fdev mirror --turn-screen-off{NC} # Mirror with device display turned off")
|
|
142
151
|
print(f" {GREEN}fdev datetime{NC} # Open device Date & Time settings")
|
|
143
152
|
print(f" {GREEN}fdev uninstall{NC} # Uninstall app (auto-selects device)")
|
|
153
|
+
print(f" {GREEN}fdev app-check status{NC} # Inspect App Check device/project readiness")
|
|
154
|
+
print(f" {GREEN}fdev app-check token --device SERIAL{NC} # Print one device token")
|
|
155
|
+
print(f" {GREEN}fdev app-check register --device SERIAL{NC} # Register one device token")
|
|
156
|
+
print(f" {GREEN}fdev app-check register --all --backend cli{NC} # Register all ready devices")
|
|
157
|
+
print(f" {GREEN}fdev app-check list --backend cli{NC} # List registered token metadata")
|
|
158
|
+
print(f" {GREEN}fdev app-check revoke ID --force{NC} # Revoke one registered token")
|
|
144
159
|
print(f" {GREEN}fdev discard{NC} # Discard all uncommitted changes")
|
|
145
160
|
print(f" {GREEN}fdev sync dev-farhan dev-sufi{NC} # Sync with multiple branches")
|
|
146
161
|
print(f" {GREEN}fdev deploy{NC} # Deploy to deployment branch")
|
|
@@ -217,6 +232,8 @@ def main():
|
|
|
217
232
|
uninstall_app()
|
|
218
233
|
elif command == "clear-data":
|
|
219
234
|
clear_app_data()
|
|
235
|
+
elif command == "app-check":
|
|
236
|
+
sys.exit(app_check_command(sys.argv[2:]))
|
|
220
237
|
elif command == "install-scrcpy":
|
|
221
238
|
install_scrcpy()
|
|
222
239
|
|
|
@@ -20,6 +20,7 @@ core/state.py
|
|
|
20
20
|
managers/__init__.py
|
|
21
21
|
managers/ai.py
|
|
22
22
|
managers/app.py
|
|
23
|
+
managers/app_check.py
|
|
23
24
|
managers/brew.py
|
|
24
25
|
managers/build.py
|
|
25
26
|
managers/datetime.py
|
|
@@ -34,6 +35,7 @@ managers/package.py
|
|
|
34
35
|
managers/project.py
|
|
35
36
|
managers/web_deploy.py
|
|
36
37
|
tests/test_ai_config.py
|
|
38
|
+
tests/test_app_check.py
|
|
37
39
|
tests/test_app_commands.py
|
|
38
40
|
tests/test_fdev_cli.py
|
|
39
41
|
tests/test_localization.py
|