# Template: project.yml — XcodeGen source of truth # domain-pack: ios-app · component: scaffold # # XcodeGen genererer .xcodeproj fra denne fila. Aldri rediger project.pbxproj # direkte — det fører til merge-konflikter og inkonsistens. project.yml # committeres til git; .xcodeproj genereres lokalt (i .gitignore). # # Bruk: `xcodegen generate` etter endringer i project.yml eller filer # i target-mapper. # # Installer: `brew install xcodegen` # Docs: https://github.com/yonaskolb/XcodeGen # # Tilpass per app: # - bundleIdPrefix + PRODUCT_BUNDLE_IDENTIFIER # - DEVELOPMENT_TEAM (10-tegn fra Apple Developer Portal) # - INFOPLIST_KEY_* etter app-spesifikke permissions/features # - application-groups-identifier hvis widget/Live Activity-extension finnes name: MyApp # bytt til app-navn options: bundleIdPrefix: com.example # bytt til ditt reverse-domain deploymentTarget: iOS: "17.0" # se ADR-001-mønster — iOS 17 dekker >95 % aktive enheter xcodeVersion: "26.0" # iOS 26-SDK krav siden 2026-04-28 developmentLanguage: en # primær lokalisering settings: base: SWIFT_VERSION: "6.0" # Swift 6 strict concurrency anbefalt SUPPORTED_PLATFORMS: "iphoneos iphonesimulator" SUPPORTS_MACCATALYST: false TARGETED_DEVICE_FAMILY: "1" # iPhone-only; bytt til "1,2" for universal SWIFT_STRICT_CONCURRENCY: complete targets: MyApp: type: application platform: iOS sources: - path: MyApp excludes: - "**/*.template" resources: - path: MyApp/Resources/Assets.xcassets - path: MyApp/Resources/PrivacyInfo.xcprivacy # se scaffold/PrivacyInfo.xcprivacy entitlements: # fjern hvis ingen App Group eller annet entitlement path: MyApp/MyApp.entitlements properties: com.apple.security.application-groups: - group.com.example.myapp settings: base: PRODUCT_BUNDLE_IDENTIFIER: com.example.myapp CURRENT_PROJECT_VERSION: 1 MARKETING_VERSION: "0.1.0" CODE_SIGN_STYLE: Automatic DEVELOPMENT_TEAM: "" # 10-tegn fra Apple Developer Portal ENABLE_PREVIEWS: true GENERATE_INFOPLIST_FILE: true INFOPLIST_KEY_CFBundleDisplayName: "My App" # Per-permission usage descriptions: # INFOPLIST_KEY_NSLocationWhenInUseUsageDescription: "..." # INFOPLIST_KEY_NSCameraUsageDescription: "..." # INFOPLIST_KEY_NSMicrophoneUsageDescription: "..." # Live Activities (hoved-appens Info.plist, IKKE extension): # INFOPLIST_KEY_NSSupportsLiveActivities: true INFOPLIST_KEY_UIApplicationSceneManifest_Generation: true INFOPLIST_KEY_UILaunchScreen_Generation: true INFOPLIST_KEY_UISupportedInterfaceOrientations: UIInterfaceOrientationPortrait INFOPLIST_KEY_ITSAppUsesNonExemptEncryption: false # standard-HTTPS unntatt; sett true ved tilpasset krypto ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: AccentColor SWIFT_EMIT_LOC_STRINGS: true configs: Debug: ENABLE_TESTABILITY: true MyAppTests: type: bundle.unit-test platform: iOS sources: - path: MyAppTests dependencies: - target: MyApp settings: base: PRODUCT_BUNDLE_IDENTIFIER: com.example.myapp.tests GENERATE_INFOPLIST_FILE: true schemes: MyApp: build: targets: MyApp: all MyAppTests: [test] run: config: Debug test: config: Debug targets: - MyAppTests profile: config: Release analyze: config: Debug archive: config: Release