xcake 0.8.3 → 0.8.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/lib/xcake/version.rb +1 -1
  4. data/xcake.gemspec +1 -1
  5. metadata +1 -35
  6. data/docs/Cakefile.md +0 -509
  7. data/docs/Getting Started.md +0 -65
  8. data/docs/Hooks.md +0 -14
  9. data/docs/Xcode Project Support.md +0 -51
  10. data/example/app/CakeMania/CakeMania.xcodeproj/project.pbxproj +0 -973
  11. data/example/app/CakeMania/CakeMania.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  12. data/example/app/CakeMania/CakeMania.xcodeproj/project.xcworkspace/xcuserdata/maxim.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  13. data/example/app/CakeMania/CakeMania.xcodeproj/xcshareddata/xcschemes/CakeMania-AppStore.xcscheme +0 -91
  14. data/example/app/CakeMania/CakeMania.xcodeproj/xcshareddata/xcschemes/CakeMania-Debug.xcscheme +0 -91
  15. data/example/app/CakeMania/CakeMania.xcodeproj/xcshareddata/xcschemes/CakeMania-Production.xcscheme +0 -91
  16. data/example/app/CakeMania/CakeMania.xcodeproj/xcshareddata/xcschemes/CakeMania-RC.xcscheme +0 -91
  17. data/example/app/CakeMania/CakeMania.xcodeproj/xcshareddata/xcschemes/CakeMania-Staging.xcscheme +0 -91
  18. data/example/app/CakeMania/CakeMania.xcodeproj/xcuserdata/maxim.xcuserdatad/xcschemes/CakeManiaTst.xcscheme +0 -56
  19. data/example/app/CakeMania/CakeMania.xcodeproj/xcuserdata/maxim.xcuserdatad/xcschemes/CakeManiaUITst.xcscheme +0 -56
  20. data/example/app/CakeMania/CakeMania.xcodeproj/xcuserdata/maxim.xcuserdatad/xcschemes/xcschememanagement.plist +0 -72
  21. data/example/app/CakeMania/Cakefile +0 -398
  22. data/example/app/CakeMania/Info/CakeMania.plist +0 -38
  23. data/example/app/CakeMania/Info/CakeManiaTst.plist +0 -22
  24. data/example/app/CakeMania/Info/CakeManiaUITst.plist +0 -22
  25. data/example/app/CakeMania/Res/CakeMania-test.entitlements +0 -10
  26. data/example/app/CakeMania/Res/CakeMania.entitlements +0 -10
  27. data/example/app/CakeMania/Res/CakeMania.xcassets/AppIcon.appiconset/Contents.json +0 -48
  28. data/example/app/CakeMania/Src/AppDelegate.swift +0 -46
  29. data/example/app/CakeMania/Src/Base.lproj/LaunchScreen.storyboard +0 -27
  30. data/example/app/CakeMania/Src/Base.lproj/Main.storyboard +0 -26
  31. data/example/app/CakeMania/Src/ObjC/CakeMania-Bridging-Header.h +0 -3
  32. data/example/app/CakeMania/Src/ObjC/Prefix.pch +0 -14
  33. data/example/app/CakeMania/Src/ViewController.swift +0 -25
  34. data/example/app/CakeMania/Tst/Main.swift +0 -36
  35. data/example/app/CakeMania/UITst/Main.swift +0 -36
  36. data/example/framework/Cakefile +0 -133
  37. data/gemfiles/Gemfile.xcodeproj-1.3.x +0 -5
  38. data/gemfiles/Gemfile.xcodeproj-1.4.x +0 -5
  39. data/gemfiles/Gemfile.xcodeproj-edge +0 -5
