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.
@@ -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 });
@@ -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, disableNativeAssetsWindows } = require('../utils/env-tools');
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
 
@@ -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, disableNativeAssetsWindows } = require('../utils/env-tools');
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
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kasy-cli",
3
- "version": "1.31.7",
3
+ "version": "1.31.8",
4
4
  "description": "CLI for scaffolding production-ready Flutter SaaS apps with Firebase, Supabase, or API REST backends.",
5
5
  "bin": {
6
6
  "kasy": "./bin/kasy.js"
@@ -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
- vars:
110
- # APP_ID = the numeric App Store Connect app id. `kasy codemagic release`
111
- # sends it automatically (read from APP_STORE_ID in your .env); or define
112
- # it in the appstore_credentials group.
113
- APP_ID: $APP_ID
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