xcake 0.8.3 → 0.8.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|