@@ -1,56 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Scheme
3
- LastUpgradeVersion = "0810"
4
- version = "1.3">
5
- <BuildAction
6
- parallelizeBuildables = "YES"
7
- buildImplicitDependencies = "YES">
8
- </BuildAction>
9
- <TestAction
10
- buildConfiguration = "Debug"
11
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
12
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
13
- shouldUseLaunchSchemeArgsEnv = "YES">
14
- <Testables>
15
- <TestableReference
16
- skipped = "NO">
17
- <BuildableReference
18
- BuildableIdentifier = "primary"
19
- BlueprintIdentifier = "4D92BE07FADBC9796349860D"
20
- BuildableName = "CakeManiaTst.xctest"
21
- BlueprintName = "CakeManiaTst"
22
- ReferencedContainer = "container:CakeMania.xcodeproj">
23
- </BuildableReference>
24
- </TestableReference>
25
- </Testables>
26
- <AdditionalOptions>
27
- </AdditionalOptions>
28
- </TestAction>
29
- <LaunchAction
30
- buildConfiguration = "Debug"
31
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
32
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
33
- launchStyle = "0"
34
- useCustomWorkingDirectory = "NO"
35
- ignoresPersistentStateOnLaunch = "NO"
36
- debugDocumentVersioning = "YES"
37
- debugServiceExtension = "internal"
38
- allowLocationSimulation = "YES">
39
- <AdditionalOptions>
40
- </AdditionalOptions>
41
- </LaunchAction>
42
- <ProfileAction
43
- buildConfiguration = "Debug"
44
- shouldUseLaunchSchemeArgsEnv = "YES"
45
- savedToolIdentifier = ""
46
- useCustomWorkingDirectory = "NO"
47
- debugDocumentVersioning = "YES">
48
- </ProfileAction>
49
- <AnalyzeAction
50
- buildConfiguration = "Debug">
51
- </AnalyzeAction>
52
- <ArchiveAction
53
- buildConfiguration = "Debug"
54
- revealArchiveInOrganizer = "YES">
55
- </ArchiveAction>
56
- </Scheme>
@@ -1,56 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Scheme
3
- LastUpgradeVersion = "0810"
4
- version = "1.3">
5
- <BuildAction
6
- parallelizeBuildables = "YES"
7
- buildImplicitDependencies = "YES">
8
- </BuildAction>
9
- <TestAction
10
- buildConfiguration = "Debug"
11
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
12
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
13
- shouldUseLaunchSchemeArgsEnv = "YES">
14
- <Testables>
15
- <TestableReference
16
- skipped = "NO">
17
- <BuildableReference
18
- BuildableIdentifier = "primary"
19
- BlueprintIdentifier = "E1D6D3AA914753263EC9C524"
20
- BuildableName = "CakeManiaUITst.xctest"
21
- BlueprintName = "CakeManiaUITst"
22
- ReferencedContainer = "container:CakeMania.xcodeproj">
23
- </BuildableReference>
24
- </TestableReference>
25
- </Testables>
26
- <AdditionalOptions>
27
- </AdditionalOptions>
28
- </TestAction>
29
- <LaunchAction
30
- buildConfiguration = "Debug"
31
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
32
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
33
- launchStyle = "0"
34
- useCustomWorkingDirectory = "NO"
35
- ignoresPersistentStateOnLaunch = "NO"
36
- debugDocumentVersioning = "YES"
37
- debugServiceExtension = "internal"
38
- allowLocationSimulation = "YES">
39
- <AdditionalOptions>
40
- </AdditionalOptions>
41
- </LaunchAction>
42
- <ProfileAction
43
- buildConfiguration = "Debug"
44
- shouldUseLaunchSchemeArgsEnv = "YES"
45
- savedToolIdentifier = ""
46
- useCustomWorkingDirectory = "NO"
47
- debugDocumentVersioning = "YES">
48
- </ProfileAction>
49
- <AnalyzeAction
50
- buildConfiguration = "Debug">
51
- </AnalyzeAction>
52
- <ArchiveAction
53
- buildConfiguration = "Debug"
54
- revealArchiveInOrganizer = "YES">
55
- </ArchiveAction>
56
- </Scheme>
@@ -1,72 +0,0 @@
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">
4
- <dict>
5
- <key>SchemeUserState</key>
6
- <dict>
7
- <key>CakeMania-AppStore.xcscheme_^#shared#^_</key>
8
- <dict>
9
- <key>isShown</key>
10
- <true/>
11
- <key>orderHint</key>
12
- <integer>0</integer>
13
- </dict>
14
- <key>CakeMania-Debug.xcscheme_^#shared#^_</key>
15
- <dict>
16
- <key>isShown</key>
17
- <true/>
18
- <key>orderHint</key>
19
- <integer>1</integer>
20
- </dict>
21
- <key>CakeMania-Production.xcscheme_^#shared#^_</key>
22
- <dict>
23
- <key>isShown</key>
24
- <true/>
25
- <key>orderHint</key>
26
- <integer>2</integer>
27
- </dict>
28
- <key>CakeMania-RC.xcscheme_^#shared#^_</key>
29
- <dict>
30
- <key>isShown</key>
31
- <true/>
32
- <key>orderHint</key>
33
- <integer>3</integer>
34
- </dict>
35
- <key>CakeMania-Staging.xcscheme_^#shared#^_</key>
36
- <dict>
37
- <key>isShown</key>
38
- <true/>
39
- <key>orderHint</key>
40
- <integer>4</integer>
41
- </dict>
42
- <key>CakeManiaTst.xcscheme</key>
43
- <dict>
44
- <key>orderHint</key>
45
- <integer>5</integer>
46
- </dict>
47
- <key>CakeManiaUITst.xcscheme</key>
48
- <dict>
49
- <key>orderHint</key>
50
- <integer>6</integer>
51
- </dict>
52
- </dict>
53
- <key>SuppressBuildableAutocreation</key>
54
- <dict>
55
- <key>4D92BE07FADBC9796349860D</key>
56
- <dict>
57
- <key>primary</key>
58
- <true/>
59
- </dict>
60
- <key>D2CF49CEAF900441E70E24B1</key>
61
- <dict>
62
- <key>primary</key>
63
- <true/>
64
- </dict>
65
- <key>E1D6D3AA914753263EC9C524</key>
66
- <dict>
67
- <key>primary</key>
68
- <true/>
69
- </dict>
70
- </dict>
71
- </dict>
72
- </plist>
@@ -1,398 +0,0 @@
1
- # https://github.com/jcampbell05/xcake
2
- # http://www.rubydoc.info/github/jcampbell05/xcake/master/file/docs/Cakefile.md
3
-
4
- # this is a sample Cakefile for a fictional project that is called "CakeMania"
5
-
6
- #===
7
-
8
- # just helper variables to use these values in a consistent way across whole file
9
-
10
- iOSdeploymentTarget = "8.0"
11
- currentSwiftVersion = "3.0.1" # to set "Use Legacy Swift ..." to "No"
12
- companyIdentifier = "com.CakeMania"
13
- developmentTeamId = "XYZXYZ" # for automatic debug signing in Xcode 8
14
- testSuffix = "Tst"
15
- testSuffixUI = "UI" + testSuffix
16
-
17
- provProfAdHoc = "XXX"
18
- provProfAppStore = "YYY"
19
-
20
- #=== 3d-party integration keys (global variables)
21
-
22
- # The values below will be used to set "user-defined" build settings
23
- # for build configurations on target level,
24
- # so we can reuse the same, lets say, "test" FB key
25
- # within several "test" configurations (for example, the same test key
26
- # would be used for "Debug" and "Staging" configurations), and can easily
27
- # see what is the value/key we use for testing and production,
28
- # and even update it in future if needed.
29
-
30
- # "FACEBOOK_KEY"
31
-
32
- facebookProdKey = "888888888888888"
33
- facebookTestKey = "999999999999999"
34
-
35
- #===
36
-
37
- # lets define high level project settings
38
-
39
- project.name = "CakeMania"
40
- project.class_prefix = "CMN"
41
- project.organization = "CakeMania Inc."
42
-
43
- #===
44
-
45
- # Below we explicitly define the list of project build configurations.
46
- # If you do not define it explicitly, Xcake will implicitly define default ones,
47
- # that are equivalent to this:
48
- #
49
- # project.debug_configuration :Debug
50
- # project.release_configuration :Release
51
- #
52
-
53
- project.debug_configuration :Debug # for local development/debugging only, pointing to "test.*" API server
54
- project.release_configuration :Staging # for alpha and beta AdHoc builds, pointing to "test.*" API server
55
- project.release_configuration :RC # for release candidate AdHoc builds, pointing to "rc.*" API server
56
- project.release_configuration :Production # for App Store ready AdHoc builds, pointing to "www." API server
57
- project.release_configuration :AppStore # for App Store builds, pointing to "www." API server
58
-
59
- # Note, that Xcake will also automatically create set of project "Schemes" -
60
- # one for each build configuration, their names will be constructed from
61
- # project name and configuration name, separated by dash, like this:
62
- #
63
- # "<project_name>-<configuration_name>"
64
- #
65
- # NOTE: every scheme will have the same build configiuration
66
- # for all phases (Run, Test, Profile, Archive). If you need different build configurations
67
- # based on phase - lets say one configuration for Run, but different one for Archive -
68
- # consider to have different build configurations (and as result - build shemes) for these purposes
69
- # (as proposed in this sample file).
70
- #
71
- # For this example, shemes will be:
72
- #
73
- # "CakeMania-Debug"
74
- # "CakeMania-Staging"
75
- # "CakeMania-RC"
76
- # "CakeMania-Production"
77
- # "CakeMania-AppStore"
78
-
79
- #=== DEFAULT target settings
80
-
81
- # Below we define "project level" build configurations.
82
- # REMEMBER this entiire file is just an interpretable script,
83
- # and the structure below is just a loop.
84
- # At every iteration we have reference to one
85
- # of the build configurations defined above explicitly or implicitly.
86
-
87
- # In this case, we set the same build settings to each configuration,
88
- # but, if we need to have some settings to be different for different
89
- # configurations, then you can use "if" expression to set different build settings
90
- # dependiong on "configuration.name" (we will see example of that in target settings below in this document).
91
-
92
- project.all_configurations.each do |configuration|
93
-
94
- # the settings listed below are just a copy
95
- # of what Xcode sets explicitly in a newly created Xcode
96
- # project file in comparison with default values
97
- # (the values that are marked with bold font).
98
-
99
- configuration.settings["ENABLE_BITCODE"] = "YES"
100
-
101
- configuration.settings["SDKROOT"] = "iphoneos"
102
- configuration.settings["GCC_DYNAMIC_NO_PIC"] = "NO"
103
- configuration.settings["OTHER_CFLAGS"] = "$(inherited) -DNS_BLOCK_ASSERTIONS=1"
104
- configuration.settings["GCC_C_LANGUAGE_STANDARD"] = "gnu99"
105
- configuration.settings["CLANG_ENABLE_MODULES"] = "YES"
106
- configuration.settings["CLANG_ENABLE_OBJC_ARC"] = "YES"
107
- configuration.settings["ENABLE_NS_ASSERTIONS"] = "NO"
108
- configuration.settings["ENABLE_STRICT_OBJC_MSGSEND"] = "YES"
109
- configuration.settings["CLANG_WARN_EMPTY_BODY"] = "YES"
110
- configuration.settings["CLANG_WARN_BOOL_CONVERSION"] = "YES"
111
- configuration.settings["CLANG_WARN_CONSTANT_CONVERSION"] = "YES"
112
- configuration.settings["GCC_WARN_64_TO_32_BIT_CONVERSION"] = "YES"
113
- configuration.settings["CLANG_WARN_INT_CONVERSION"] = "YES"
114
- configuration.settings["GCC_WARN_ABOUT_RETURN_TYPE"] = "YES_ERROR"
115
- configuration.settings["GCC_WARN_UNINITIALIZED_AUTOS"] = "YES_AGGRESSIVE"
116
- configuration.settings["CLANG_WARN_UNREACHABLE_CODE"] = "YES"
117
- configuration.settings["GCC_WARN_UNUSED_FUNCTION"] = "YES"
118
- configuration.settings["GCC_WARN_UNUSED_VARIABLE"] = "YES"
119
- configuration.settings["CLANG_WARN_DIRECT_OBJC_ISA_USAGE"] = "YES_ERROR"
120
- configuration.settings["CLANG_WARN__DUPLICATE_METHOD_MATCH"] = "YES"
121
- configuration.settings["GCC_WARN_UNDECLARED_SELECTOR"] = "YES"
122
- configuration.settings["CLANG_WARN_OBJC_ROOT_CLASS"] = "YES_ERROR"
123
-
124
- configuration.settings["CURRENT_PROJECT_VERSION"] = "1" # just default non-empty value
125
-
126
- configuration.settings["DEFINES_MODULE"] = "YES" # http://stackoverflow.com/a/27251979
127
-
128
- configuration.settings["SWIFT_OPTIMIZATION_LEVEL"] = "-Onone"
129
-
130
- configuration.settings["CLANG_WARN_INFINITE_RECURSION"] = "YES" # Xcode 8
131
- configuration.settings["CLANG_WARN_SUSPICIOUS_MOVE"] = "YES" # Xcode 8
132
- configuration.settings["ENABLE_STRICT_OBJC_MSGSEND"] = "YES" # Xcode 8
133
- configuration.settings["GCC_NO_COMMON_BLOCKS"] = "YES"
134
- configuration.settings["ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES"] = "$(inherited)" # "YES"
135
-
136
- configuration.settings["SWIFT_VERSION"] = currentSwiftVersion
137
-
138
- #===
139
-
140
- if configuration.name == "RC" || configuration.name == "AppStore"
141
-
142
- configuration.settings["DEBUG_INFORMATION_FORMAT"] = "dwarf-with-dsym"
143
- configuration.settings["SWIFT_OPTIMIZATION_LEVEL"] = "-Owholemodule" # Xcode 8
144
-
145
- end
146
- end
147
-
148
- #=== Targets
149
-
150
- # So far, we've defined poject settings and
151
- # project level build configuration settings
152
- # (which define defaults for target level build configurations).
153
- #
154
- # Now it's time to define target-level build settings.
155
-
156
- # Below we define "application"-type target and
157
- # put all it's settings (including definition or related unit test targets)
158
- # inside "application_for ... do ... end" structure.
159
-
160
- target do |target|
161
-
162
- target.name = project.name
163
- target.language = :swift
164
- target.type = :application
165
- target.platform = :ios
166
- target.deployment_target = iOSdeploymentTarget
167
-
168
- #===
169
-
170
- # Now lets set target-level build settigns.
171
- # Again, the structure below is just a loop,
172
- # everything between "target.all_configurations.each do |configuration|"
173
- # and corresponding "end" (see below on the same level in the very bottom of the file)
174
- # is body of this loop, that repeats every iteration. This loop goes through
175
- # the list of build configurations (defined above) and on each iteration
176
- # we have variable "configuration" that contains reference to one
177
- # of the build configurations in CONTEXT of the TARGET. This is equivalent of setting
178
- # build settings on target-level in Xcode (you can access it if you choose to
179
- # see build settigns by "Levels", not "Combined").
180
-
181
- # Imagine we have project folder structure like this:
182
- #
183
- # - Cakefile
184
- # - Info/
185
- # | - CakeMania.plist
186
- # | - CakeManiaTst.plist
187
- # | - CakeManiaUITst.plist
188
- # - Lib/
189
- # | - ...
190
- # - Res/
191
- # | - CakeMania.entitlements
192
- # | - CakeMania-test.entitlements
193
- # | - ...
194
- # | - CakeMania.xcassets/
195
- # | - ...
196
- # | - AppIcon.appiconset/
197
- # | - ...
198
- # | - ...
199
- # - Src/
200
- # | - ...
201
- # | - ObjC/
202
- # | - Prefix.pch
203
- # | - CakeMania-Bridging-Header.h
204
- # | - ...
205
- # - Tst/
206
- # | - ...
207
- # - UITst/
208
- # | - ...
209
- #
210
-
211
- target.all_configurations.each do |configuration|
212
-
213
- #=== Build Settings - Core
214
-
215
- configuration.product_bundle_identifier = companyIdentifier + "." + target.name
216
- configuration.supported_devices = :universal
217
- configuration.settings["INFOPLIST_FILE"] = "Info/" + target.name + ".plist"
218
- configuration.settings["PRODUCT_NAME"] = "$(TARGET_NAME)"
219
-
220
- configuration.settings["CODE_SIGN_ENTITLEMENTS"] = "Res/CakeMania.entitlements"
221
- configuration.settings["GCC_PREFIX_HEADER"] = "Src/ObjC/Prefix.pch"
222
- # configuration.settings["FRAMEWORK_SEARCH_PATHS"] = "$(inherited)"
223
- configuration.settings["LIBRARY_SEARCH_PATHS"] = "$(inherited) $(SRCROOT)/Lib/**"
224
- configuration.settings["ASSETCATALOG_COMPILER_APPICON_NAME"] = "AppIcon"
225
- # configuration.settings["ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME"] = "Brand Assets"
226
- configuration.settings["SWIFT_OBJC_BRIDGING_HEADER"] = "Src/ObjC/CakeMania-Bridging-Header.h"
227
- configuration.settings["OTHER_LDFLAGS"] = "$(inherited) -ObjC"
228
-
229
- # make configuration name available in run time:
230
- configNameFlag = "CONFIG_" + configuration.name.upcase
231
- configuration.settings["GCC_PREPROCESSOR_DEFINITIONS"] = "$(inherited) " + configNameFlag + "=1" # Obj-C support
232
- configuration.settings["OTHER_SWIFT_FLAGS"] = "$(inherited) -D" + configNameFlag # Swift support
233
-
234
- # This will show "Automatic" in Xcode,
235
- # relies on proper/valid "PROVISIONING_PROFILE" value:
236
- # configuration.settings["CODE_SIGN_IDENTITY[sdk=iphoneos*]"] = nil # DEPRECATED
237
-
238
- # Xcode 8 automati c signing support
239
- configuration.settings["CODE_SIGN_IDENTITY[sdk=iphoneos*]"] = "iPhone Developer"
240
- configuration.settings["DEVELOPMENT_TEAM"] = developmentTeamId
241
-
242
- #=== Build Settings - Per-configuration
243
-
244
- # NOTE: any configuration-specific settings below will override
245
- # common settings that you already applied above inside this
246
- # "target.all_configurations.each do |configuration|" block
247
-
248
- if configuration.name == "Debug"
249
-
250
- #=== Config
251
-
252
- configuration.settings["CODE_SIGN_ENTITLEMENTS"] = "Res/CakeMania-test.entitlements"
253
-
254
- #=== Config - User Defined Build Settings
255
-
256
- configuration.settings["FACEBOOK_KEY"] = facebookTestKey
257
-
258
- end
259
-
260
- #===
261
-
262
- if configuration.name == "Staging"
263
-
264
- #=== Config
265
-
266
- configuration.settings["PROVISIONING_PROFILE"] = provProfAdHoc
267
-
268
- configuration.settings["CODE_SIGN_ENTITLEMENTS"] = "Res/CakeMania-test.entitlements"
269
-
270
- #=== Config - User Defined Build Settings
271
-
272
- configuration.settings["FACEBOOK_KEY"] = facebookTestKey
273
-
274
- end
275
-
276
- #===
277
-
278
- if configuration.name == "RC"
279
-
280
- #=== Config
281
-
282
- configuration.settings["PROVISIONING_PROFILE"] = provProfAdHoc
283
-
284
- configuration.settings["CODE_SIGN_ENTITLEMENTS"] = "Res/CakeMania-test.entitlements"
285
-
286
- #=== Config - User Defined Build Settings
287
-
288
- configuration.settings["FACEBOOK_KEY"] = facebookTestKey
289
-
290
- end
291
-
292
- #===
293
-
294
- if configuration.name == "Production"
295
-
296
- #=== Config
297
-
298
- configuration.settings["PROVISIONING_PROFILE"] = provProfAdHoc # AdHoc
299
-
300
- #=== Config - User Defined Build Settings
301
-
302
- configuration.settings["FACEBOOK_KEY"] = facebookProdKey
303
-
304
- end
305
-
306
- #===
307
-
308
- if configuration.name == "AppStore"
309
-
310
- #=== Config
311
-
312
- configuration.settings["PROVISIONING_PROFILE"] = provProfAppStore
313
-
314
- #=== Config - User Defined Build Settings
315
-
316
- configuration.settings["FACEBOOK_KEY"] = facebookProdKey
317
-
318
- end
319
-
320
- end
321
-
322
- #=== Extra System Frameworks
323
-
324
- # Here is how we tell Xcake to include Apple system framework
325
- # into the target.
326
-
327
- # NOTE: "target.system_frameworks" is an array, that always have at least
328
- # "Foundation" and "UIKit", os it's always non-empty and we should not initialize it
329
- # before adding something there, so we jsut add values, one at a time (one per each line below).
330
-
331
- target.system_frameworks << "AdSupport"
332
- target.system_frameworks << "QuartzCore"
333
-
334
- #=== Source Files
335
-
336
- # Here is how we tell Xcake where to look for source files
337
- # which need to be added into the target. Moreover, the folder struture
338
- # will be re-created with Xcode groups.
339
-
340
- # NOTE: "target.include_files" is an array, that is empty by default
341
- # (no source files will be added to the target). So it's our responsibility
342
- # to initialize this array (with "=" operand) before adding values/elements
343
- # into it (with "<<" operand). Remember, this file is a Ruby script, and
344
- # that's just how Ruby works.
345
-
346
- target.include_files = ["Src/**/*.*"] # initialize array with 1 element
347
- target.include_files << "Lib/**/*.*" # add value into already non-empty array
348
-
349
- target.include_files << "Res/**/*.*" # add another value
350
-
351
- #=== Tests
352
-
353
- # Below we define unit tests target for the application target.
354
- # "unit_tests_for" is a reserved word, then you put variable that contains reference
355
- # to the application target that you want to create unit tests for, it's "target" in our case.
356
- # The "test_target" is reference to the newly created unit test target
357
- # so we can configure it as we want - set name, build configurations (at least info plist file)
358
- # and its source files, or course. The rules of how we work with test target (set its settings)
359
- # are the same, as we work with application target.
360
-
361
- unit_tests_for target do |test_target|
362
-
363
- test_target.name = target.name + testSuffix
364
-
365
- test_target.all_configurations.each do |configuration|
366
-
367
- configuration.settings["INFOPLIST_FILE"] = "Info/" + test_target.name + ".plist"
368
-
369
- end
370
-
371
- #=== Source Files
372
-
373
- test_target.include_files = [testSuffix + "/**/*.*"] # we set array with 1 element here!
374
-
375
- end
376
-
377
- #===
378
-
379
- # Below we define UI tests target for the application target.
380
- # See https://github.com/jcampbell05/xcake/issues/44
381
-
382
- ui_tests_for target do |test_target|
383
-
384
- test_target.name = target.name + testSuffixUI
385
-
386
- test_target.all_configurations.each do |configuration|
387
-
388
- configuration.settings["INFOPLIST_FILE"] = "Info/" + test_target.name + ".plist"
389
-
390
- end
391
-
392
- #=== Source Files
393
-
394
- test_target.include_files = [testSuffixUI + "/**/*.*"] # we set array with 1 element here!
395
-
396
- end
397
-
398
- end