@ondeinference / klepon / commits / 3aca702

WIP adding watchOS support

Seto Elkahfi committed May 14, 2026 at 15:51 UTC 3aca70251d98258b67d9ee6dfd6d8b3d810d06e6
24 files changed +864 -147
Klepon.xcodeproj/project.pbxproj
+463 -134
@@ -7,141 +7,456 @@
7 objects = {
8
9 /* Begin PBXBuildFile section */
10 - 8AA60E2D2F56094200531855 /* Onde in Frameworks */ = {isa = PBXBuildFile; productRef = 8AA60E2C2F56094200531855 /* Onde */; };
10 + 019B658F26ABE2706231EC9E /* GuideEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A0935AE4B398B281758834 /* GuideEntry.swift */; };
11 + 05BF0404B7030EDCD3D8C357 /* GuideArtworkView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F2850226B4B05FF758C1F93 /* GuideArtworkView.swift */; };
12 + 0977CD6BFFDBDBE3B7795924 /* collections.json in Resources */ = {isa = PBXBuildFile; fileRef = 1FDDB0F88FF430ABD679AD89 /* collections.json */; };
13 + 0D685E35EE50C926DC6FBE4C /* KleponChip.swift in Sources */ = {isa = PBXBuildFile; fileRef = B83C4F3C8688072191AA16C6 /* KleponChip.swift */; };
14 + 0E69E79C5FADF1633FE3D63F /* KleponColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C675ABBBA25BBA25A8DE29BE /* KleponColor.swift */; };
15 + 14B7CE6E6A0EB12B709F7B55 /* KleponTypography.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD520C870387E82E9A1533C2 /* KleponTypography.swift */; };
16 + 1704DDB60B1E23057C0E1094 /* GuideAnswerService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3719031080B59898133810F7 /* GuideAnswerService.swift */; };
17 + 19E282A6347C588E17778195 /* DiscoverView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4545DC84863788D55B94D31A /* DiscoverView.swift */; };
18 + 1F95A454A641C829BD304A89 /* GuideCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = F17C0DB3BD620AD9F55B7631 /* GuideCollection.swift */; };
19 + 1FF490E985C31BB08DA29AFF /* guide_entries.json in Resources */ = {isa = PBXBuildFile; fileRef = 248F359109A08A60F792C42D /* guide_entries.json */; };
20 + 200AE94E7E7E73B5C83869DD /* FavoritesStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0C4C22A5134DB058E41F4 /* FavoritesStore.swift */; };
21 + 23E22EC56BE48A20BD1229F7 /* AnswerCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = B02B0EA4B8BA09604D62A62B /* AnswerCard.swift */; };
22 + 2AB57009245E1BABD1156AFA /* GuideDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7541983FF7CE190C0663294D /* GuideDetailView.swift */; };
23 + 3349FB46691C944112401D6E /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42E152344B39D1D77F1B3943 /* SettingsView.swift */; };
24 + 41F8E173B82809AF87E1B297 /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13418896CA28250CEEE7592E /* OnboardingView.swift */; };
25 + 4609C70D9FB74C55B9DBE832 /* KleponActionButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52DD909BB2EF68103CB46EDA /* KleponActionButton.swift */; };
26 + 478FFEBDAA7729189B429A6D /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7E886BAB66E828950DBED52 /* SearchView.swift */; };
27 + 4D63E231AC9630B2C225DF22 /* WatchHomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDBB4F5D4C98D036AC52E193 /* WatchHomeView.swift */; };
28 + 67368394088AA3045EBA14A5 /* OndeEnvironmentBootstrap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B499D3BF7AC80D31907D87F /* OndeEnvironmentBootstrap.swift */; };
29 + 7F1E744AAE60BF1FB132D66C /* KleponCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 868C58098969278A542893F3 /* KleponCard.swift */; };
30 + 8401F9C0FA140DC2CF8BA248 /* AppState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5AF291E9C2E66209377138E6 /* AppState.swift */; };
31 + 8804CFBAD707E1FED63BF214 /* SearchService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6235AD6792F25476E2A508F0 /* SearchService.swift */; };
32 + 910A84B3F28B3F79871FF60E /* SectionHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC438ECC335175B18778C682 /* SectionHeader.swift */; };
33 + 926AB007EBCD5315EE77E2A6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AF79D8DD27B9CA485140C934 /* Assets.xcassets */; };
34 + 99071E0CB9F44857C0BFC8C9 /* SavedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98AA2E425D5454602F78D628 /* SavedView.swift */; };
35 + 9ECA989E9DCDF08A2D7C29A3 /* AppRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C82874C90A5FAA32D1B52EB7 /* AppRootView.swift */; };
36 + A54D028D8F35FE002B0ACA90 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 054656155630B064F785B0D7 /* Assets.xcassets */; };
37 + A7001D58E0F2B1BD5F52FF8A /* Onde in Frameworks */ = {isa = PBXBuildFile; productRef = 855EE8DF62A7820E77C05D1A /* Onde */; };
38 + B1F1D1A453150D3BBB0146EF /* RecentlyViewedStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = E45070309D2C7058BAA44CD2 /* RecentlyViewedStore.swift */; };
39 + B34377720179454F9B9184C5 /* OndeGuideEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF0D53A5F9D5897E15506C20 /* OndeGuideEngine.swift */; };
40 + C709C82E7F0BCF398BCD9C2F /* ContentRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2891A1AFBB59928FC5B1E66 /* ContentRepository.swift */; };
41 + D99AAE1CDE51139840A52607 /* KleponMetadataRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7E1C50BFBE2EF5F37941590 /* KleponMetadataRow.swift */; };
42 + DA915BA8B2F732E7D62CF936 /* EmptyStateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85E7B5E3D9A1906C2FED3032 /* EmptyStateView.swift */; };
43 + F1431179B54CEB23FFFCB2AE /* KleponApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEDE2A1E73EB15970A17A894 /* KleponApp.swift */; };
44 + FA423A76BE098A9911044246 /* AskSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEC6E7DC56DD8E1459EFC892 /* AskSheetView.swift */; };
45 + FD0E1BA888E3CE73875D58FF /* RecentSearchStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 643D52BCEDF66CC8FE8A1234 /* RecentSearchStore.swift */; };
46 /* End PBXBuildFile section */
47
48 /* Begin PBXFileReference section */
14 - 8AA60E1D2F56093100531855 /* Klepon.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Klepon.app; sourceTree = BUILT_PRODUCTS_DIR; };
49 + 054656155630B064F785B0D7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
50 + 0BC0C4C22A5134DB058E41F4 /* FavoritesStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoritesStore.swift; sourceTree = "<group>"; };
51 + 13418896CA28250CEEE7592E /* OnboardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingView.swift; sourceTree = "<group>"; };
52 + 1FDDB0F88FF430ABD679AD89 /* collections.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = collections.json; sourceTree = "<group>"; };
53 + 248F359109A08A60F792C42D /* guide_entries.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = guide_entries.json; sourceTree = "<group>"; };
54 + 2B499D3BF7AC80D31907D87F /* OndeEnvironmentBootstrap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OndeEnvironmentBootstrap.swift; sourceTree = "<group>"; };
55 + 3719031080B59898133810F7 /* GuideAnswerService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GuideAnswerService.swift; sourceTree = "<group>"; };
56 + 42E152344B39D1D77F1B3943 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = "<group>"; };
57 + 4545DC84863788D55B94D31A /* DiscoverView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DiscoverView.swift; sourceTree = "<group>"; };
58 + 52DD909BB2EF68103CB46EDA /* KleponActionButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KleponActionButton.swift; sourceTree = "<group>"; };
59 + 5AF291E9C2E66209377138E6 /* AppState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppState.swift; sourceTree = "<group>"; };
60 + 5DE91827A635C0B0B72690EC /* Klepon.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Klepon.app; sourceTree = BUILT_PRODUCTS_DIR; };
61 + 6235AD6792F25476E2A508F0 /* SearchService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchService.swift; sourceTree = "<group>"; };
62 + 643D52BCEDF66CC8FE8A1234 /* RecentSearchStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecentSearchStore.swift; sourceTree = "<group>"; };
63 + 7541983FF7CE190C0663294D /* GuideDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GuideDetailView.swift; sourceTree = "<group>"; };
64 + 7F2850226B4B05FF758C1F93 /* GuideArtworkView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GuideArtworkView.swift; sourceTree = "<group>"; };
65 + 85E7B5E3D9A1906C2FED3032 /* EmptyStateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmptyStateView.swift; sourceTree = "<group>"; };
66 + 868C58098969278A542893F3 /* KleponCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KleponCard.swift; sourceTree = "<group>"; };
67 + 98AA2E425D5454602F78D628 /* SavedView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SavedView.swift; sourceTree = "<group>"; };
68 + 9E76510CC840CE068B0FC381 /* Klepon Watch.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Klepon Watch.app"; sourceTree = BUILT_PRODUCTS_DIR; };
69 + A4400AB0AB8D245325A00BA3 /* Klepon.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Klepon.entitlements; sourceTree = "<group>"; };
70 + A7E1C50BFBE2EF5F37941590 /* KleponMetadataRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KleponMetadataRow.swift; sourceTree = "<group>"; };
71 + AF79D8DD27B9CA485140C934 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
72 + B02B0EA4B8BA09604D62A62B /* AnswerCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnswerCard.swift; sourceTree = "<group>"; };
73 + B83C4F3C8688072191AA16C6 /* KleponChip.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KleponChip.swift; sourceTree = "<group>"; };
74 + BF0D53A5F9D5897E15506C20 /* OndeGuideEngine.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OndeGuideEngine.swift; sourceTree = "<group>"; };
75 + C0A0935AE4B398B281758834 /* GuideEntry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GuideEntry.swift; sourceTree = "<group>"; };
76 + C675ABBBA25BBA25A8DE29BE /* KleponColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KleponColor.swift; sourceTree = "<group>"; };
77 + C82874C90A5FAA32D1B52EB7 /* AppRootView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppRootView.swift; sourceTree = "<group>"; };
78 + CD520C870387E82E9A1533C2 /* KleponTypography.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KleponTypography.swift; sourceTree = "<group>"; };
79 + DEDE2A1E73EB15970A17A894 /* KleponApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KleponApp.swift; sourceTree = "<group>"; };
80 + E45070309D2C7058BAA44CD2 /* RecentlyViewedStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecentlyViewedStore.swift; sourceTree = "<group>"; };
81 + E7E886BAB66E828950DBED52 /* SearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchView.swift; sourceTree = "<group>"; };
82 + EDBB4F5D4C98D036AC52E193 /* WatchHomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchHomeView.swift; sourceTree = "<group>"; };
83 + EEC6E7DC56DD8E1459EFC892 /* AskSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AskSheetView.swift; sourceTree = "<group>"; };
84 + F17C0DB3BD620AD9F55B7631 /* GuideCollection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GuideCollection.swift; sourceTree = "<group>"; };
85 + F2891A1AFBB59928FC5B1E66 /* ContentRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentRepository.swift; sourceTree = "<group>"; };
86 + FC438ECC335175B18778C682 /* SectionHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionHeader.swift; sourceTree = "<group>"; };
87 /* End PBXFileReference section */
88
17 -/* Begin PBXFileSystemSynchronizedRootGroup section */
18 - 8AA60E1F2F56093100531855 /* Klepon */ = {
19 - isa = PBXFileSystemSynchronizedRootGroup;
20 - path = Klepon;
21 - sourceTree = "<group>";
22 - };
23 -/* End PBXFileSystemSynchronizedRootGroup section */
24 -
89 /* Begin PBXFrameworksBuildPhase section */
26 - 8AA60E1A2F56093100531855 /* Frameworks */ = {
90 + F72797E506E8FA89264A5C68 /* Frameworks */ = {
91 isa = PBXFrameworksBuildPhase;
92 buildActionMask = 2147483647;
93 files = (
30 - 8AA60E2D2F56094200531855 /* Onde in Frameworks */,
94 + A7001D58E0F2B1BD5F52FF8A /* Onde in Frameworks */,
95 );
96 runOnlyForDeploymentPostprocessing = 0;
97 };
98 /* End PBXFrameworksBuildPhase section */
99
100 /* Begin PBXGroup section */
37 - 8AA60E142F56093100531855 = {
101 + 1F8B5D6327376068DBCA9694 /* Settings */ = {
102 isa = PBXGroup;
103 children = (
40 - 8AA60E1F2F56093100531855 /* Klepon */,
41 - 8AA60E1E2F56093100531855 /* Products */,
104 + 42E152344B39D1D77F1B3943 /* SettingsView.swift */,
105 );
106 + path = Settings;
107 sourceTree = "<group>";
108 };
45 - 8AA60E1E2F56093100531855 /* Products */ = {
109 + 3F9369D339C14126AB44D720 /* Products */ = {
110 isa = PBXGroup;
111 children = (
48 - 8AA60E1D2F56093100531855 /* Klepon.app */,
112 + 9E76510CC840CE068B0FC381 /* Klepon Watch.app */,
113 + 5DE91827A635C0B0B72690EC /* Klepon.app */,
114 );
115 name = Products;
116 sourceTree = "<group>";
117 };
118 + 42AB6F4BEF2FBE4B2DD5DF8A /* Onboarding */ = {
119 + isa = PBXGroup;
120 + children = (
121 + 13418896CA28250CEEE7592E /* OnboardingView.swift */,
122 + );
123 + path = Onboarding;
124 + sourceTree = "<group>";
125 + };
126 + 472BF5D47BEE4AF1EC80B645 /* KleponWatch */ = {
127 + isa = PBXGroup;
128 + children = (
129 + 054656155630B064F785B0D7 /* Assets.xcassets */,
130 + EDBB4F5D4C98D036AC52E193 /* WatchHomeView.swift */,
131 + );
132 + path = KleponWatch;
133 + sourceTree = "<group>";
134 + };
135 + 584B54256B10CB0A08CF9EBB /* Features */ = {
136 + isa = PBXGroup;
137 + children = (
138 + 697B7AA523BEA3B29E95A3B5 /* Ask */,
139 + AEF2506044225CA328483416 /* Detail */,
140 + 83D0CE66190EBD7B3F116869 /* Discover */,
141 + 42AB6F4BEF2FBE4B2DD5DF8A /* Onboarding */,
142 + 71FB816EF387AA327D83405E /* Saved */,
143 + 6706F0AAED7087EF21DB1448 /* Search */,
144 + 1F8B5D6327376068DBCA9694 /* Settings */,
145 + );
146 + path = Features;
147 + sourceTree = "<group>";
148 + };
149 + 6706F0AAED7087EF21DB1448 /* Search */ = {
150 + isa = PBXGroup;
151 + children = (
152 + E7E886BAB66E828950DBED52 /* SearchView.swift */,
153 + );
154 + path = Search;
155 + sourceTree = "<group>";
156 + };
157 + 697B7AA523BEA3B29E95A3B5 /* Ask */ = {
158 + isa = PBXGroup;
159 + children = (
160 + EEC6E7DC56DD8E1459EFC892 /* AskSheetView.swift */,
161 + );
162 + path = Ask;
163 + sourceTree = "<group>";
164 + };
165 + 71FB816EF387AA327D83405E /* Saved */ = {
166 + isa = PBXGroup;
167 + children = (
168 + 98AA2E425D5454602F78D628 /* SavedView.swift */,
169 + );
170 + path = Saved;
171 + sourceTree = "<group>";
172 + };
173 + 7FFF66D137216AB43C7376AF /* App */ = {
174 + isa = PBXGroup;
175 + children = (
176 + C82874C90A5FAA32D1B52EB7 /* AppRootView.swift */,
177 + 5AF291E9C2E66209377138E6 /* AppState.swift */,
178 + DEDE2A1E73EB15970A17A894 /* KleponApp.swift */,
179 + );
180 + path = App;
181 + sourceTree = "<group>";
182 + };
183 + 82A3750644C21DE5F301405D /* AI */ = {
184 + isa = PBXGroup;
185 + children = (
186 + 3719031080B59898133810F7 /* GuideAnswerService.swift */,
187 + 2B499D3BF7AC80D31907D87F /* OndeEnvironmentBootstrap.swift */,
188 + BF0D53A5F9D5897E15506C20 /* OndeGuideEngine.swift */,
189 + );
190 + path = AI;
191 + sourceTree = "<group>";
192 + };
193 + 83D0CE66190EBD7B3F116869 /* Discover */ = {
194 + isa = PBXGroup;
195 + children = (
196 + 4545DC84863788D55B94D31A /* DiscoverView.swift */,
197 + );
198 + path = Discover;
199 + sourceTree = "<group>";
200 + };
201 + 843428B433FCDB8678AFEF36 /* Domain */ = {
202 + isa = PBXGroup;
203 + children = (
204 + B02B0EA4B8BA09604D62A62B /* AnswerCard.swift */,
205 + F17C0DB3BD620AD9F55B7631 /* GuideCollection.swift */,
206 + C0A0935AE4B398B281758834 /* GuideEntry.swift */,
207 + );
208 + path = Domain;
209 + sourceTree = "<group>";
210 + };
211 + 8FCB4D289A8BA31F1213435D /* Resources */ = {
212 + isa = PBXGroup;
213 + children = (
214 + D31457265A488544F9D32DE0 /* Content */,
215 + );
216 + path = Resources;
217 + sourceTree = "<group>";
218 + };
219 + AEF2506044225CA328483416 /* Detail */ = {
220 + isa = PBXGroup;
221 + children = (
222 + 7541983FF7CE190C0663294D /* GuideDetailView.swift */,
223 + );
224 + path = Detail;
225 + sourceTree = "<group>";
226 + };
227 + BB2EA22C8AF6FE8BA4B968E0 /* DesignSystem */ = {
228 + isa = PBXGroup;
229 + children = (
230 + 85E7B5E3D9A1906C2FED3032 /* EmptyStateView.swift */,
231 + 7F2850226B4B05FF758C1F93 /* GuideArtworkView.swift */,
232 + 52DD909BB2EF68103CB46EDA /* KleponActionButton.swift */,
233 + 868C58098969278A542893F3 /* KleponCard.swift */,
234 + B83C4F3C8688072191AA16C6 /* KleponChip.swift */,
235 + C675ABBBA25BBA25A8DE29BE /* KleponColor.swift */,
236 + A7E1C50BFBE2EF5F37941590 /* KleponMetadataRow.swift */,
237 + CD520C870387E82E9A1533C2 /* KleponTypography.swift */,
238 + FC438ECC335175B18778C682 /* SectionHeader.swift */,
239 + );
240 + path = DesignSystem;
241 + sourceTree = "<group>";
242 + };
243 + D1EEA7DEE6B09AE3C4230ACE /* Data */ = {
244 + isa = PBXGroup;
245 + children = (
246 + F2891A1AFBB59928FC5B1E66 /* ContentRepository.swift */,
247 + 0BC0C4C22A5134DB058E41F4 /* FavoritesStore.swift */,
248 + E45070309D2C7058BAA44CD2 /* RecentlyViewedStore.swift */,
249 + 643D52BCEDF66CC8FE8A1234 /* RecentSearchStore.swift */,
250 + 6235AD6792F25476E2A508F0 /* SearchService.swift */,
251 + );
252 + path = Data;
253 + sourceTree = "<group>";
254 + };
255 + D31457265A488544F9D32DE0 /* Content */ = {
256 + isa = PBXGroup;
257 + children = (
258 + 1FDDB0F88FF430ABD679AD89 /* collections.json */,
259 + 248F359109A08A60F792C42D /* guide_entries.json */,
260 + );
261 + path = Content;
262 + sourceTree = "<group>";
263 + };
264 + D9EBF621A6F1A1729FE26516 = {
265 + isa = PBXGroup;
266 + children = (
267 + EA4DFA44FE8BB01979ADB187 /* Klepon */,
268 + 472BF5D47BEE4AF1EC80B645 /* KleponWatch */,
269 + 3F9369D339C14126AB44D720 /* Products */,
270 + );
271 + sourceTree = "<group>";
272 + };
273 + EA4DFA44FE8BB01979ADB187 /* Klepon */ = {
274 + isa = PBXGroup;
275 + children = (
276 + AF79D8DD27B9CA485140C934 /* Assets.xcassets */,
277 + A4400AB0AB8D245325A00BA3 /* Klepon.entitlements */,
278 + 82A3750644C21DE5F301405D /* AI */,
279 + 7FFF66D137216AB43C7376AF /* App */,
280 + D1EEA7DEE6B09AE3C4230ACE /* Data */,
281 + BB2EA22C8AF6FE8BA4B968E0 /* DesignSystem */,
282 + 843428B433FCDB8678AFEF36 /* Domain */,
283 + 584B54256B10CB0A08CF9EBB /* Features */,
284 + 8FCB4D289A8BA31F1213435D /* Resources */,
285 + );
286 + path = Klepon;
287 + sourceTree = "<group>";
288 + };
289 /* End PBXGroup section */
290
291 /* Begin PBXNativeTarget section */
56 - 8AA60E1C2F56093100531855 /* Klepon */ = {
292 + 2ADB11F6C1D51B9F9A9DB15F /* Klepon */ = {
293 isa = PBXNativeTarget;
58 - buildConfigurationList = 8AA60E282F56093200531855 /* Build configuration list for PBXNativeTarget "Klepon" */;
294 + buildConfigurationList = E1E5A3DF58C9552EE814CC23 /* Build configuration list for PBXNativeTarget "Klepon" */;
295 buildPhases = (
60 - 8AA60E192F56093100531855 /* Sources */,
61 - 8AA60E1A2F56093100531855 /* Frameworks */,
62 - 8AA60E1B2F56093100531855 /* Resources */,
296 + 142193A63A26ACC180E1EB37 /* Sources */,
297 + BC5A6BBAFB4A1B61000065D1 /* Resources */,
298 + F72797E506E8FA89264A5C68 /* Frameworks */,
299 );
300 buildRules = (
301 );
302 dependencies = (
303 );
68 - fileSystemSynchronizedGroups = (
69 - 8AA60E1F2F56093100531855 /* Klepon */,
70 - );
304 name = Klepon;
305 packageProductDependencies = (
73 - 8AA60E2C2F56094200531855 /* Onde */,
306 + 855EE8DF62A7820E77C05D1A /* Onde */,
307 );
308 productName = Klepon;
76 - productReference = 8AA60E1D2F56093100531855 /* Klepon.app */;
309 + productReference = 5DE91827A635C0B0B72690EC /* Klepon.app */;
310 + productType = "com.apple.product-type.application";
311 + };
312 + E8CEBF52617721AEE450A7CF /* Klepon Watch */ = {
313 + isa = PBXNativeTarget;
314 + buildConfigurationList = 07A758477E97CF9254DDBA82 /* Build configuration list for PBXNativeTarget "Klepon Watch" */;
315 + buildPhases = (
316 + 57F190B6EB353A926A214B19 /* Sources */,
317 + 0DEE2337CA5E6D48C9C110A2 /* Resources */,
318 + );
319 + buildRules = (
320 + );
321 + dependencies = (
322 + );
323 + name = "Klepon Watch";
324 + packageProductDependencies = (
325 + );
326 + productName = "Klepon Watch";
327 + productReference = 9E76510CC840CE068B0FC381 /* Klepon Watch.app */;
328 productType = "com.apple.product-type.application";
329 };
330 /* End PBXNativeTarget section */
331
332 /* Begin PBXProject section */
82 - 8AA60E152F56093100531855 /* Project object */ = {
333 + 05A5707BDA883282DEB132FF /* Project object */ = {
334 isa = PBXProject;
335 attributes = {
85 - BuildIndependentTargetsInParallel = 1;
86 - LastSwiftUpdateCheck = 2620;
87 - LastUpgradeCheck = 2620;
88 - TargetAttributes = {
89 - 8AA60E1C2F56093100531855 = {
90 - CreatedOnToolsVersion = 26.2;
91 - };
92 - };
336 + BuildIndependentTargetsInParallel = YES;
337 + LastUpgradeCheck = 2600;
338 };
94 - buildConfigurationList = 8AA60E182F56093100531855 /* Build configuration list for PBXProject "Klepon" */;
339 + buildConfigurationList = 8911E6C6F25C3A4F99870749 /* Build configuration list for PBXProject "Klepon" */;
340 developmentRegion = en;
341 hasScannedForEncodings = 0;
342 knownRegions = (
98 - en,
343 Base,
344 + en,
345 );
101 - mainGroup = 8AA60E142F56093100531855;
346 + mainGroup = D9EBF621A6F1A1729FE26516;
347 minimizedProjectReferenceProxies = 1;
348 packageReferences = (
104 - 8AB50B362F82BD7700CE1848 /* XCRemoteSwiftPackageReference "onde-swift" */,
349 + AD8C734FB461604D5793769C /* XCRemoteSwiftPackageReference "onde-swift" */,
350 );
351 preferredProjectObjectVersion = 77;
107 - productRefGroup = 8AA60E1E2F56093100531855 /* Products */;
352 + productRefGroup = 3F9369D339C14126AB44D720 /* Products */;
353 projectDirPath = "";
354 projectRoot = "";
355 targets = (
111 - 8AA60E1C2F56093100531855 /* Klepon */,
356 + 2ADB11F6C1D51B9F9A9DB15F /* Klepon */,
357 + E8CEBF52617721AEE450A7CF /* Klepon Watch */,
358 );
359 };
360 /* End PBXProject section */
361
362 /* Begin PBXResourcesBuildPhase section */
117 - 8AA60E1B2F56093100531855 /* Resources */ = {
363 + 0DEE2337CA5E6D48C9C110A2 /* Resources */ = {
364 + isa = PBXResourcesBuildPhase;
365 + buildActionMask = 2147483647;
366 + files = (
367 + A54D028D8F35FE002B0ACA90 /* Assets.xcassets in Resources */,
368 + );
369 + runOnlyForDeploymentPostprocessing = 0;
370 + };
371 + BC5A6BBAFB4A1B61000065D1 /* Resources */ = {
372 isa = PBXResourcesBuildPhase;
373 buildActionMask = 2147483647;
374 files = (
375 + 926AB007EBCD5315EE77E2A6 /* Assets.xcassets in Resources */,
376 + 0977CD6BFFDBDBE3B7795924 /* collections.json in Resources */,
377 + 1FF490E985C31BB08DA29AFF /* guide_entries.json in Resources */,
378 );
379 runOnlyForDeploymentPostprocessing = 0;
380 };
381 /* End PBXResourcesBuildPhase section */
382
383 /* Begin PBXSourcesBuildPhase section */
127 - 8AA60E192F56093100531855 /* Sources */ = {
384 + 142193A63A26ACC180E1EB37 /* Sources */ = {
385 isa = PBXSourcesBuildPhase;
386 buildActionMask = 2147483647;
387 files = (
388 + 23E22EC56BE48A20BD1229F7 /* AnswerCard.swift in Sources */,
389 + 9ECA989E9DCDF08A2D7C29A3 /* AppRootView.swift in Sources */,
390 + 8401F9C0FA140DC2CF8BA248 /* AppState.swift in Sources */,
391 + FA423A76BE098A9911044246 /* AskSheetView.swift in Sources */,
392 + C709C82E7F0BCF398BCD9C2F /* ContentRepository.swift in Sources */,
393 + 19E282A6347C588E17778195 /* DiscoverView.swift in Sources */,
394 + DA915BA8B2F732E7D62CF936 /* EmptyStateView.swift in Sources */,
395 + 200AE94E7E7E73B5C83869DD /* FavoritesStore.swift in Sources */,
396 + 1704DDB60B1E23057C0E1094 /* GuideAnswerService.swift in Sources */,
397 + 05BF0404B7030EDCD3D8C357 /* GuideArtworkView.swift in Sources */,
398 + 1F95A454A641C829BD304A89 /* GuideCollection.swift in Sources */,
399 + 2AB57009245E1BABD1156AFA /* GuideDetailView.swift in Sources */,
400 + 019B658F26ABE2706231EC9E /* GuideEntry.swift in Sources */,
401 + 4609C70D9FB74C55B9DBE832 /* KleponActionButton.swift in Sources */,
402 + F1431179B54CEB23FFFCB2AE /* KleponApp.swift in Sources */,
403 + 7F1E744AAE60BF1FB132D66C /* KleponCard.swift in Sources */,
404 + 0D685E35EE50C926DC6FBE4C /* KleponChip.swift in Sources */,
405 + 0E69E79C5FADF1633FE3D63F /* KleponColor.swift in Sources */,
406 + D99AAE1CDE51139840A52607 /* KleponMetadataRow.swift in Sources */,
407 + 14B7CE6E6A0EB12B709F7B55 /* KleponTypography.swift in Sources */,
408 + 41F8E173B82809AF87E1B297 /* OnboardingView.swift in Sources */,
409 + 67368394088AA3045EBA14A5 /* OndeEnvironmentBootstrap.swift in Sources */,
410 + B34377720179454F9B9184C5 /* OndeGuideEngine.swift in Sources */,
411 + FD0E1BA888E3CE73875D58FF /* RecentSearchStore.swift in Sources */,
412 + B1F1D1A453150D3BBB0146EF /* RecentlyViewedStore.swift in Sources */,
413 + 99071E0CB9F44857C0BFC8C9 /* SavedView.swift in Sources */,
414 + 8804CFBAD707E1FED63BF214 /* SearchService.swift in Sources */,
415 + 478FFEBDAA7729189B429A6D /* SearchView.swift in Sources */,
416 + 910A84B3F28B3F79871FF60E /* SectionHeader.swift in Sources */,
417 + 3349FB46691C944112401D6E /* SettingsView.swift in Sources */,
418 + );
419 + runOnlyForDeploymentPostprocessing = 0;
420 + };
421 + 57F190B6EB353A926A214B19 /* Sources */ = {
422 + isa = PBXSourcesBuildPhase;
423 + buildActionMask = 2147483647;
424 + files = (
425 + 4D63E231AC9630B2C225DF22 /* WatchHomeView.swift in Sources */,
426 );
427 runOnlyForDeploymentPostprocessing = 0;
428 };
429 /* End PBXSourcesBuildPhase section */
430
431 /* Begin XCBuildConfiguration section */
137 - 8AA60E262F56093200531855 /* Debug */ = {
432 + 57B34C7365523CA3F80ED770 /* Debug */ = {
433 + isa = XCBuildConfiguration;
434 + buildSettings = {
435 + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
436 + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
437 + CURRENT_PROJECT_VERSION = 1;
438 + ENABLE_USER_SCRIPT_SANDBOXING = YES;
439 + "EXCLUDED_ARCHS[sdk=watchsimulator*]" = x86_64;
440 + GENERATE_INFOPLIST_FILE = YES;
441 + INFOPLIST_KEY_WKWatchOnly = YES;
442 + MARKETING_VERSION = 1.0;
443 + PRODUCT_BUNDLE_IDENTIFIER = ai.splitfire.klepon.watchkitapp;
444 + PRODUCT_NAME = "Klepon Watch";
445 + SDKROOT = watchos;
446 + SKIP_INSTALL = YES;
447 + SWIFT_OPTIMIZATION_LEVEL = "-Onone";
448 + TARGETED_DEVICE_FAMILY = 4;
449 + };
450 + name = Debug;
451 + };
452 + 850753164F664131E0E37EAE /* Release */ = {
453 isa = XCBuildConfiguration;
454 buildSettings = {
455 ALWAYS_SEARCH_USER_PATHS = NO;
141 - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
456 CLANG_ANALYZER_NONNULL = YES;
457 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
144 - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
458 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
459 + CLANG_CXX_LIBRARY = "libc++";
460 CLANG_ENABLE_MODULES = YES;
461 CLANG_ENABLE_OBJC_ARC = YES;
462 CLANG_ENABLE_OBJC_WEAK = YES;
@@ -168,19 +483,11 @@
483 CLANG_WARN_UNREACHABLE_CODE = YES;
484 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
485 COPY_PHASE_STRIP = NO;
171 - DEBUG_INFORMATION_FORMAT = dwarf;
172 - DEVELOPMENT_TEAM = "";
486 + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
487 + ENABLE_NS_ASSERTIONS = NO;
488 ENABLE_STRICT_OBJC_MSGSEND = YES;
174 - ENABLE_TESTABILITY = YES;
175 - ENABLE_USER_SCRIPT_SANDBOXING = YES;
176 - GCC_C_LANGUAGE_STANDARD = gnu17;
177 - GCC_DYNAMIC_NO_PIC = NO;
489 + GCC_C_LANGUAGE_STANDARD = gnu11;
490 GCC_NO_COMMON_BLOCKS = YES;
179 - GCC_OPTIMIZATION_LEVEL = 0;
180 - GCC_PREPROCESSOR_DEFINITIONS = (
181 - "DEBUG=1",
182 - "$(inherited)",
183 - );
491 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
492 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
493 GCC_WARN_UNDECLARED_SELECTOR = YES;
@@ -188,24 +495,69 @@
495 GCC_WARN_UNUSED_FUNCTION = YES;
496 GCC_WARN_UNUSED_VARIABLE = YES;
497 IPHONEOS_DEPLOYMENT_TARGET = 18.5;
191 - LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
192 - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
498 + MTL_ENABLE_DEBUG_INFO = NO;
499 MTL_FAST_MATH = YES;
194 - ONLY_ACTIVE_ARCH = YES;
500 + PRODUCT_NAME = "$(TARGET_NAME)";
501 + SWIFT_COMPILATION_MODE = wholemodule;
502 + SWIFT_OPTIMIZATION_LEVEL = "-O";
503 + SWIFT_VERSION = 5.0;
504 + WATCHOS_DEPLOYMENT_TARGET = 9.0;
505 + };
506 + name = Release;
507 + };
508 + 97B8585F2E74C6C870509FE9 /* Release */ = {
509 + isa = XCBuildConfiguration;
510 + buildSettings = {
511 + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
512 + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
513 + CODE_SIGN_ENTITLEMENTS = Klepon/Klepon.entitlements;
514 + CODE_SIGN_IDENTITY = "iPhone Developer";
515 + CURRENT_PROJECT_VERSION = 1;
516 + ENABLE_USER_SCRIPT_SANDBOXING = YES;
517 + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = x86_64;
518 + GENERATE_INFOPLIST_FILE = YES;
519 + INFOPLIST_KEY_UILaunchScreen_Generation = YES;
520 + INFOPLIST_KEY_UIUserInterfaceStyle = Light;
521 + LD_RUNPATH_SEARCH_PATHS = (
522 + "$(inherited)",
523 + "@executable_path/Frameworks",
524 + );
525 + MARKETING_VERSION = 1.0;
526 + PRODUCT_BUNDLE_IDENTIFIER = ai.splitfire.klepon;
527 SDKROOT = iphoneos;
196 - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
197 - SWIFT_OPTIMIZATION_LEVEL = "-Onone";
528 + SWIFT_OPTIMIZATION_LEVEL = "-O";
529 + TARGETED_DEVICE_FAMILY = "1,2";
530 };
199 - name = Debug;
531 + name = Release;
532 };
201 - 8AA60E272F56093200531855 /* Release */ = {
533 + A3B469B57456DA7C46537A7E /* Release */ = {
534 + isa = XCBuildConfiguration;
535 + buildSettings = {
536 + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
537 + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
538 + CURRENT_PROJECT_VERSION = 1;
539 + ENABLE_USER_SCRIPT_SANDBOXING = YES;
540 + "EXCLUDED_ARCHS[sdk=watchsimulator*]" = x86_64;
541 + GENERATE_INFOPLIST_FILE = YES;
542 + INFOPLIST_KEY_WKWatchOnly = YES;
543 + MARKETING_VERSION = 1.0;
544 + PRODUCT_BUNDLE_IDENTIFIER = ai.splitfire.klepon.watchkitapp;
545 + PRODUCT_NAME = "Klepon Watch";
546 + SDKROOT = watchos;
547 + SKIP_INSTALL = YES;
548 + SWIFT_OPTIMIZATION_LEVEL = "-O";
549 + TARGETED_DEVICE_FAMILY = 4;
550 + };
551 + name = Release;
552 + };
553 + B7F0F5DCFEE8809BB1921A4A /* Debug */ = {
554 isa = XCBuildConfiguration;
555 buildSettings = {
556 ALWAYS_SEARCH_USER_PATHS = NO;
205 - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
557 CLANG_ANALYZER_NONNULL = YES;
558 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
208 - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
559 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
560 + CLANG_CXX_LIBRARY = "libc++";
561 CLANG_ENABLE_MODULES = YES;
562 CLANG_ENABLE_OBJC_ARC = YES;
563 CLANG_ENABLE_OBJC_WEAK = YES;
@@ -232,13 +584,17 @@
584 CLANG_WARN_UNREACHABLE_CODE = YES;
585 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
586 COPY_PHASE_STRIP = NO;
235 - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
236 - DEVELOPMENT_TEAM = "";
237 - ENABLE_NS_ASSERTIONS = NO;
587 + DEBUG_INFORMATION_FORMAT = dwarf;
588 ENABLE_STRICT_OBJC_MSGSEND = YES;
239 - ENABLE_USER_SCRIPT_SANDBOXING = YES;
240 - GCC_C_LANGUAGE_STANDARD = gnu17;
589 + ENABLE_TESTABILITY = YES;
590 + GCC_C_LANGUAGE_STANDARD = gnu11;
591 + GCC_DYNAMIC_NO_PIC = NO;
592 GCC_NO_COMMON_BLOCKS = YES;
593 + GCC_OPTIMIZATION_LEVEL = 0;
594 + GCC_PREPROCESSOR_DEFINITIONS = (
595 + "$(inherited)",
596 + "DEBUG=1",
597 + );
598 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
599 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
600 GCC_WARN_UNDECLARED_SELECTOR = YES;
@@ -246,119 +602,92 @@
602 GCC_WARN_UNUSED_FUNCTION = YES;
603 GCC_WARN_UNUSED_VARIABLE = YES;
604 IPHONEOS_DEPLOYMENT_TARGET = 18.5;
249 - LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
250 - MTL_ENABLE_DEBUG_INFO = NO;
605 + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
606 MTL_FAST_MATH = YES;
252 - SDKROOT = iphoneos;
253 - SWIFT_COMPILATION_MODE = wholemodule;
254 - VALIDATE_PRODUCT = YES;
255 - };
256 - name = Release;
257 - };
258 - 8AA60E292F56093200531855 /* Debug */ = {
259 - isa = XCBuildConfiguration;
260 - buildSettings = {
261 - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
262 - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
263 - CODE_SIGN_ENTITLEMENTS = Klepon/Klepon.entitlements;
264 - CODE_SIGN_STYLE = Automatic;
265 - CURRENT_PROJECT_VERSION = 1;
266 - DEVELOPMENT_TEAM = "";
267 - ENABLE_PREVIEWS = YES;
268 - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = x86_64;
269 - GENERATE_INFOPLIST_FILE = YES;
270 - INFOPLIST_KEY_UILaunchScreen_Generation = YES;
271 - INFOPLIST_KEY_UIUserInterfaceStyle = Light;
272 - IPHONEOS_DEPLOYMENT_TARGET = 18.5;
273 - LD_RUNPATH_SEARCH_PATHS = (
274 - "$(inherited)",
275 - "@executable_path/Frameworks",
276 - );
277 - MARKETING_VERSION = 1.0;
278 - PRODUCT_BUNDLE_IDENTIFIER = ai.splitfire.klepon;
279 - PRODUCT_NAME = Klepon;
280 - STRING_CATALOG_GENERATE_SYMBOLS = YES;
281 - SWIFT_APPROACHABLE_CONCURRENCY = YES;
282 - SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor;
283 - SWIFT_EMIT_LOC_STRINGS = YES;
284 - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
607 + ONLY_ACTIVE_ARCH = YES;
608 + PRODUCT_NAME = "$(TARGET_NAME)";
609 + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
610 + SWIFT_OPTIMIZATION_LEVEL = "-Onone";
611 SWIFT_VERSION = 5.0;
286 - TARGETED_DEVICE_FAMILY = 1;
612 + WATCHOS_DEPLOYMENT_TARGET = 9.0;
613 };
614 name = Debug;
615 };
290 - 8AA60E2A2F56093200531855 /* Release */ = {
616 + D2D1439E7A622A6F8019887F /* Debug */ = {
617 isa = XCBuildConfiguration;
618 buildSettings = {
619 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
620 ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
621 CODE_SIGN_ENTITLEMENTS = Klepon/Klepon.entitlements;
296 - CODE_SIGN_STYLE = Automatic;
622 + CODE_SIGN_IDENTITY = "iPhone Developer";
623 CURRENT_PROJECT_VERSION = 1;
298 - DEVELOPMENT_TEAM = "";
299 - ENABLE_PREVIEWS = YES;
624 + ENABLE_USER_SCRIPT_SANDBOXING = YES;
625 "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = x86_64;
626 GENERATE_INFOPLIST_FILE = YES;
627 INFOPLIST_KEY_UILaunchScreen_Generation = YES;
628 INFOPLIST_KEY_UIUserInterfaceStyle = Light;
304 - IPHONEOS_DEPLOYMENT_TARGET = 18.5;
629 LD_RUNPATH_SEARCH_PATHS = (
630 "$(inherited)",
631 "@executable_path/Frameworks",
632 );
633 MARKETING_VERSION = 1.0;
634 PRODUCT_BUNDLE_IDENTIFIER = ai.splitfire.klepon;
311 - PRODUCT_NAME = Klepon;
312 - STRING_CATALOG_GENERATE_SYMBOLS = YES;
313 - SWIFT_APPROACHABLE_CONCURRENCY = YES;
314 - SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor;
315 - SWIFT_EMIT_LOC_STRINGS = YES;
316 - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
317 - SWIFT_VERSION = 5.0;
318 - TARGETED_DEVICE_FAMILY = 1;
635 + SDKROOT = iphoneos;
636 + SWIFT_OPTIMIZATION_LEVEL = "-Onone";
637 + TARGETED_DEVICE_FAMILY = "1,2";
638 };
320 - name = Release;
639 + name = Debug;
640 };
641 /* End XCBuildConfiguration section */
642
643 /* Begin XCConfigurationList section */
325 - 8AA60E182F56093100531855 /* Build configuration list for PBXProject "Klepon" */ = {
644 + 07A758477E97CF9254DDBA82 /* Build configuration list for PBXNativeTarget "Klepon Watch" */ = {
645 + isa = XCConfigurationList;
646 + buildConfigurations = (
647 + 57B34C7365523CA3F80ED770 /* Debug */,
648 + A3B469B57456DA7C46537A7E /* Release */,
649 + );
650 + defaultConfigurationIsVisible = 0;
651 + defaultConfigurationName = Debug;
652 + };
653 + 8911E6C6F25C3A4F99870749 /* Build configuration list for PBXProject "Klepon" */ = {
654 isa = XCConfigurationList;
655 buildConfigurations = (
328 - 8AA60E262F56093200531855 /* Debug */,
329 - 8AA60E272F56093200531855 /* Release */,
656 + B7F0F5DCFEE8809BB1921A4A /* Debug */,
657 + 850753164F664131E0E37EAE /* Release */,
658 );
659 defaultConfigurationIsVisible = 0;
332 - defaultConfigurationName = Release;
660 + defaultConfigurationName = Debug;
661 };
334 - 8AA60E282F56093200531855 /* Build configuration list for PBXNativeTarget "Klepon" */ = {
662 + E1E5A3DF58C9552EE814CC23 /* Build configuration list for PBXNativeTarget "Klepon" */ = {
663 isa = XCConfigurationList;
664 buildConfigurations = (
337 - 8AA60E292F56093200531855 /* Debug */,
338 - 8AA60E2A2F56093200531855 /* Release */,
665 + D2D1439E7A622A6F8019887F /* Debug */,
666 + 97B8585F2E74C6C870509FE9 /* Release */,
667 );
668 defaultConfigurationIsVisible = 0;
341 - defaultConfigurationName = Release;
669 + defaultConfigurationName = Debug;
670 };
671 /* End XCConfigurationList section */
672
673 /* Begin XCRemoteSwiftPackageReference section */
346 - 8AB50B362F82BD7700CE1848 /* XCRemoteSwiftPackageReference "onde-swift" */ = {
674 + AD8C734FB461604D5793769C /* XCRemoteSwiftPackageReference "onde-swift" */ = {
675 isa = XCRemoteSwiftPackageReference;
676 repositoryURL = "https://github.com/ondeinference/onde-swift";
677 requirement = {
678 kind = exactVersion;
351 - version = 0.1.0;
679 + version = 1.0.0;
680 };
681 };
682 /* End XCRemoteSwiftPackageReference section */
683
684 /* Begin XCSwiftPackageProductDependency section */
357 - 8AA60E2C2F56094200531855 /* Onde */ = {
685 + 855EE8DF62A7820E77C05D1A /* Onde */ = {
686 isa = XCSwiftPackageProductDependency;
687 + package = AD8C734FB461604D5793769C /* XCRemoteSwiftPackageReference "onde-swift" */;
688 productName = Onde;
689 };
690 /* End XCSwiftPackageProductDependency section */
691 };
363 - rootObject = 8AA60E152F56093100531855 /* Project object */;
692 + rootObject = 05A5707BDA883282DEB132FF /* Project object */;
693 }
Klepon.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
+2 -2
@@ -6,8 +6,8 @@
6 "kind" : "remoteSourceControl",
7 "location" : "https://github.com/ondeinference/onde-swift",
8 "state" : {
9 - "revision" : "c3114996521c9aee2aa0bc71b7324a8713376103",
10 - "version" : "0.1.0"
9 + "revision" : "83bfe89489d3eee34a960dd7a3db31dc26735a09",
10 + "version" : "1.0.0"
11 }
12 }
13 ],
Klepon.xcodeproj/xcshareddata/xcschemes/Klepon Watch.xcscheme new
+87
@@ -0,0 +1,87 @@
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<Scheme
3 + LastUpgradeVersion = "2600"
4 + version = "1.3">
5 + <BuildAction
6 + parallelizeBuildables = "YES"
7 + buildImplicitDependencies = "YES">
8 + <BuildActionEntries>
9 + <BuildActionEntry
10 + buildForTesting = "YES"
11 + buildForRunning = "YES"
12 + buildForProfiling = "YES"
13 + buildForArchiving = "YES"
14 + buildForAnalyzing = "YES">
15 + <BuildableReference
16 + BuildableIdentifier = "primary"
17 + BlueprintIdentifier = "E8CEBF52617721AEE450A7CF"
18 + BuildableName = "Klepon Watch.app"
19 + BlueprintName = "Klepon Watch"
20 + ReferencedContainer = "container:Klepon.xcodeproj">
21 + </BuildableReference>
22 + </BuildActionEntry>
23 + </BuildActionEntries>
24 + </BuildAction>
25 + <TestAction
26 + buildConfiguration = "Debug"
27 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29 + shouldUseLaunchSchemeArgsEnv = "YES">
30 + <MacroExpansion>
31 + <BuildableReference
32 + BuildableIdentifier = "primary"
33 + BlueprintIdentifier = "E8CEBF52617721AEE450A7CF"
34 + BuildableName = "Klepon Watch.app"
35 + BlueprintName = "Klepon Watch"
36 + ReferencedContainer = "container:Klepon.xcodeproj">
37 + </BuildableReference>
38 + </MacroExpansion>
39 + <Testables>
40 + </Testables>
41 + </TestAction>
42 + <LaunchAction
43 + buildConfiguration = "Debug"
44 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
45 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
46 + launchStyle = "0"
47 + useCustomWorkingDirectory = "NO"
48 + ignoresPersistentStateOnLaunch = "NO"
49 + debugDocumentVersioning = "YES"
50 + debugServiceExtension = "internal"
51 + allowLocationSimulation = "YES">
52 + <BuildableProductRunnable
53 + runnableDebuggingMode = "0">
54 + <BuildableReference
55 + BuildableIdentifier = "primary"
56 + BlueprintIdentifier = "E8CEBF52617721AEE450A7CF"
57 + BuildableName = "Klepon Watch.app"
58 + BlueprintName = "Klepon Watch"
59 + ReferencedContainer = "container:Klepon.xcodeproj">
60 + </BuildableReference>
61 + </BuildableProductRunnable>
62 + </LaunchAction>
63 + <ProfileAction
64 + buildConfiguration = "Release"
65 + shouldUseLaunchSchemeArgsEnv = "YES"
66 + savedToolIdentifier = ""
67 + useCustomWorkingDirectory = "NO"
68 + debugDocumentVersioning = "YES">
69 + <BuildableProductRunnable
70 + runnableDebuggingMode = "0">
71 + <BuildableReference
72 + BuildableIdentifier = "primary"
73 + BlueprintIdentifier = "E8CEBF52617721AEE450A7CF"
74 + BuildableName = "Klepon Watch.app"
75 + BlueprintName = "Klepon Watch"
76 + ReferencedContainer = "container:Klepon.xcodeproj">
77 + </BuildableReference>
78 + </BuildableProductRunnable>
79 + </ProfileAction>
80 + <AnalyzeAction
81 + buildConfiguration = "Debug">
82 + </AnalyzeAction>
83 + <ArchiveAction
84 + buildConfiguration = "Release"
85 + revealArchiveInOrganizer = "YES">
86 + </ArchiveAction>
87 +</Scheme>
Klepon.xcodeproj/xcshareddata/xcschemes/Klepon.xcscheme new
+93
@@ -0,0 +1,93 @@
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<Scheme
3 + LastUpgradeVersion = "2600"
4 + version = "1.7">
5 + <BuildAction
6 + parallelizeBuildables = "YES"
7 + buildImplicitDependencies = "YES"
8 + runPostActionsOnFailure = "NO">
9 + <BuildActionEntries>
10 + <BuildActionEntry
11 + buildForTesting = "YES"
12 + buildForRunning = "YES"
13 + buildForProfiling = "YES"
14 + buildForArchiving = "YES"
15 + buildForAnalyzing = "YES">
16 + <BuildableReference
17 + BuildableIdentifier = "primary"
18 + BlueprintIdentifier = "2ADB11F6C1D51B9F9A9DB15F"
19 + BuildableName = "Klepon.app"
20 + BlueprintName = "Klepon"
21 + ReferencedContainer = "container:Klepon.xcodeproj">
22 + </BuildableReference>
23 + </BuildActionEntry>
24 + </BuildActionEntries>
25 + </BuildAction>
26 + <TestAction
27 + buildConfiguration = "Debug"
28 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
29 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
30 + shouldUseLaunchSchemeArgsEnv = "YES"
31 + onlyGenerateCoverageForSpecifiedTargets = "NO">
32 + <MacroExpansion>
33 + <BuildableReference
34 + BuildableIdentifier = "primary"
35 + BlueprintIdentifier = "2ADB11F6C1D51B9F9A9DB15F"
36 + BuildableName = "Klepon.app"
37 + BlueprintName = "Klepon"
38 + ReferencedContainer = "container:Klepon.xcodeproj">
39 + </BuildableReference>
40 + </MacroExpansion>
41 + <Testables>
42 + </Testables>
43 + </TestAction>
44 + <LaunchAction
45 + buildConfiguration = "Debug"
46 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
47 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
48 + launchStyle = "0"
49 + useCustomWorkingDirectory = "NO"
50 + ignoresPersistentStateOnLaunch = "NO"
51 + debugDocumentVersioning = "YES"
52 + debugServiceExtension = "internal"
53 + allowLocationSimulation = "YES">
54 + <BuildableProductRunnable
55 + runnableDebuggingMode = "0">
56 + <BuildableReference
57 + BuildableIdentifier = "primary"
58 + BlueprintIdentifier = "2ADB11F6C1D51B9F9A9DB15F"
59 + BuildableName = "Klepon.app"
60 + BlueprintName = "Klepon"
61 + ReferencedContainer = "container:Klepon.xcodeproj">
62 + </BuildableReference>
63 + </BuildableProductRunnable>
64 + <CommandLineArguments>
65 + </CommandLineArguments>
66 + </LaunchAction>
67 + <ProfileAction
68 + buildConfiguration = "Release"
69 + shouldUseLaunchSchemeArgsEnv = "YES"
70 + savedToolIdentifier = ""
71 + useCustomWorkingDirectory = "NO"
72 + debugDocumentVersioning = "YES">
73 + <BuildableProductRunnable
74 + runnableDebuggingMode = "0">
75 + <BuildableReference
76 + BuildableIdentifier = "primary"
77 + BlueprintIdentifier = "2ADB11F6C1D51B9F9A9DB15F"
78 + BuildableName = "Klepon.app"
79 + BlueprintName = "Klepon"
80 + ReferencedContainer = "container:Klepon.xcodeproj">
81 + </BuildableReference>
82 + </BuildableProductRunnable>
83 + <CommandLineArguments>
84 + </CommandLineArguments>
85 + </ProfileAction>
86 + <AnalyzeAction
87 + buildConfiguration = "Debug">
88 + </AnalyzeAction>
89 + <ArchiveAction
90 + buildConfiguration = "Release"
91 + revealArchiveInOrganizer = "YES">
92 + </ArchiveAction>
93 +</Scheme>
Klepon/Klepon.entitlements
+3 -11
@@ -1,13 +1,5 @@
1 -<?xml version="1.0" encoding="UTF-8" ?>
2 -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
3 - "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3 <plist version="1.0">
5 -<dict>
6 - <key>com.apple.developer.kernel.increased-memory-limit</key>
7 - <true />
8 - <key>com.apple.security.application-groups</key>
9 - <array>
10 - <string>group.com.ondeinference.apps</string>
11 - </array>
12 -</dict>
4 +<dict/>
5 </plist>
KleponWatch/Assets.xcassets/AccentColor.colorset/Contents.json new
+11
@@ -0,0 +1,11 @@
1 +{
2 + "colors" : [
3 + {
4 + "idiom" : "universal"
5 + }
6 + ],
7 + "info" : {
8 + "author" : "xcode",
9 + "version" : 1
10 + }
11 +}
KleponWatch/Assets.xcassets/AppIcon.appiconset/Contents.json new
+22
@@ -0,0 +1,22 @@
1 +{
2 + "images" : [
3 + { "filename" : "watch-notification-38mm@2x.png", "idiom" : "watch", "role" : "notificationCenter", "scale" : "2x", "size" : "24x24", "subtype" : "38mm" },
4 + { "filename" : "watch-notification-42mm@2x.png", "idiom" : "watch", "role" : "notificationCenter", "scale" : "2x", "size" : "27.5x27.5", "subtype" : "42mm" },
5 + { "filename" : "watch-settings@2x.png", "idiom" : "watch", "role" : "companionSettings", "scale" : "2x", "size" : "29x29" },
6 + { "filename" : "watch-settings@3x.png", "idiom" : "watch", "role" : "companionSettings", "scale" : "3x", "size" : "29x29" },
7 + { "filename" : "watch-app-38mm@2x.png", "idiom" : "watch", "role" : "appLauncher", "scale" : "2x", "size" : "40x40", "subtype" : "38mm" },
8 + { "filename" : "watch-app-40mm@2x.png", "idiom" : "watch", "role" : "appLauncher", "scale" : "2x", "size" : "44x44", "subtype" : "40mm" },
9 + { "filename" : "watch-app-41mm@2x.png", "idiom" : "watch", "role" : "appLauncher", "scale" : "2x", "size" : "46x46", "subtype" : "41mm" },
10 + { "filename" : "watch-app-44mm@2x.png", "idiom" : "watch", "role" : "appLauncher", "scale" : "2x", "size" : "50x50", "subtype" : "44mm" },
11 + { "filename" : "watch-app-45mm@2x.png", "idiom" : "watch", "role" : "appLauncher", "scale" : "2x", "size" : "51x51", "subtype" : "45mm" },
12 + { "filename" : "watch-app-49mm@2x.png", "idiom" : "watch", "role" : "appLauncher", "scale" : "2x", "size" : "54x54", "subtype" : "49mm" },
13 + { "filename" : "watch-quicklook-38mm@2x.png", "idiom" : "watch", "role" : "quickLook", "scale" : "2x", "size" : "86x86", "subtype" : "38mm" },
14 + { "filename" : "watch-quicklook-42mm@2x.png", "idiom" : "watch", "role" : "quickLook", "scale" : "2x", "size" : "98x98", "subtype" : "42mm" },
15 + { "filename" : "watch-quicklook-44mm@2x.png", "idiom" : "watch", "role" : "quickLook", "scale" : "2x", "size" : "108x108", "subtype" : "44mm" },
16 + { "filename" : "watch-marketing.png", "idiom" : "watch-marketing", "scale" : "1x", "size" : "1024x1024" }
17 + ],
18 + "info" : {
19 + "author" : "xcode",
20 + "version" : 1
21 + }
22 +}
KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-app-38mm@2x.png
Binary files /dev/null and b/KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-app-38mm@2x.png differ
KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-app-40mm@2x.png
Binary files /dev/null and b/KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-app-40mm@2x.png differ
KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-app-41mm@2x.png
Binary files /dev/null and b/KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-app-41mm@2x.png differ
KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-app-44mm@2x.png
Binary files /dev/null and b/KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-app-44mm@2x.png differ
KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-app-45mm@2x.png
Binary files /dev/null and b/KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-app-45mm@2x.png differ
KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-app-49mm@2x.png
Binary files /dev/null and b/KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-app-49mm@2x.png differ
KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-marketing.png
Binary files /dev/null and b/KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-marketing.png differ
KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-notification-38mm@2x.png
Binary files /dev/null and b/KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-notification-38mm@2x.png differ
KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-notification-42mm@2x.png
Binary files /dev/null and b/KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-notification-42mm@2x.png differ
KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-quicklook-38mm@2x.png
Binary files /dev/null and b/KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-quicklook-38mm@2x.png differ
KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-quicklook-42mm@2x.png
Binary files /dev/null and b/KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-quicklook-42mm@2x.png differ
KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-quicklook-44mm@2x.png
Binary files /dev/null and b/KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-quicklook-44mm@2x.png differ
KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-settings@2x.png
Binary files /dev/null and b/KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-settings@2x.png differ
KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-settings@3x.png
Binary files /dev/null and b/KleponWatch/Assets.xcassets/AppIcon.appiconset/watch-settings@3x.png differ
KleponWatch/Assets.xcassets/Contents.json new
+6
@@ -0,0 +1,6 @@
1 +{
2 + "info" : {
3 + "author" : "xcode",
4 + "version" : 1
5 + }
6 +}
KleponWatch/WatchHomeView.swift new
+78
@@ -0,0 +1,78 @@
1 +import SwiftUI
2 +
3 +private struct WatchGuideEntry: Identifiable {
4 + let id: String
5 + let title: String
6 + let subtitle: String
7 + let notes: [String]
8 +}
9 +
10 +private let watchEntries: [WatchGuideEntry] = [
11 + .init(
12 + id: "klepon",
13 + title: "Klepon",
14 + subtitle: "Sweet rice cake with palm sugar",
15 + notes: ["Chewy", "Coconut", "Palm sugar"]
16 + ),
17 + .init(
18 + id: "rendang",
19 + title: "Rendang",
20 + subtitle: "Slow-cooked beef with deep spice",
21 + notes: ["Rich", "Savory", "West Sumatra"]
22 + ),
23 + .init(
24 + id: "nasi-goreng",
25 + title: "Nasi goreng",
26 + subtitle: "Indonesia’s beloved fried rice",
27 + notes: ["Smoky", "Comforting", "Kecap manis"]
28 + ),
29 + .init(
30 + id: "sate",
31 + title: "Sate",
32 + subtitle: "Skewered grilled meat with sauce",
33 + notes: ["Grilled", "Street food", "Peanut sauce"]
34 + ),
35 +]
36 +
37 +struct WatchHomeView: View {
38 + var body: some View {
39 + NavigationStack {
40 + List(watchEntries) { entry in
41 + NavigationLink(entry.title) {
42 + WatchEntryDetailView(entry: entry)
43 + }
44 + }
45 + .navigationTitle("Klepon")
46 + }
47 + }
48 +}
49 +
50 +private struct WatchEntryDetailView: View {
51 + let entry: WatchGuideEntry
52 +
53 + var body: some View {
54 + ScrollView {
55 + VStack(alignment: .leading, spacing: 12) {
56 + Text(entry.title)
57 + .font(.headline)
58 +
59 + Text(entry.subtitle)
60 + .font(.subheadline)
61 + .foregroundStyle(.secondary)
62 +
63 + ForEach(entry.notes, id: \.self) { note in
64 + Text("• \(note)")
65 + .font(.footnote)
66 + }
67 +
68 + Text("Watch support is browse-first for now.")
69 + .font(.footnote)
70 + .foregroundStyle(.secondary)
71 + .padding(.top, 6)
72 + }
73 + .frame(maxWidth: .infinity, alignment: .leading)
74 + .padding()
75 + }
76 + .navigationTitle(entry.title)
77 + }
78 +}
project.yml new
+99
@@ -0,0 +1,99 @@
1 +name: Klepon
2 +options:
3 + deploymentTarget:
4 + iOS: "18.5"
5 + watchOS: "9.0"
6 + xcodeVersion: "26.0"
7 + generateEmptyDirectories: false
8 + createIntermediateGroups: false
9 +
10 +packages:
11 + Onde:
12 + url: https://github.com/ondeinference/onde-swift
13 + exactVersion: 1.0.0
14 +
15 +schemes:
16 + Klepon:
17 + build:
18 + targets:
19 + Klepon: all
20 + run:
21 + config: Debug
22 + analyze:
23 + config: Debug
24 + archive:
25 + config: Release
26 + profile:
27 + config: Release
28 + Klepon Watch:
29 + build:
30 + targets:
31 + Klepon Watch: all
32 + run:
33 + config: Debug
34 + analyze:
35 + config: Debug
36 + archive:
37 + config: Release
38 + profile:
39 + config: Release
40 +
41 +targets:
42 + Klepon:
43 + type: application
44 + platform: iOS
45 + sources:
46 + - path: Klepon
47 + entitlements:
48 + path: Klepon/Klepon.entitlements
49 + dependencies:
50 + - package: Onde
51 + product: Onde
52 + settings:
53 + base:
54 + PRODUCT_BUNDLE_IDENTIFIER: ai.splitfire.klepon
55 + MARKETING_VERSION: "1.0"
56 + CURRENT_PROJECT_VERSION: 1
57 + ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
58 + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: AccentColor
59 + GENERATE_INFOPLIST_FILE: YES
60 + INFOPLIST_KEY_UILaunchScreen_Generation: YES
61 + INFOPLIST_KEY_UIUserInterfaceStyle: Light
62 + ENABLE_USER_SCRIPT_SANDBOXING: YES
63 + "EXCLUDED_ARCHS[sdk=iphonesimulator*]": x86_64
64 + configs:
65 + Debug:
66 + SWIFT_OPTIMIZATION_LEVEL: -Onone
67 + Release:
68 + SWIFT_OPTIMIZATION_LEVEL: -O
69 +
70 + KleponWatch:
71 + name: Klepon Watch
72 + type: application
73 + platform: watchOS
74 + sources:
75 + - path: KleponWatch
76 + settings:
77 + base:
78 + PRODUCT_BUNDLE_IDENTIFIER: ai.splitfire.klepon.watchkitapp
79 + PRODUCT_NAME: Klepon Watch
80 + MARKETING_VERSION: "1.0"
81 + CURRENT_PROJECT_VERSION: 1
82 + GENERATE_INFOPLIST_FILE: YES
83 + ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
84 + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: AccentColor
85 + ENABLE_USER_SCRIPT_SANDBOXING: YES
86 + INFOPLIST_KEY_WKCompanionAppBundleIdentifier: ""
87 + SDKROOT: watchos
88 + TARGETED_DEVICE_FAMILY: 4
89 + SKIP_INSTALL: YES
90 + LD_RUNPATH_SEARCH_PATHS:
91 + - "$(inherited)"
92 + - "@executable_path/Frameworks"
93 + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES: YES
94 + "EXCLUDED_ARCHS[sdk=watchsimulator*]": x86_64
95 + configs:
96 + Debug:
97 + SWIFT_OPTIMIZATION_LEVEL: -Onone
98 + Release:
99 + SWIFT_OPTIMIZATION_LEVEL: -O