You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
--locales flag on new app: comma-separated locale codes for the generated Localizable.xcstrings catalog. First locale is the source language; non-source entries start at state: "new" so the localization audit surfaces them as outstanding work. Default remains ["en"].
--category flag on new app: App Store category (e.g. public.app-category.productivity). Defaults to public.app-category.utilities. Emitted both as LSApplicationCategoryType in the Info.plist and INFOPLIST_KEY_LSApplicationCategoryType in build settings, so xcodebuild archive doesn't emit the non-fatal "No App Category is set" warning that App Store Connect rejects on upload.
3-variant AppIcon skeleton: AssetGenerator.generateAppIconContents() emits three entries: no-appearance (light), luminosity: dark, and luminosity: tinted. Adopters drop PNGs in instead of restructuring the asset catalog later.
make build-clean target in generated Makefiles: runs xcodebuild clean build to surface warnings that incremental builds hide.
Persistence demo test: when SwiftData is enabled, TestGenerator.generateAppTest emits one @Test that exercises TestContext.makeContainer() + TestDataFactory.makeSampleItem(...) so adopters get a green signal on first make test and the helper APIs are referenced.
Compact theme via LumiKit 0.9 UIColor.lmk_dynamic: ColorCodeGenerator emits one-liner light/dark colors. Generated themes drop ~56% in line count. Requires DependencyVersion.lumiKit = "0.9.0".
InfoPlistGenerator options: urlIdentifier (emits CFBundleURLName in CFBundleURLTypes; defaults to bundleID) and applicationCategoryType (plumbed from --category).
Standard bundle-metadata keys in Info.plist: CFBundleIdentifier, CFBundleVersion, CFBundleShortVersionString, CFBundleName, CFBundleDisplayName, CFBundleExecutable, CFBundleDevelopmentRegion, CFBundleInfoDictionaryVersion, CFBundlePackageType, LSRequiresIPhoneOS.
Changed
GENERATE_INFOPLIST_FILE: NO in generated XcodeGen YAML when a hand-written INFOPLIST_FILE is also declared. Single source of truth instead of opaque merge precedence.
LSApplicationCategoryType lives in both Info.plist and XcodeGen build settings: required by xcodebuild archive to silence the non-fatal "No App Category" warning that App Store Connect rejects.
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor set explicitly alongside the existing ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon so asset wiring is visible in the pbxproj.
MacWindow consolidated to AppConstants: SceneDelegate's Mac Catalyst block calls MacWindowConfig.configure(_:); DesignSystemGenerator no longer re-emits enum MacWindow. One canonical home (AppConstants.MacWindow) instead of three copies of the same magic numbers.
AppDelegate.modelContainer non-optional + fatalError on init failure: matches Apple's sample-code pattern; surfaces container-init failures at the load site instead of as misleading "no persistent stores" crashes later. The no-tabs SwiftData scaffold drops the now-dead guard modelContainer != nil.
disableTestParallelism gated on (coreData || swiftData) && cloudKit: plain SwiftData (no CloudKit) has no shared-repository singleton race, so it no longer pays the serial-test-execution cost.
-quiet on every xcodebuild invocation in generated Makefiles; per-file compile output stays out of recipes, warnings/errors still surface.
ColorDeriver secondary/tertiary use an analogous palette (±30° hue shift) instead of triadic (+150°/+210°). Reads as "variants of the primary" instead of jarring complementaries.
Generated Localizable.xcstrings is multi-locale: when --locales declares more than one, each key emits a localizations entry per locale. Source-language entries are state: "translated"; non-source entries are state: "new".
Removed
--features snapKit and --features lookin: removed per the v0.3 deprecation. The auto-translating shim is gone; the CLI now raises a ValidationError listing the migration (snapKit → --use-packages SnapKit, lookin → --use-packages LookinServer). AppFeature.deprecatedPackageFeatureNames replaced by KnownPackages.removedFeatureAliases.
monolith add snapKit and monolith add lookin: removed. Existing projects retrofit via Xcode's native Add Package flow (URLs in KnownPackages.registry). monolith add lottie is unaffected.
ColorDeriver.DerivedPalette.photoBrowserBackground: every derived value was identical, making the dynamic-color wrapper pointless. LumiKit 0.9's LMKTheme ships a default; generated themes omit the override.
DesignSystem.MacWindow: see Changed; canonical home is AppConstants.MacWindow.
DataPublisher.swift sample singleton from the combine feature: no real consumers, no integration coverage. generateAsyncService() (the actual reference template for Task cancellation) stays; the combine feature now writes one file.
Tests
774 → 794 tests, 70 → 71 suites, zero regressions. New coverage spans --locales / --category flag plumbing, the 3-variant AppIcon skeleton, the SwiftData persistence demo test, and multi-locale xcstrings emission.