@craft-native/ios 0.0.369 → 0.0.374
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/README.md +48 -3
- package/dist/cli.js +314 -158
- package/dist/index.d.ts +6 -2
- package/dist/index.js +338 -179
- package/dist/runtime-profile.d.ts +13 -0
- package/package.json +1 -1
- package/templates/CraftApp.swift +279 -3
- package/templates/CraftBluetooth.swift +12 -0
- package/templates/CraftHealth.swift +124 -8
- package/templates/CraftHeartRate.swift +13 -0
- package/templates/CraftHybrid.swift +52 -11
- package/templates/CraftLiveActivities.swift +2 -0
- package/templates/CraftMusic.swift +23 -0
- package/templates/CraftNativeActions.swift +54 -8
- package/templates/CraftNativeFiles.swift +7 -0
- package/templates/CraftNativeScreen.swift +155 -0
- package/templates/CraftNativeServices.swift +19 -13
- package/templates/CraftVoiceRecording.swift +13 -1
package/README.md
CHANGED
|
@@ -7,6 +7,22 @@ services as well as new advertisements. A watch connected through another app ca
|
|
|
7
7
|
therefore appear without changing its system pairing. Discovery still requires
|
|
8
8
|
Bluetooth permission and does not prove that the device accepts the app's protocol.
|
|
9
9
|
|
|
10
|
+
## Compact tab accessories
|
|
11
|
+
|
|
12
|
+
Native and hybrid tab bars stay expanded while scrolling. An accessory can use
|
|
13
|
+
`iconOnly: true` for a 48-point trailing button above the tabs:
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
craft.navigation.setOptions({
|
|
17
|
+
tabAccessory: { path: '/messages', title: 'Messages', symbol: 'message', iconOnly: true, badge: '3' },
|
|
18
|
+
})
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
The title remains its accessible name, the badge announces the unread count,
|
|
22
|
+
and the screen's bottom safe area reserves room for the button. Set
|
|
23
|
+
`tabAccessory: null` to remove it. Accessories without `iconOnly` keep the
|
|
24
|
+
system's standard presentation. Removing an accessory keeps all tabs expanded.
|
|
25
|
+
|
|
10
26
|
## Native celebration
|
|
11
27
|
|
|
12
28
|
Any native `View` may opt into a finite card entrance, light sweep and confetti
|
|
@@ -384,8 +400,15 @@ the screen locked; a sleep timer then fades it out on the audio clock. Turn it
|
|
|
384
400
|
on only for an app that plays sound people listen to: App Review checks.
|
|
385
401
|
|
|
386
402
|
Purpose strings in your own words, by Info.plist key (each replaces Craft's
|
|
387
|
-
generic sentence
|
|
388
|
-
|
|
403
|
+
generic sentence). Permission-bearing implementations and their purpose strings
|
|
404
|
+
are compiled in only when their corresponding `enable*` flags require them;
|
|
405
|
+
a nonblank custom purpose string is still
|
|
406
|
+
honored even when that feature is disabled. A custom string does not enable the
|
|
407
|
+
implementation. Regenerate the Xcode project after changing build-time feature
|
|
408
|
+
flags. Speech also needs the microphone; video recording needs camera,
|
|
409
|
+
microphone and photos; heart-rate uses Bluetooth; background location needs
|
|
410
|
+
location. File selection through the system photo picker does not enable
|
|
411
|
+
full photo-library access. App Store Connect checks the binary, not just config:
|
|
389
412
|
|
|
390
413
|
```json
|
|
391
414
|
{
|
|
@@ -395,6 +418,29 @@ since App Store Connect checks the binary):
|
|
|
395
418
|
}
|
|
396
419
|
```
|
|
397
420
|
|
|
421
|
+
With recognition compiled out, `stopListening` still acknowledges the stop and
|
|
422
|
+
emits `craftSpeechEnd`. The Zig runtime handles that idempotent cleanup without
|
|
423
|
+
linking Speech or microphone APIs; starting recognition remains disabled.
|
|
424
|
+
|
|
425
|
+
For an opt-in Zig runtime built specifically for the app, set
|
|
426
|
+
`CRAFT_IOS_RUNTIME_SOURCE` to an explicit Craft Zig source-package directory
|
|
427
|
+
(the directory containing `build.zig` and `build.zig.zon`) and `CRAFT_ZIG` to
|
|
428
|
+
the pinned compiler executable. `init` and subsequent `build` calls compile
|
|
429
|
+
device and both simulator archives from the app's `enable*` flags. The
|
|
430
|
+
programmatic equivalent is `runtimeSource` on `init`/`build`; do not combine it
|
|
431
|
+
with `runtimeDir`. Ordinary apps still require no Zig runtime or compiler.
|
|
432
|
+
Per-app builds check the compiler version, permission mask, and archive hashes
|
|
433
|
+
before installation. A failed compile leaves the installed runtime in place.
|
|
434
|
+
The source location is retained under `Runtime/`, not bundled as app config.
|
|
435
|
+
Changing permission flags requires rebuilding the runtime. Builds and shell
|
|
436
|
+
restoration bake permission gates into generated Swift and synchronize managed
|
|
437
|
+
usage descriptions, including in existing Xcode projects. Restoration refuses
|
|
438
|
+
a mismatched runtime instead of removing purpose strings from an unsafe binary.
|
|
439
|
+
Legacy unprofiled archives must be rebuilt through `runtimeSource`; manual
|
|
440
|
+
`runtimeDir` installs require a matching `ios-permissions.json` with SHA-256
|
|
441
|
+
identities for every supplied archive. No compiler, source checkout, or runtime
|
|
442
|
+
directory is guessed. These checks do not replace signed App Store validation.
|
|
443
|
+
|
|
398
444
|
Appearance and navigation:
|
|
399
445
|
|
|
400
446
|
```json
|
|
@@ -1347,7 +1393,6 @@ without an extra dependency. Omitting presentationStyle keeps the existing
|
|
|
1347
1393
|
full-screen overlay. A native sheet's close request still belongs to its
|
|
1348
1394
|
owner, which sets visible to false.
|
|
1349
1395
|
|
|
1350
|
-
|
|
1351
1396
|
### Controlled native paging and font families
|
|
1352
1397
|
|
|
1353
1398
|
A horizontal `ScrollView` with `pagingEnabled: true` and a numeric `pageIndex`
|