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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/lib/xcake/version.rb +1 -1
- data/xcake.gemspec +1 -1
- metadata +1 -35
- data/docs/Cakefile.md +0 -509
- data/docs/Getting Started.md +0 -65
- data/docs/Hooks.md +0 -14
- data/docs/Xcode Project Support.md +0 -51
- data/example/app/CakeMania/CakeMania.xcodeproj/project.pbxproj +0 -973
- data/example/app/CakeMania/CakeMania.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- data/example/app/CakeMania/CakeMania.xcodeproj/project.xcworkspace/xcuserdata/maxim.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- data/example/app/CakeMania/CakeMania.xcodeproj/xcshareddata/xcschemes/CakeMania-AppStore.xcscheme +0 -91
- data/example/app/CakeMania/CakeMania.xcodeproj/xcshareddata/xcschemes/CakeMania-Debug.xcscheme +0 -91
- data/example/app/CakeMania/CakeMania.xcodeproj/xcshareddata/xcschemes/CakeMania-Production.xcscheme +0 -91
- data/example/app/CakeMania/CakeMania.xcodeproj/xcshareddata/xcschemes/CakeMania-RC.xcscheme +0 -91
- data/example/app/CakeMania/CakeMania.xcodeproj/xcshareddata/xcschemes/CakeMania-Staging.xcscheme +0 -91
- data/example/app/CakeMania/CakeMania.xcodeproj/xcuserdata/maxim.xcuserdatad/xcschemes/CakeManiaTst.xcscheme +0 -56
- data/example/app/CakeMania/CakeMania.xcodeproj/xcuserdata/maxim.xcuserdatad/xcschemes/CakeManiaUITst.xcscheme +0 -56
- data/example/app/CakeMania/CakeMania.xcodeproj/xcuserdata/maxim.xcuserdatad/xcschemes/xcschememanagement.plist +0 -72
- data/example/app/CakeMania/Cakefile +0 -398
- data/example/app/CakeMania/Info/CakeMania.plist +0 -38
- data/example/app/CakeMania/Info/CakeManiaTst.plist +0 -22
- data/example/app/CakeMania/Info/CakeManiaUITst.plist +0 -22
- data/example/app/CakeMania/Res/CakeMania-test.entitlements +0 -10
- data/example/app/CakeMania/Res/CakeMania.entitlements +0 -10
- data/example/app/CakeMania/Res/CakeMania.xcassets/AppIcon.appiconset/Contents.json +0 -48
- data/example/app/CakeMania/Src/AppDelegate.swift +0 -46
- data/example/app/CakeMania/Src/Base.lproj/LaunchScreen.storyboard +0 -27
- data/example/app/CakeMania/Src/Base.lproj/Main.storyboard +0 -26
- data/example/app/CakeMania/Src/ObjC/CakeMania-Bridging-Header.h +0 -3
- data/example/app/CakeMania/Src/ObjC/Prefix.pch +0 -14
- data/example/app/CakeMania/Src/ViewController.swift +0 -25
- data/example/app/CakeMania/Tst/Main.swift +0 -36
- data/example/app/CakeMania/UITst/Main.swift +0 -36
- data/example/framework/Cakefile +0 -133
- data/gemfiles/Gemfile.xcodeproj-1.3.x +0 -5
- data/gemfiles/Gemfile.xcodeproj-1.4.x +0 -5
- 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
|