name: Grain options: bundleIdPrefix: social.grain deploymentTarget: iOS: "26.0" xcodeVersion: "26.0" generateEmptyDirectories: true settings: base: SWIFT_VERSION: "6.0" DEVELOPMENT_TEAM: ${APPLE_TEAM_ID} PRODUCT_NAME: ${BUNDLE_NAME} # The OAuth callback scheme Info.plist registers. `just sim-next` sets # it to social.grain.next, beside NEXT_API. GRAIN_OAUTH_SCHEME: social.grain configs: Debug: SWIFT_ACTIVE_COMPILATION_CONDITIONS: "DEBUG PRODUCTION_API" packages: Nuke: url: https://github.com/kean/Nuke from: "12.0.0" KeychainAccess: url: https://github.com/kishikawakatsumi/KeychainAccess from: "4.2.2" SwiftyH3: url: https://github.com/pawelmajcher/SwiftyH3 from: "0.5.0" MapLibre: url: https://github.com/maplibre/maplibre-gl-native-distribution from: "6.29.0" targets: Grain: type: application platform: iOS sources: - path: Grain entitlements: path: Grain/Grain.entitlements properties: aps-environment: production com.apple.developer.associated-domains: - applinks:grain.social - webcredentials:grain.social settings: base: INFOPLIST_FILE: Grain/Info.plist PRODUCT_BUNDLE_IDENTIFIER: ${BUNDLE_ID} PRODUCT_MODULE_NAME: Grain TARGETED_DEVICE_FAMILY: "1" MARKETING_VERSION: "11" CURRENT_PROJECT_VERSION: "59" CODE_SIGN_STYLE: Automatic DEVELOPMENT_ASSET_PATHS: "\"$(SRCROOT)/Grain/Preview Content\"" ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: AccentColor configs: Debug: CODE_SIGN_ENTITLEMENTS: Grain/Grain-Debug.entitlements GRAIN_OS_LOG_LEVEL: Debug Release: GRAIN_OS_LOG_LEVEL: Default dependencies: - package: Nuke product: Nuke - package: Nuke product: NukeUI - package: KeychainAccess - package: SwiftyH3 - package: MapLibre info: path: Grain/Info.plist properties: CFBundleVersion: "$(CURRENT_PROJECT_VERSION)" CFBundleShortVersionString: "$(MARKETING_VERSION)" CFBundleURLTypes: - CFBundleURLName: social.grain.deeplink CFBundleURLSchemes: - grain - CFBundleURLName: social.grain.oauth CFBundleURLSchemes: - $(GRAIN_OAUTH_SCHEME) CFBundleIconName: AppIcon ITSAppUsesNonExemptEncryption: false UISupportedInterfaceOrientations: - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight NSCameraUsageDescription: Grain needs camera access to take photos for your stories and galleries. NSPhotoLibraryUsageDescription: Grain needs photo library access to select photos for your galleries and stories. UIAppFonts: - Syne-Variable.ttf UILaunchScreen: {} OSLogPreferences: social.grain.grain: DEFAULT-OPTIONS: Level: Enable: "$(GRAIN_OS_LOG_LEVEL)" Persist: "$(GRAIN_OS_LOG_LEVEL)" UIApplicationShortcutItems: - UIApplicationShortcutItemType: social.grain.shortcut.createStory UIApplicationShortcutItemTitle: Create Story UIApplicationShortcutItemIconSymbolName: plus.circle - UIApplicationShortcutItemType: social.grain.shortcut.createGallery UIApplicationShortcutItemTitle: Create Post UIApplicationShortcutItemIconSymbolName: plus.square.on.square GrainTests: type: bundle.unit-test platform: iOS sources: - path: GrainTests settings: base: GENERATE_INFOPLIST_FILE: YES PRODUCT_NAME: GrainTests PRODUCT_MODULE_NAME: GrainTests TEST_HOST: $(BUILT_PRODUCTS_DIR)/${BUNDLE_NAME}.app/${BUNDLE_NAME} BUNDLE_LOADER: $(TEST_HOST) dependencies: - target: Grain schemes: Grain: build: targets: Grain: - running - testing - profiling - analyzing - archiving run: config: Debug test: config: Debug gatherCoverageData: true coverageTargets: - Grain targets: - GrainTests profile: config: Debug analyze: config: Debug archive: config: Release