iOS client for Grain
grain.social
ios
photography
atproto
1name: Grain
2options:
3 bundleIdPrefix: social.grain
4 deploymentTarget:
5 iOS: "26.0"
6 xcodeVersion: "26.0"
7 generateEmptyDirectories: true
8
9settings:
10 base:
11 SWIFT_VERSION: "6.0"
12 DEVELOPMENT_TEAM: ${APPLE_TEAM_ID}
13 PRODUCT_NAME: ${BUNDLE_NAME}
14 configs:
15 Debug:
16 SWIFT_ACTIVE_COMPILATION_CONDITIONS: "DEBUG PRODUCTION_API"
17
18packages:
19 Nuke:
20 url: https://github.com/kean/Nuke
21 from: "12.0.0"
22 KeychainAccess:
23 url: https://github.com/kishikawakatsumi/KeychainAccess
24 from: "4.2.2"
25 SwiftyH3:
26 url: https://github.com/pawelmajcher/SwiftyH3
27 from: "0.5.0"
28
29targets:
30 Grain:
31 type: application
32 platform: iOS
33 sources:
34 - path: Grain
35 entitlements:
36 path: Grain/Grain.entitlements
37 properties:
38 aps-environment: production
39 com.apple.developer.associated-domains:
40 - applinks:grain.social
41 - webcredentials:grain.social
42 settings:
43 base:
44 INFOPLIST_FILE: Grain/Info.plist
45 PRODUCT_BUNDLE_IDENTIFIER: ${BUNDLE_ID}
46 PRODUCT_MODULE_NAME: Grain
47 TARGETED_DEVICE_FAMILY: "1"
48 MARKETING_VERSION: "1.0.0"
49 CURRENT_PROJECT_VERSION: "56"
50 CODE_SIGN_STYLE: Automatic
51 DEVELOPMENT_ASSET_PATHS: "\"$(SRCROOT)/Grain/Preview Content\""
52 ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: AccentColor
53 configs:
54 Debug:
55 CODE_SIGN_ENTITLEMENTS: Grain/Grain-Debug.entitlements
56 GRAIN_OS_LOG_LEVEL: Debug
57 Release:
58 GRAIN_OS_LOG_LEVEL: Default
59 dependencies:
60 - package: Nuke
61 product: Nuke
62 - package: Nuke
63 product: NukeUI
64 - package: KeychainAccess
65 - package: SwiftyH3
66 info:
67 path: Grain/Info.plist
68 properties:
69 CFBundleVersion: "$(CURRENT_PROJECT_VERSION)"
70 CFBundleShortVersionString: "$(MARKETING_VERSION)"
71 CFBundleURLTypes:
72 - CFBundleURLSchemes:
73 - grain
74 CFBundleIconName: AppIcon
75 UISupportedInterfaceOrientations:
76 - UIInterfaceOrientationPortrait
77 - UIInterfaceOrientationPortraitUpsideDown
78 - UIInterfaceOrientationLandscapeLeft
79 - UIInterfaceOrientationLandscapeRight
80 NSCameraUsageDescription: Grain needs camera access to take photos for your stories and galleries.
81 NSPhotoLibraryUsageDescription: Grain needs photo library access to select photos for your galleries and stories.
82 UIAppFonts:
83 - Syne-Variable.ttf
84 UILaunchScreen: {}
85 OSLogPreferences:
86 social.grain.grain:
87 DEFAULT-OPTIONS:
88 Level:
89 Enable: "$(GRAIN_OS_LOG_LEVEL)"
90 Persist: "$(GRAIN_OS_LOG_LEVEL)"
91 UIApplicationShortcutItems:
92 - UIApplicationShortcutItemType: social.grain.shortcut.createStory
93 UIApplicationShortcutItemTitle: Create Story
94 UIApplicationShortcutItemIconSymbolName: plus.circle
95 - UIApplicationShortcutItemType: social.grain.shortcut.createGallery
96 UIApplicationShortcutItemTitle: Create Post
97 UIApplicationShortcutItemIconSymbolName: plus.square.on.square
98
99 GrainTests:
100 type: bundle.unit-test
101 platform: iOS
102 sources:
103 - path: GrainTests
104 settings:
105 base:
106 GENERATE_INFOPLIST_FILE: YES
107 PRODUCT_NAME: GrainTests
108 PRODUCT_MODULE_NAME: GrainTests
109 TEST_HOST: $(BUILT_PRODUCTS_DIR)/$(BUNDLE_NAME).app/$(BUNDLE_NAME)
110 BUNDLE_LOADER: $(TEST_HOST)
111 dependencies:
112 - target: Grain
113
114schemes:
115 Grain:
116 build:
117 targets:
118 Grain:
119 - running
120 - testing
121 - profiling
122 - analyzing
123 - archiving
124 run:
125 config: Debug
126 test:
127 config: Debug
128 targets:
129 - GrainTests
130 profile:
131 config: Debug
132 analyze:
133 config: Debug
134 archive:
135 config: Release