kasy-cli 1.31.7 → 1.31.8
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.
- package/lib/commands/new.js +0 -5
- package/lib/commands/reset.js +1 -5
- package/lib/commands/run.js +1 -6
- package/lib/scaffold/backends/api/pubspec.yaml.tpl +7 -0
- package/lib/scaffold/backends/supabase/pubspec.yaml.tpl +7 -0
- package/lib/utils/env-tools.js +0 -42
- package/lib/utils/flutter-install.js +0 -8
- package/package.json +1 -1
- package/templates/firebase/codemagic.yaml +5 -7
- package/templates/firebase/pubspec.yaml +7 -0
package/lib/commands/new.js
CHANGED
|
@@ -1733,11 +1733,6 @@ async function runNew(directory, { language: langHint = null, backend: backendHi
|
|
|
1733
1733
|
// generation step once choices are made. The success card at the end shows
|
|
1734
1734
|
// the full summary. Cancel any time with Ctrl+C.
|
|
1735
1735
|
|
|
1736
|
-
// Windows: disable native assets before the generator runs pub get / builds,
|
|
1737
|
-
// so a username with a space (C:\Users\John Silva) doesn't break the
|
|
1738
|
-
// objective_c hook compile. No-op elsewhere, idempotent, best-effort.
|
|
1739
|
-
require('../utils/env-tools').disableNativeAssetsWindows();
|
|
1740
|
-
|
|
1741
1736
|
// ── Generate ────────────────────────────────────────────────────────────
|
|
1742
1737
|
// Quick: single rolling line that mutates message. Advanced: stack each step.
|
|
1743
1738
|
const stepper = ui.makeQuickStepper({ color: paintLime });
|
package/lib/commands/reset.js
CHANGED
|
@@ -7,7 +7,7 @@ const { createTranslator, detectDefaultLanguage } = require('../utils/i18n');
|
|
|
7
7
|
const { printCompactHeader } = require('../utils/brand');
|
|
8
8
|
const { readBundleId, readPackageName } = require('../utils/mobile-identity');
|
|
9
9
|
const { spawnFlutterWithSpinner } = require('../utils/flutter-run');
|
|
10
|
-
const { spawnSyncFlutter
|
|
10
|
+
const { spawnSyncFlutter } = require('../utils/env-tools');
|
|
11
11
|
|
|
12
12
|
function runCmd(cmd, args) {
|
|
13
13
|
const res = spawnSync(cmd, args, { encoding: 'utf8' });
|
|
@@ -264,10 +264,6 @@ async function runReset(directory, options = {}) {
|
|
|
264
264
|
throw new Error(t('reset.error.notFlutterProject'));
|
|
265
265
|
}
|
|
266
266
|
|
|
267
|
-
// Windows: disable native assets before the reinstall rebuild so a username
|
|
268
|
-
// with a space doesn't break the objective_c hook compile. No-op elsewhere.
|
|
269
|
-
disableNativeAssetsWindows();
|
|
270
|
-
|
|
271
267
|
printCompactHeader(t);
|
|
272
268
|
ui.intro(t('reset.title'));
|
|
273
269
|
|
package/lib/commands/run.js
CHANGED
|
@@ -5,7 +5,7 @@ const ui = require('../utils/ui');
|
|
|
5
5
|
const { createTranslator, detectDefaultLanguage } = require('../utils/i18n');
|
|
6
6
|
const { printCompactHeader, paintLime } = require('../utils/brand');
|
|
7
7
|
const { spawnFlutterWithSpinner } = require('../utils/flutter-run');
|
|
8
|
-
const { spawnSyncFlutter
|
|
8
|
+
const { spawnSyncFlutter } = require('../utils/env-tools');
|
|
9
9
|
|
|
10
10
|
function listFlutterDevices(projectDir) {
|
|
11
11
|
// Shared flutter spawner: exposes a freshly-installed SDK on PATH (the terminal
|
|
@@ -249,11 +249,6 @@ async function runRun(directory, options = {}) {
|
|
|
249
249
|
throw new Error(t('run.error.notFlutterProject'));
|
|
250
250
|
}
|
|
251
251
|
|
|
252
|
-
// Windows: turn off native assets before building so a username with a space
|
|
253
|
-
// (C:\Users\John Silva) doesn't break the objective_c hook compile. No-op on
|
|
254
|
-
// macOS/Linux, idempotent, and best-effort — see disableNativeAssetsWindows.
|
|
255
|
-
disableNativeAssetsWindows();
|
|
256
|
-
|
|
257
252
|
// Resolve device flag. If none of the platform shortcuts or -d is set,
|
|
258
253
|
// ask the user when more than one device is available — `flutter run`
|
|
259
254
|
// bails out with "More than one device connected" otherwise.
|
|
@@ -58,6 +58,13 @@ dependencies:
|
|
|
58
58
|
open_filex: ^4.7.0
|
|
59
59
|
package_info_plus: ^8.3.0
|
|
60
60
|
path_provider: ^2.1.5
|
|
61
|
+
# Pin the Apple impl of path_provider below 2.6.0/2.5.0. Those versions pull in
|
|
62
|
+
# objective_c via "native assets", whose build hook is unquoted and breaks every
|
|
63
|
+
# build on Windows when the username has a space (C:\Users\John Silva) — even a
|
|
64
|
+
# Chrome/web run, where the Apple-only hook is dead weight. 2.5.1 is the last
|
|
65
|
+
# release without objective_c (added in 2.5.0, reverted in 2.5.1, re-added in
|
|
66
|
+
# 2.6.0). Drop this pin once the upstream web-target regression is fixed.
|
|
67
|
+
path_provider_foundation: 2.5.1
|
|
61
68
|
permission_handler: ^12.0.1
|
|
62
69
|
provider: ^6.1.0
|
|
63
70
|
pub_semver: ^2.2.0
|
|
@@ -59,6 +59,13 @@ dependencies:
|
|
|
59
59
|
open_filex: ^4.7.0
|
|
60
60
|
package_info_plus: ^8.3.0
|
|
61
61
|
path_provider: ^2.1.5
|
|
62
|
+
# Pin the Apple impl of path_provider below 2.6.0/2.5.0. Those versions pull in
|
|
63
|
+
# objective_c via "native assets", whose build hook is unquoted and breaks every
|
|
64
|
+
# build on Windows when the username has a space (C:\Users\John Silva) — even a
|
|
65
|
+
# Chrome/web run, where the Apple-only hook is dead weight. 2.5.1 is the last
|
|
66
|
+
# release without objective_c (added in 2.5.0, reverted in 2.5.1, re-added in
|
|
67
|
+
# 2.6.0). Drop this pin once the upstream web-target regression is fixed.
|
|
68
|
+
path_provider_foundation: 2.5.1
|
|
62
69
|
permission_handler: ^12.0.1
|
|
63
70
|
provider: ^6.1.0
|
|
64
71
|
pub_semver: ^2.2.0
|
package/lib/utils/env-tools.js
CHANGED
|
@@ -201,47 +201,6 @@ function flutterSpawn(spawnFn, args, options = {}) {
|
|
|
201
201
|
const spawnFlutter = (args, options) => flutterSpawn(spawn, args, options);
|
|
202
202
|
const spawnSyncFlutter = (args, options) => flutterSpawn(spawnSync, args, options);
|
|
203
203
|
|
|
204
|
-
// Run the native-assets disable at most once per process — the setting is
|
|
205
|
-
// persisted in Flutter's global config, so re-running it every command would
|
|
206
|
-
// just add ~1s of cold flutter startup for nothing.
|
|
207
|
-
let nativeAssetsHandled = false;
|
|
208
|
-
|
|
209
|
-
/**
|
|
210
|
-
* Disable Flutter "native assets" compilation — Windows only.
|
|
211
|
-
*
|
|
212
|
-
* Why: `path_provider_foundation` (the Apple impl of `path_provider`, pulled in
|
|
213
|
-
* transitively by almost everything — google_fonts, home_widget,
|
|
214
|
-
* flutter_secure_storage…) ships a native-assets build hook for the
|
|
215
|
-
* `objective_c` package. On Windows, Dart's hook runner builds that compile
|
|
216
|
-
* command WITHOUT quoting the SDK/project path, so a username containing a
|
|
217
|
-
* SPACE (e.g. `C:\Users\John Silva`) breaks it — the shell reads only up to the
|
|
218
|
-
* space: `'C:\Users\John' is not recognized as a command`. It even fires for a
|
|
219
|
-
* Chrome/web run, where the Apple-only hook is pure dead weight.
|
|
220
|
-
*
|
|
221
|
-
* The hook is irrelevant on Windows (no iOS/macOS builds ever happen there), so
|
|
222
|
-
* turning native assets off removes the broken step at zero cost. `flutter
|
|
223
|
-
* config` is per-machine and global, so this never touches a Mac's iOS build.
|
|
224
|
-
*
|
|
225
|
-
* Idempotent and best-effort: it must never block `kasy run` / `kasy new`.
|
|
226
|
-
*
|
|
227
|
-
* @returns {{ ok: boolean, skipped?: boolean, error?: string }}
|
|
228
|
-
*/
|
|
229
|
-
function disableNativeAssetsWindows() {
|
|
230
|
-
if (!isWindows) return { ok: false, skipped: true };
|
|
231
|
-
if (nativeAssetsHandled) return { ok: true, skipped: true };
|
|
232
|
-
nativeAssetsHandled = true;
|
|
233
|
-
try {
|
|
234
|
-
const r = spawnSyncFlutter(['config', '--no-enable-native-assets'], {
|
|
235
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
236
|
-
encoding: 'utf8',
|
|
237
|
-
timeout: 120_000,
|
|
238
|
-
});
|
|
239
|
-
return { ok: r.status === 0 };
|
|
240
|
-
} catch (e) {
|
|
241
|
-
return { ok: false, error: e.message };
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
|
|
245
204
|
module.exports = {
|
|
246
205
|
isWindows,
|
|
247
206
|
homeDir,
|
|
@@ -251,5 +210,4 @@ module.exports = {
|
|
|
251
210
|
augmentedEnv,
|
|
252
211
|
spawnFlutter,
|
|
253
212
|
spawnSyncFlutter,
|
|
254
|
-
disableNativeAssetsWindows,
|
|
255
213
|
};
|
|
@@ -106,14 +106,6 @@ if ($LASTEXITCODE -ne 0) {
|
|
|
106
106
|
throw 'Flutter was installed but its first run failed (Dart SDK bootstrap). Check your internet connection and run this again.'
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
# 3b. Disable native assets. path_provider_foundation (Apple impl of
|
|
110
|
-
# path_provider) ships an objective_c native-assets build hook whose compile
|
|
111
|
-
# command isn't quoted, so a username with a SPACE (C:\\Users\\John Silva)
|
|
112
|
-
# breaks every build — even Chrome/web, where the Apple hook is dead weight.
|
|
113
|
-
# No iOS/macOS builds happen on Windows, so turning it off is free. Best
|
|
114
|
-
# effort: never fail the install over it.
|
|
115
|
-
& (Join-Path $bin 'flutter.bat') config --no-enable-native-assets 2>&1 | Out-Null
|
|
116
|
-
|
|
117
109
|
# 4. Persist flutter\\bin on the User PATH so every future terminal finds it.
|
|
118
110
|
$userPath = [Environment]::GetEnvironmentVariable('Path', 'User')
|
|
119
111
|
if (-not $userPath) { $userPath = '' }
|
package/package.json
CHANGED
|
@@ -101,16 +101,14 @@ workflows:
|
|
|
101
101
|
integrations:
|
|
102
102
|
app_store_connect: codemagic # <-- Name of your App Store Connect integration (Codemagic UI)
|
|
103
103
|
environment:
|
|
104
|
-
groups:
|
|
105
|
-
- appstore_credentials # <-- Group holding APP_ID (and any app keys)
|
|
106
104
|
ios_signing:
|
|
107
105
|
distribution_type: app_store
|
|
108
106
|
bundle_identifier: com.aicrus.firebase.kit # <-- Your iOS bundle identifier
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
107
|
+
# APP_ID (numeric App Store Connect id) and the app keys arrive as
|
|
108
|
+
# environment variables: `kasy codemagic release` sends them from your .env.
|
|
109
|
+
# No variable group is required for iOS (App Store auth uses the integration
|
|
110
|
+
# above). For dashboard/push-triggered builds, add the keys as environment
|
|
111
|
+
# variables in the Codemagic app settings and a `groups:` entry here.
|
|
114
112
|
flutter: stable
|
|
115
113
|
xcode: latest # <-- set to specific version e.g. 15.0 to avoid unexpected updates.
|
|
116
114
|
cocoapods: default
|
|
@@ -79,6 +79,13 @@ dependencies:
|
|
|
79
79
|
open_filex: ^4.7.0
|
|
80
80
|
package_info_plus: ^8.3.0
|
|
81
81
|
path_provider: ^2.1.5
|
|
82
|
+
# Pin the Apple impl of path_provider below 2.6.0/2.5.0. Those versions pull in
|
|
83
|
+
# objective_c via "native assets", whose build hook is unquoted and breaks every
|
|
84
|
+
# build on Windows when the username has a space (C:\Users\John Silva) — even a
|
|
85
|
+
# Chrome/web run, where the Apple-only hook is dead weight. 2.5.1 is the last
|
|
86
|
+
# release without objective_c (added in 2.5.0, reverted in 2.5.1, re-added in
|
|
87
|
+
# 2.6.0). Drop this pin once the upstream web-target regression is fixed.
|
|
88
|
+
path_provider_foundation: 2.5.1
|
|
82
89
|
permission_handler: ^12.0.1
|
|
83
90
|
provider: ^6.1.0
|
|
84
91
|
pub_semver: ^2.2.0
|