- Use Xcode at
/Applications/Xcode.app/, if not found, then try/Applications/Xcode-16.4.0.app/ - Must compile for macOS 12. Use
#available/@availableto adopt newer APIs (e.g. macOS 13, 14, 26) while maintaining macOS 12 compatibility, with graceful fallbacks for older versions. - AI related features debug log
planet-ai-debug.logcan be found at~/Library/Containers/xyz.planetable.Planet/Data/tmp/planet-ai-debug.log - Sandbox-safe app logs should be written with
NSTemporaryDirectory(); in Planet this resolves under~/Library/Containers/xyz.planetable.Planet/Data/tmp/(for exampleplanet-ai-debug.log,video.log) - Planet's sandboxed templates are stored under
~/Library/Containers/xyz.planetable.Planet/Data/Documents/Planet/Templates - For broken SwiftPM/Xcode derived data under
/tmp/planet-derived(for example missingSparkle.xcframework), remove/tmp/planet-derived, runxcodebuild -resolvePackageDependencies -onlyUsePackageVersionsFromResolvedFile -project Planet.xcodeproj -scheme "Planet" -derivedDataPath /tmp/planet-derived, then rebuild - When modifying Xcode project files (.xcodeproj/project.pbxproj), use the
xcodeprojRuby gem instead of editing the pbxproj file directly. - When editing or creating files under
Technotes/, do not manually hard-wrap prose; let the editor soft-wrap paragraphs and list items. - Build-time feature flags are controlled through xcconfig settings, typed runtime checks in
Planet/FeatureFlags.swift, and documented inTechnotes/FeatureFlags.md; usePlanet/local.xcconfigfor machine-local overrides.