apphill 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1b8c3da10aab5c990bc5625d8db27ffcbfac150c
4
+ data.tar.gz: 815103c71fafd853a09c563f753cf82f3a3d0281
5
+ SHA512:
6
+ metadata.gz: a3d77e0d8bf4d145b46dd6819cc9c85bfc2adf25aa369884bc062a8e41b9982e5c96205ad7dbaeefd5c51d92a94764c815dc2f12ff3de12bbe9fd303fe1fd4a8
7
+ data.tar.gz: 7c697eed9528c6811286cb24eb958e55594cdf16742772f002659e72cad6a310a92a0cf79cada1163b03226eb643b8c174b61d9e0e91785efccef0682c57b1d9
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift(File.expand_path("../../lib", __FILE__))
4
+
5
+ require 'rubygems'
6
+ require 'thor'
7
+ require 'erb'
8
+ require 'ostruct'
9
+ require 'xcodeproj'
10
+ require 'apphill'
11
+
12
+ AppHill::CLI.start
@@ -0,0 +1,117 @@
1
+ module AppHill
2
+
3
+ class Config
4
+ @default_copyright_name = 'AppHill'
5
+ @default_copyright_link = 'http://apphill.io'
6
+
7
+ def self.copyright_year
8
+ Time.now.year
9
+ end
10
+
11
+ def self.copyright_name
12
+ @default_copyright_name
13
+ end
14
+
15
+ def self.copyright_link
16
+ @default_copyright_link
17
+ end
18
+ end
19
+
20
+ class IOS
21
+
22
+ def self.new_project (appname, config)
23
+ Dir.mkdir appname
24
+ Dir.mkdir "#{appname}/App"
25
+ Dir.mkdir "#{appname}/AppTests"
26
+
27
+ Dir.mkdir "#{appname}/AppTests/en.lproj"
28
+ Dir.mkdir "#{appname}/App/en.lproj"
29
+ Dir.mkdir "#{appname}/App/Images.xcassets"
30
+ Dir.mkdir "#{appname}/App/Images.xcassets/AppIcon.appiconset"
31
+ Dir.mkdir "#{appname}/App/Images.xcassets/LaunchImage.launchimage"
32
+
33
+ AppHill::IO.generate_file "#{appname}/App/Images.xcassets/AppIcon.appiconset/Contents.json", "App/App/app-icons.json", config
34
+ AppHill::IO.generate_file "#{appname}/App/Images.xcassets/LaunchImage.launchimage/Contents.json", "App/App/launch-images.json", config
35
+ AppHill::IO.generate_file "#{appname}/App/en.lproj/InfoPlist.strings", "App/App/InfoPlist.strings", config
36
+
37
+ AppHill::IO.generate_file "#{appname}/App/AppDelegate.h", "App/App/AppDelegate.h", config
38
+ AppHill::IO.generate_file "#{appname}/App/AppDelegate.m", "App/App/AppDelegate.m", config
39
+ AppHill::IO.generate_file "#{appname}/App/main.m", "App/App/main.m", config
40
+ AppHill::IO.generate_file "#{appname}/App/App-Info.plist", "App/App/App-Info.plist", config
41
+ AppHill::IO.generate_file "#{appname}/App/App-Prefix.pch", "App/App/App-Prefix.pch", config
42
+
43
+ AppHill::IO.generate_file "#{appname}/AppTests/AppTests-Info.plist", "App/AppTests/AppTests-Info.plist", config
44
+ AppHill::IO.generate_file "#{appname}/AppTests/AppTests.m", "App/AppTests/AppTests.m", config
45
+ AppHill::IO.generate_file "#{appname}/AppTests/en.lproj/InfoPlist.strings", "App/AppTests/InfoPlist.strings", config
46
+
47
+ proj = Xcodeproj::Project.open(File.expand_path('../templates/App/App.xcodeproj', __FILE__))
48
+ proj.save "#{appname}/#{appname}.xcodeproj"
49
+ end
50
+
51
+ end
52
+
53
+ class IO
54
+ @templates_dir = File.expand_path('../templates', __FILE__)
55
+ @license_filename = "LICENSE"
56
+
57
+ class BIND < OpenStruct
58
+ def get_binding
59
+ return binding()
60
+ end
61
+ end
62
+
63
+ def self.init_app (appname)
64
+ license = self.license(:copyright_year => AppHill::Config.copyright_year,
65
+ :copyright_name => AppHill::Config.copyright_name,
66
+ :copyright_link => AppHill::Config.copyright_link)
67
+
68
+ AppHill::IOS.new_project appname, {:app_id => "io.apphill.#{appname}",
69
+ :app_name => appname,
70
+ :license => license}
71
+ end
72
+
73
+ def self.appname_available(appname)
74
+ return !File.directory?(appname)
75
+ end
76
+
77
+ def self.appname_is_valid(appname)
78
+ !appname.match(/\s/)
79
+ end
80
+
81
+ def self.template_filepath (filename)
82
+ File.join @templates_dir, filename + ".erb"
83
+ end
84
+
85
+ def self.template_file (filename)
86
+ filepath = self.template_filepath filename
87
+ file = File.open(filepath, 'r').read
88
+ return file
89
+ end
90
+
91
+ def self.template_bind(filename, data)
92
+ template = self.template_file filename
93
+ ERB.new(template).result(self::BIND.new(data).get_binding)
94
+ end
95
+
96
+ def self.license (data)
97
+ self.template_bind @license_filename, data
98
+ end
99
+
100
+ def self.generate_file(destination, filename, data)
101
+ content = self.template_bind filename, data
102
+ File.open(destination, 'w') {|f| f.write(content) }
103
+ end
104
+ end
105
+
106
+ class CLI < Thor
107
+
108
+ desc "create APPNAME", "Create a new app"
109
+ def create (appname)
110
+ #abort ("App #{appname} already exists") unless AppHill::IO.appname_available appname
111
+ #abort ("Your app name should not contain spaces") unless AppHill::IO.appname_is_valid appname
112
+
113
+ AppHill::IO.init_app appname
114
+ end
115
+
116
+ end
117
+ end
@@ -0,0 +1,458 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 46;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ 4D228B6218EE111700B35F7B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D228B6118EE111700B35F7B /* Foundation.framework */; };
11
+ 4D228B6418EE111700B35F7B /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D228B6318EE111700B35F7B /* CoreGraphics.framework */; };
12
+ 4D228B6618EE111700B35F7B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D228B6518EE111700B35F7B /* UIKit.framework */; };
13
+ 4D228B6C18EE111700B35F7B /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4D228B6A18EE111700B35F7B /* InfoPlist.strings */; };
14
+ 4D228B6E18EE111700B35F7B /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D228B6D18EE111700B35F7B /* main.m */; };
15
+ 4D228B7218EE111700B35F7B /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D228B7118EE111700B35F7B /* AppDelegate.m */; };
16
+ 4D228B7418EE111700B35F7B /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4D228B7318EE111700B35F7B /* Images.xcassets */; };
17
+ 4D228B7B18EE111700B35F7B /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D228B7A18EE111700B35F7B /* XCTest.framework */; };
18
+ 4D228B7C18EE111700B35F7B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D228B6118EE111700B35F7B /* Foundation.framework */; };
19
+ 4D228B7D18EE111700B35F7B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D228B6518EE111700B35F7B /* UIKit.framework */; };
20
+ 4D228B8518EE111700B35F7B /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4D228B8318EE111700B35F7B /* InfoPlist.strings */; };
21
+ 4D228B8718EE111700B35F7B /* AppTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D228B8618EE111700B35F7B /* AppTests.m */; };
22
+ /* End PBXBuildFile section */
23
+
24
+ /* Begin PBXContainerItemProxy section */
25
+ 4D228B7E18EE111700B35F7B /* PBXContainerItemProxy */ = {
26
+ isa = PBXContainerItemProxy;
27
+ containerPortal = 4D228B5618EE111700B35F7B /* Project object */;
28
+ proxyType = 1;
29
+ remoteGlobalIDString = 4D228B5D18EE111700B35F7B;
30
+ remoteInfo = App;
31
+ };
32
+ /* End PBXContainerItemProxy section */
33
+
34
+ /* Begin PBXFileReference section */
35
+ 4D228B5E18EE111700B35F7B /* App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; };
36
+ 4D228B6118EE111700B35F7B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
37
+ 4D228B6318EE111700B35F7B /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
38
+ 4D228B6518EE111700B35F7B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
39
+ 4D228B6918EE111700B35F7B /* App-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "App-Info.plist"; sourceTree = "<group>"; };
40
+ 4D228B6B18EE111700B35F7B /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
41
+ 4D228B6D18EE111700B35F7B /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
42
+ 4D228B6F18EE111700B35F7B /* App-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "App-Prefix.pch"; sourceTree = "<group>"; };
43
+ 4D228B7018EE111700B35F7B /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
44
+ 4D228B7118EE111700B35F7B /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
45
+ 4D228B7318EE111700B35F7B /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
46
+ 4D228B7918EE111700B35F7B /* AppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
47
+ 4D228B7A18EE111700B35F7B /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
48
+ 4D228B8218EE111700B35F7B /* AppTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "AppTests-Info.plist"; sourceTree = "<group>"; };
49
+ 4D228B8418EE111700B35F7B /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
50
+ 4D228B8618EE111700B35F7B /* AppTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppTests.m; sourceTree = "<group>"; };
51
+ /* End PBXFileReference section */
52
+
53
+ /* Begin PBXFrameworksBuildPhase section */
54
+ 4D228B5B18EE111700B35F7B /* Frameworks */ = {
55
+ isa = PBXFrameworksBuildPhase;
56
+ buildActionMask = 2147483647;
57
+ files = (
58
+ 4D228B6418EE111700B35F7B /* CoreGraphics.framework in Frameworks */,
59
+ 4D228B6618EE111700B35F7B /* UIKit.framework in Frameworks */,
60
+ 4D228B6218EE111700B35F7B /* Foundation.framework in Frameworks */,
61
+ );
62
+ runOnlyForDeploymentPostprocessing = 0;
63
+ };
64
+ 4D228B7618EE111700B35F7B /* Frameworks */ = {
65
+ isa = PBXFrameworksBuildPhase;
66
+ buildActionMask = 2147483647;
67
+ files = (
68
+ 4D228B7B18EE111700B35F7B /* XCTest.framework in Frameworks */,
69
+ 4D228B7D18EE111700B35F7B /* UIKit.framework in Frameworks */,
70
+ 4D228B7C18EE111700B35F7B /* Foundation.framework in Frameworks */,
71
+ );
72
+ runOnlyForDeploymentPostprocessing = 0;
73
+ };
74
+ /* End PBXFrameworksBuildPhase section */
75
+
76
+ /* Begin PBXGroup section */
77
+ 4D228B5518EE111700B35F7B = {
78
+ isa = PBXGroup;
79
+ children = (
80
+ 4D228B6718EE111700B35F7B /* App */,
81
+ 4D228B8018EE111700B35F7B /* AppTests */,
82
+ 4D228B6018EE111700B35F7B /* Frameworks */,
83
+ 4D228B5F18EE111700B35F7B /* Products */,
84
+ );
85
+ sourceTree = "<group>";
86
+ };
87
+ 4D228B5F18EE111700B35F7B /* Products */ = {
88
+ isa = PBXGroup;
89
+ children = (
90
+ 4D228B5E18EE111700B35F7B /* App.app */,
91
+ 4D228B7918EE111700B35F7B /* AppTests.xctest */,
92
+ );
93
+ name = Products;
94
+ sourceTree = "<group>";
95
+ };
96
+ 4D228B6018EE111700B35F7B /* Frameworks */ = {
97
+ isa = PBXGroup;
98
+ children = (
99
+ 4D228B6118EE111700B35F7B /* Foundation.framework */,
100
+ 4D228B6318EE111700B35F7B /* CoreGraphics.framework */,
101
+ 4D228B6518EE111700B35F7B /* UIKit.framework */,
102
+ 4D228B7A18EE111700B35F7B /* XCTest.framework */,
103
+ );
104
+ name = Frameworks;
105
+ sourceTree = "<group>";
106
+ };
107
+ 4D228B6718EE111700B35F7B /* App */ = {
108
+ isa = PBXGroup;
109
+ children = (
110
+ 4D228B7018EE111700B35F7B /* AppDelegate.h */,
111
+ 4D228B7118EE111700B35F7B /* AppDelegate.m */,
112
+ 4D228B7318EE111700B35F7B /* Images.xcassets */,
113
+ 4D228B6818EE111700B35F7B /* Supporting Files */,
114
+ );
115
+ path = App;
116
+ sourceTree = "<group>";
117
+ };
118
+ 4D228B6818EE111700B35F7B /* Supporting Files */ = {
119
+ isa = PBXGroup;
120
+ children = (
121
+ 4D228B6918EE111700B35F7B /* App-Info.plist */,
122
+ 4D228B6A18EE111700B35F7B /* InfoPlist.strings */,
123
+ 4D228B6D18EE111700B35F7B /* main.m */,
124
+ 4D228B6F18EE111700B35F7B /* App-Prefix.pch */,
125
+ );
126
+ name = "Supporting Files";
127
+ sourceTree = "<group>";
128
+ };
129
+ 4D228B8018EE111700B35F7B /* AppTests */ = {
130
+ isa = PBXGroup;
131
+ children = (
132
+ 4D228B8618EE111700B35F7B /* AppTests.m */,
133
+ 4D228B8118EE111700B35F7B /* Supporting Files */,
134
+ );
135
+ path = AppTests;
136
+ sourceTree = "<group>";
137
+ };
138
+ 4D228B8118EE111700B35F7B /* Supporting Files */ = {
139
+ isa = PBXGroup;
140
+ children = (
141
+ 4D228B8218EE111700B35F7B /* AppTests-Info.plist */,
142
+ 4D228B8318EE111700B35F7B /* InfoPlist.strings */,
143
+ );
144
+ name = "Supporting Files";
145
+ sourceTree = "<group>";
146
+ };
147
+ /* End PBXGroup section */
148
+
149
+ /* Begin PBXNativeTarget section */
150
+ 4D228B5D18EE111700B35F7B /* App */ = {
151
+ isa = PBXNativeTarget;
152
+ buildConfigurationList = 4D228B8A18EE111700B35F7B /* Build configuration list for PBXNativeTarget "App" */;
153
+ buildPhases = (
154
+ 4D228B5A18EE111700B35F7B /* Sources */,
155
+ 4D228B5B18EE111700B35F7B /* Frameworks */,
156
+ 4D228B5C18EE111700B35F7B /* Resources */,
157
+ );
158
+ buildRules = (
159
+ );
160
+ dependencies = (
161
+ );
162
+ name = App;
163
+ productName = App;
164
+ productReference = 4D228B5E18EE111700B35F7B /* App.app */;
165
+ productType = "com.apple.product-type.application";
166
+ };
167
+ 4D228B7818EE111700B35F7B /* AppTests */ = {
168
+ isa = PBXNativeTarget;
169
+ buildConfigurationList = 4D228B8D18EE111700B35F7B /* Build configuration list for PBXNativeTarget "AppTests" */;
170
+ buildPhases = (
171
+ 4D228B7518EE111700B35F7B /* Sources */,
172
+ 4D228B7618EE111700B35F7B /* Frameworks */,
173
+ 4D228B7718EE111700B35F7B /* Resources */,
174
+ );
175
+ buildRules = (
176
+ );
177
+ dependencies = (
178
+ 4D228B7F18EE111700B35F7B /* PBXTargetDependency */,
179
+ );
180
+ name = AppTests;
181
+ productName = AppTests;
182
+ productReference = 4D228B7918EE111700B35F7B /* AppTests.xctest */;
183
+ productType = "com.apple.product-type.bundle.unit-test";
184
+ };
185
+ /* End PBXNativeTarget section */
186
+
187
+ /* Begin PBXProject section */
188
+ 4D228B5618EE111700B35F7B /* Project object */ = {
189
+ isa = PBXProject;
190
+ attributes = {
191
+ LastUpgradeCheck = 0500;
192
+ ORGANIZATIONNAME = AppHill;
193
+ TargetAttributes = {
194
+ 4D228B7818EE111700B35F7B = {
195
+ TestTargetID = 4D228B5D18EE111700B35F7B;
196
+ };
197
+ };
198
+ };
199
+ buildConfigurationList = 4D228B5918EE111700B35F7B /* Build configuration list for PBXProject "App" */;
200
+ compatibilityVersion = "Xcode 3.2";
201
+ developmentRegion = English;
202
+ hasScannedForEncodings = 0;
203
+ knownRegions = (
204
+ en,
205
+ );
206
+ mainGroup = 4D228B5518EE111700B35F7B;
207
+ productRefGroup = 4D228B5F18EE111700B35F7B /* Products */;
208
+ projectDirPath = "";
209
+ projectRoot = "";
210
+ targets = (
211
+ 4D228B5D18EE111700B35F7B /* App */,
212
+ 4D228B7818EE111700B35F7B /* AppTests */,
213
+ );
214
+ };
215
+ /* End PBXProject section */
216
+
217
+ /* Begin PBXResourcesBuildPhase section */
218
+ 4D228B5C18EE111700B35F7B /* Resources */ = {
219
+ isa = PBXResourcesBuildPhase;
220
+ buildActionMask = 2147483647;
221
+ files = (
222
+ 4D228B6C18EE111700B35F7B /* InfoPlist.strings in Resources */,
223
+ 4D228B7418EE111700B35F7B /* Images.xcassets in Resources */,
224
+ );
225
+ runOnlyForDeploymentPostprocessing = 0;
226
+ };
227
+ 4D228B7718EE111700B35F7B /* Resources */ = {
228
+ isa = PBXResourcesBuildPhase;
229
+ buildActionMask = 2147483647;
230
+ files = (
231
+ 4D228B8518EE111700B35F7B /* InfoPlist.strings in Resources */,
232
+ );
233
+ runOnlyForDeploymentPostprocessing = 0;
234
+ };
235
+ /* End PBXResourcesBuildPhase section */
236
+
237
+ /* Begin PBXSourcesBuildPhase section */
238
+ 4D228B5A18EE111700B35F7B /* Sources */ = {
239
+ isa = PBXSourcesBuildPhase;
240
+ buildActionMask = 2147483647;
241
+ files = (
242
+ 4D228B7218EE111700B35F7B /* AppDelegate.m in Sources */,
243
+ 4D228B6E18EE111700B35F7B /* main.m in Sources */,
244
+ );
245
+ runOnlyForDeploymentPostprocessing = 0;
246
+ };
247
+ 4D228B7518EE111700B35F7B /* Sources */ = {
248
+ isa = PBXSourcesBuildPhase;
249
+ buildActionMask = 2147483647;
250
+ files = (
251
+ 4D228B8718EE111700B35F7B /* AppTests.m in Sources */,
252
+ );
253
+ runOnlyForDeploymentPostprocessing = 0;
254
+ };
255
+ /* End PBXSourcesBuildPhase section */
256
+
257
+ /* Begin PBXTargetDependency section */
258
+ 4D228B7F18EE111700B35F7B /* PBXTargetDependency */ = {
259
+ isa = PBXTargetDependency;
260
+ target = 4D228B5D18EE111700B35F7B /* App */;
261
+ targetProxy = 4D228B7E18EE111700B35F7B /* PBXContainerItemProxy */;
262
+ };
263
+ /* End PBXTargetDependency section */
264
+
265
+ /* Begin PBXVariantGroup section */
266
+ 4D228B6A18EE111700B35F7B /* InfoPlist.strings */ = {
267
+ isa = PBXVariantGroup;
268
+ children = (
269
+ 4D228B6B18EE111700B35F7B /* en */,
270
+ );
271
+ name = InfoPlist.strings;
272
+ sourceTree = "<group>";
273
+ };
274
+ 4D228B8318EE111700B35F7B /* InfoPlist.strings */ = {
275
+ isa = PBXVariantGroup;
276
+ children = (
277
+ 4D228B8418EE111700B35F7B /* en */,
278
+ );
279
+ name = InfoPlist.strings;
280
+ sourceTree = "<group>";
281
+ };
282
+ /* End PBXVariantGroup section */
283
+
284
+ /* Begin XCBuildConfiguration section */
285
+ 4D228B8818EE111700B35F7B /* Debug */ = {
286
+ isa = XCBuildConfiguration;
287
+ buildSettings = {
288
+ ALWAYS_SEARCH_USER_PATHS = NO;
289
+ ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
290
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
291
+ CLANG_CXX_LIBRARY = "libc++";
292
+ CLANG_ENABLE_MODULES = YES;
293
+ CLANG_ENABLE_OBJC_ARC = YES;
294
+ CLANG_WARN_BOOL_CONVERSION = YES;
295
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
296
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
297
+ CLANG_WARN_EMPTY_BODY = YES;
298
+ CLANG_WARN_ENUM_CONVERSION = YES;
299
+ CLANG_WARN_INT_CONVERSION = YES;
300
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
301
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
302
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
303
+ COPY_PHASE_STRIP = NO;
304
+ GCC_C_LANGUAGE_STANDARD = gnu99;
305
+ GCC_DYNAMIC_NO_PIC = NO;
306
+ GCC_OPTIMIZATION_LEVEL = 0;
307
+ GCC_PREPROCESSOR_DEFINITIONS = (
308
+ "DEBUG=1",
309
+ "$(inherited)",
310
+ );
311
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
312
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
313
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
314
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
315
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
316
+ GCC_WARN_UNUSED_FUNCTION = YES;
317
+ GCC_WARN_UNUSED_VARIABLE = YES;
318
+ IPHONEOS_DEPLOYMENT_TARGET = 7.0;
319
+ ONLY_ACTIVE_ARCH = YES;
320
+ SDKROOT = iphoneos;
321
+ TARGETED_DEVICE_FAMILY = "1,2";
322
+ };
323
+ name = Debug;
324
+ };
325
+ 4D228B8918EE111700B35F7B /* Release */ = {
326
+ isa = XCBuildConfiguration;
327
+ buildSettings = {
328
+ ALWAYS_SEARCH_USER_PATHS = NO;
329
+ ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
330
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
331
+ CLANG_CXX_LIBRARY = "libc++";
332
+ CLANG_ENABLE_MODULES = YES;
333
+ CLANG_ENABLE_OBJC_ARC = YES;
334
+ CLANG_WARN_BOOL_CONVERSION = YES;
335
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
336
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
337
+ CLANG_WARN_EMPTY_BODY = YES;
338
+ CLANG_WARN_ENUM_CONVERSION = YES;
339
+ CLANG_WARN_INT_CONVERSION = YES;
340
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
341
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
342
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
343
+ COPY_PHASE_STRIP = YES;
344
+ ENABLE_NS_ASSERTIONS = NO;
345
+ GCC_C_LANGUAGE_STANDARD = gnu99;
346
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
347
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
348
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
349
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
350
+ GCC_WARN_UNUSED_FUNCTION = YES;
351
+ GCC_WARN_UNUSED_VARIABLE = YES;
352
+ IPHONEOS_DEPLOYMENT_TARGET = 7.0;
353
+ SDKROOT = iphoneos;
354
+ TARGETED_DEVICE_FAMILY = "1,2";
355
+ VALIDATE_PRODUCT = YES;
356
+ };
357
+ name = Release;
358
+ };
359
+ 4D228B8B18EE111700B35F7B /* Debug */ = {
360
+ isa = XCBuildConfiguration;
361
+ buildSettings = {
362
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
363
+ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
364
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
365
+ GCC_PREFIX_HEADER = "App/App-Prefix.pch";
366
+ INFOPLIST_FILE = "App/App-Info.plist";
367
+ PRODUCT_NAME = "$(TARGET_NAME)";
368
+ WRAPPER_EXTENSION = app;
369
+ };
370
+ name = Debug;
371
+ };
372
+ 4D228B8C18EE111700B35F7B /* Release */ = {
373
+ isa = XCBuildConfiguration;
374
+ buildSettings = {
375
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
376
+ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
377
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
378
+ GCC_PREFIX_HEADER = "App/App-Prefix.pch";
379
+ INFOPLIST_FILE = "App/App-Info.plist";
380
+ PRODUCT_NAME = "$(TARGET_NAME)";
381
+ WRAPPER_EXTENSION = app;
382
+ };
383
+ name = Release;
384
+ };
385
+ 4D228B8E18EE111700B35F7B /* Debug */ = {
386
+ isa = XCBuildConfiguration;
387
+ buildSettings = {
388
+ ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
389
+ BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/App.app/App";
390
+ FRAMEWORK_SEARCH_PATHS = (
391
+ "$(SDKROOT)/Developer/Library/Frameworks",
392
+ "$(inherited)",
393
+ "$(DEVELOPER_FRAMEWORKS_DIR)",
394
+ );
395
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
396
+ GCC_PREFIX_HEADER = "App/App-Prefix.pch";
397
+ GCC_PREPROCESSOR_DEFINITIONS = (
398
+ "DEBUG=1",
399
+ "$(inherited)",
400
+ );
401
+ INFOPLIST_FILE = "AppTests/AppTests-Info.plist";
402
+ PRODUCT_NAME = "$(TARGET_NAME)";
403
+ TEST_HOST = "$(BUNDLE_LOADER)";
404
+ WRAPPER_EXTENSION = xctest;
405
+ };
406
+ name = Debug;
407
+ };
408
+ 4D228B8F18EE111700B35F7B /* Release */ = {
409
+ isa = XCBuildConfiguration;
410
+ buildSettings = {
411
+ ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
412
+ BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/App.app/App";
413
+ FRAMEWORK_SEARCH_PATHS = (
414
+ "$(SDKROOT)/Developer/Library/Frameworks",
415
+ "$(inherited)",
416
+ "$(DEVELOPER_FRAMEWORKS_DIR)",
417
+ );
418
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
419
+ GCC_PREFIX_HEADER = "App/App-Prefix.pch";
420
+ INFOPLIST_FILE = "AppTests/AppTests-Info.plist";
421
+ PRODUCT_NAME = "$(TARGET_NAME)";
422
+ TEST_HOST = "$(BUNDLE_LOADER)";
423
+ WRAPPER_EXTENSION = xctest;
424
+ };
425
+ name = Release;
426
+ };
427
+ /* End XCBuildConfiguration section */
428
+
429
+ /* Begin XCConfigurationList section */
430
+ 4D228B5918EE111700B35F7B /* Build configuration list for PBXProject "App" */ = {
431
+ isa = XCConfigurationList;
432
+ buildConfigurations = (
433
+ 4D228B8818EE111700B35F7B /* Debug */,
434
+ 4D228B8918EE111700B35F7B /* Release */,
435
+ );
436
+ defaultConfigurationIsVisible = 0;
437
+ defaultConfigurationName = Release;
438
+ };
439
+ 4D228B8A18EE111700B35F7B /* Build configuration list for PBXNativeTarget "App" */ = {
440
+ isa = XCConfigurationList;
441
+ buildConfigurations = (
442
+ 4D228B8B18EE111700B35F7B /* Debug */,
443
+ 4D228B8C18EE111700B35F7B /* Release */,
444
+ );
445
+ defaultConfigurationIsVisible = 0;
446
+ };
447
+ 4D228B8D18EE111700B35F7B /* Build configuration list for PBXNativeTarget "AppTests" */ = {
448
+ isa = XCConfigurationList;
449
+ buildConfigurations = (
450
+ 4D228B8E18EE111700B35F7B /* Debug */,
451
+ 4D228B8F18EE111700B35F7B /* Release */,
452
+ );
453
+ defaultConfigurationIsVisible = 0;
454
+ };
455
+ /* End XCConfigurationList section */
456
+ };
457
+ rootObject = 4D228B5618EE111700B35F7B /* Project object */;
458
+ }
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Workspace
3
+ version = "1.0">
4
+ <FileRef
5
+ location = "self:App.xcodeproj">
6
+ </FileRef>
7
+ </Workspace>
@@ -0,0 +1,41 @@
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>IDESourceControlProjectFavoriteDictionaryKey</key>
6
+ <false/>
7
+ <key>IDESourceControlProjectIdentifier</key>
8
+ <string>DCB4725C-15CB-4B02-AEDC-E046A6D9FD6C</string>
9
+ <key>IDESourceControlProjectName</key>
10
+ <string>App</string>
11
+ <key>IDESourceControlProjectOriginsDictionary</key>
12
+ <dict>
13
+ <key>CE5608B3-98EE-4206-A370-2E5356D2D958</key>
14
+ <string>https://github.com/apphill/apphill-cli.git</string>
15
+ </dict>
16
+ <key>IDESourceControlProjectPath</key>
17
+ <string>lib/templates/App/App.xcodeproj/project.xcworkspace</string>
18
+ <key>IDESourceControlProjectRelativeInstallPathDictionary</key>
19
+ <dict>
20
+ <key>CE5608B3-98EE-4206-A370-2E5356D2D958</key>
21
+ <string>../../../../..</string>
22
+ </dict>
23
+ <key>IDESourceControlProjectURL</key>
24
+ <string>https://github.com/apphill/apphill-cli.git</string>
25
+ <key>IDESourceControlProjectVersion</key>
26
+ <integer>110</integer>
27
+ <key>IDESourceControlProjectWCCIdentifier</key>
28
+ <string>CE5608B3-98EE-4206-A370-2E5356D2D958</string>
29
+ <key>IDESourceControlProjectWCConfigurations</key>
30
+ <array>
31
+ <dict>
32
+ <key>IDESourceControlRepositoryExtensionIdentifierKey</key>
33
+ <string>public.vcs.git</string>
34
+ <key>IDESourceControlWCCIdentifierKey</key>
35
+ <string>CE5608B3-98EE-4206-A370-2E5356D2D958</string>
36
+ <key>IDESourceControlWCCName</key>
37
+ <string>apphill-cli</string>
38
+ </dict>
39
+ </array>
40
+ </dict>
41
+ </plist>
@@ -0,0 +1,96 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Scheme
3
+ LastUpgradeVersion = "0500"
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 = "4D228B5D18EE111700B35F7B"
18
+ BuildableName = "App.app"
19
+ BlueprintName = "App"
20
+ ReferencedContainer = "container:App.xcodeproj">
21
+ </BuildableReference>
22
+ </BuildActionEntry>
23
+ </BuildActionEntries>
24
+ </BuildAction>
25
+ <TestAction
26
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
27
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
28
+ shouldUseLaunchSchemeArgsEnv = "YES"
29
+ buildConfiguration = "Debug">
30
+ <Testables>
31
+ <TestableReference
32
+ skipped = "NO">
33
+ <BuildableReference
34
+ BuildableIdentifier = "primary"
35
+ BlueprintIdentifier = "4D228B7818EE111700B35F7B"
36
+ BuildableName = "AppTests.xctest"
37
+ BlueprintName = "AppTests"
38
+ ReferencedContainer = "container:App.xcodeproj">
39
+ </BuildableReference>
40
+ </TestableReference>
41
+ </Testables>
42
+ <MacroExpansion>
43
+ <BuildableReference
44
+ BuildableIdentifier = "primary"
45
+ BlueprintIdentifier = "4D228B5D18EE111700B35F7B"
46
+ BuildableName = "App.app"
47
+ BlueprintName = "App"
48
+ ReferencedContainer = "container:App.xcodeproj">
49
+ </BuildableReference>
50
+ </MacroExpansion>
51
+ </TestAction>
52
+ <LaunchAction
53
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
54
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
55
+ launchStyle = "0"
56
+ useCustomWorkingDirectory = "NO"
57
+ buildConfiguration = "Debug"
58
+ ignoresPersistentStateOnLaunch = "NO"
59
+ debugDocumentVersioning = "YES"
60
+ allowLocationSimulation = "YES">
61
+ <BuildableProductRunnable>
62
+ <BuildableReference
63
+ BuildableIdentifier = "primary"
64
+ BlueprintIdentifier = "4D228B5D18EE111700B35F7B"
65
+ BuildableName = "App.app"
66
+ BlueprintName = "App"
67
+ ReferencedContainer = "container:App.xcodeproj">
68
+ </BuildableReference>
69
+ </BuildableProductRunnable>
70
+ <AdditionalOptions>
71
+ </AdditionalOptions>
72
+ </LaunchAction>
73
+ <ProfileAction
74
+ shouldUseLaunchSchemeArgsEnv = "YES"
75
+ savedToolIdentifier = ""
76
+ useCustomWorkingDirectory = "NO"
77
+ buildConfiguration = "Release"
78
+ debugDocumentVersioning = "YES">
79
+ <BuildableProductRunnable>
80
+ <BuildableReference
81
+ BuildableIdentifier = "primary"
82
+ BlueprintIdentifier = "4D228B5D18EE111700B35F7B"
83
+ BuildableName = "App.app"
84
+ BlueprintName = "App"
85
+ ReferencedContainer = "container:App.xcodeproj">
86
+ </BuildableReference>
87
+ </BuildableProductRunnable>
88
+ </ProfileAction>
89
+ <AnalyzeAction
90
+ buildConfiguration = "Debug">
91
+ </AnalyzeAction>
92
+ <ArchiveAction
93
+ buildConfiguration = "Release"
94
+ revealArchiveInOrganizer = "YES">
95
+ </ArchiveAction>
96
+ </Scheme>
@@ -0,0 +1,27 @@
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>App.xcscheme</key>
8
+ <dict>
9
+ <key>orderHint</key>
10
+ <integer>0</integer>
11
+ </dict>
12
+ </dict>
13
+ <key>SuppressBuildableAutocreation</key>
14
+ <dict>
15
+ <key>4D228B5D18EE111700B35F7B</key>
16
+ <dict>
17
+ <key>primary</key>
18
+ <true/>
19
+ </dict>
20
+ <key>4D228B7818EE111700B35F7B</key>
21
+ <dict>
22
+ <key>primary</key>
23
+ <true/>
24
+ </dict>
25
+ </dict>
26
+ </dict>
27
+ </plist>
@@ -0,0 +1,45 @@
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>CFBundleDevelopmentRegion</key>
6
+ <string>en</string>
7
+ <key>CFBundleDisplayName</key>
8
+ <string><%=app_name%></string>
9
+ <key>CFBundleExecutable</key>
10
+ <string>${EXECUTABLE_NAME}</string>
11
+ <key>CFBundleIdentifier</key>
12
+ <string><%=app_id%></string>
13
+ <key>CFBundleInfoDictionaryVersion</key>
14
+ <string>6.0</string>
15
+ <key>CFBundleName</key>
16
+ <string><%=app_name%></string>
17
+ <key>CFBundlePackageType</key>
18
+ <string>APPL</string>
19
+ <key>CFBundleShortVersionString</key>
20
+ <string>1.0</string>
21
+ <key>CFBundleSignature</key>
22
+ <string>????</string>
23
+ <key>CFBundleVersion</key>
24
+ <string>1.0</string>
25
+ <key>LSRequiresIPhoneOS</key>
26
+ <true/>
27
+ <key>UIRequiredDeviceCapabilities</key>
28
+ <array>
29
+ <string>armv7</string>
30
+ </array>
31
+ <key>UISupportedInterfaceOrientations</key>
32
+ <array>
33
+ <string>UIInterfaceOrientationPortrait</string>
34
+ <string>UIInterfaceOrientationLandscapeLeft</string>
35
+ <string>UIInterfaceOrientationLandscapeRight</string>
36
+ </array>
37
+ <key>UISupportedInterfaceOrientations~ipad</key>
38
+ <array>
39
+ <string>UIInterfaceOrientationPortrait</string>
40
+ <string>UIInterfaceOrientationPortraitUpsideDown</string>
41
+ <string>UIInterfaceOrientationLandscapeLeft</string>
42
+ <string>UIInterfaceOrientationLandscapeRight</string>
43
+ </array>
44
+ </dict>
45
+ </plist>
@@ -0,0 +1,19 @@
1
+ /**
2
+
3
+ Prefix Header
4
+ <%=app_name%>
5
+
6
+ <%=license%>
7
+
8
+ **/
9
+
10
+ #import <Availability.h>
11
+
12
+ #ifndef __IPHONE_3_0
13
+ #warning "This project uses features only available in iOS SDK 3.0 and later."
14
+ #endif
15
+
16
+ #ifdef __OBJC__
17
+ #import <UIKit/UIKit.h>
18
+ #import <Foundation/Foundation.h>
19
+ #endif
@@ -0,0 +1,16 @@
1
+ /**
2
+
3
+ AppDelegate.h
4
+ <%=app_name%>
5
+
6
+ <%=license%>
7
+
8
+ **/
9
+
10
+ #import <UIKit/UIKit.h>
11
+
12
+ @interface AppDelegate : UIResponder <UIApplicationDelegate>
13
+
14
+ @property (strong, nonatomic) UIWindow *window;
15
+
16
+ @end
@@ -0,0 +1,42 @@
1
+ /**
2
+
3
+ AppDelegate.m
4
+ <%=app_name%>
5
+
6
+ <%=license%>
7
+
8
+ **/
9
+
10
+ #import "AppDelegate.h"
11
+
12
+ @implementation AppDelegate
13
+
14
+ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
15
+ {
16
+ self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
17
+ self.window.backgroundColor = [UIColor whiteColor];
18
+ [self.window makeKeyAndVisible];
19
+ return YES;
20
+ }
21
+
22
+ - (void)applicationWillResignActive:(UIApplication *)application
23
+ {
24
+ }
25
+
26
+ - (void)applicationDidEnterBackground:(UIApplication *)application
27
+ {
28
+ }
29
+
30
+ - (void)applicationWillEnterForeground:(UIApplication *)application
31
+ {
32
+ }
33
+
34
+ - (void)applicationDidBecomeActive:(UIApplication *)application
35
+ {
36
+ }
37
+
38
+ - (void)applicationWillTerminate:(UIApplication *)application
39
+ {
40
+ }
41
+
42
+ @end
@@ -0,0 +1,2 @@
1
+ /* Localized versions of Info.plist keys */
2
+
@@ -0,0 +1,53 @@
1
+ {
2
+ "images" : [
3
+ {
4
+ "idiom" : "iphone",
5
+ "size" : "29x29",
6
+ "scale" : "2x"
7
+ },
8
+ {
9
+ "idiom" : "iphone",
10
+ "size" : "40x40",
11
+ "scale" : "2x"
12
+ },
13
+ {
14
+ "idiom" : "iphone",
15
+ "size" : "60x60",
16
+ "scale" : "2x"
17
+ },
18
+ {
19
+ "idiom" : "ipad",
20
+ "size" : "29x29",
21
+ "scale" : "1x"
22
+ },
23
+ {
24
+ "idiom" : "ipad",
25
+ "size" : "29x29",
26
+ "scale" : "2x"
27
+ },
28
+ {
29
+ "idiom" : "ipad",
30
+ "size" : "40x40",
31
+ "scale" : "1x"
32
+ },
33
+ {
34
+ "idiom" : "ipad",
35
+ "size" : "40x40",
36
+ "scale" : "2x"
37
+ },
38
+ {
39
+ "idiom" : "ipad",
40
+ "size" : "76x76",
41
+ "scale" : "1x"
42
+ },
43
+ {
44
+ "idiom" : "ipad",
45
+ "size" : "76x76",
46
+ "scale" : "2x"
47
+ }
48
+ ],
49
+ "info" : {
50
+ "version" : 1,
51
+ "author" : "xcode"
52
+ }
53
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "images" : [
3
+ {
4
+ "orientation" : "portrait",
5
+ "idiom" : "iphone",
6
+ "extent" : "full-screen",
7
+ "minimum-system-version" : "7.0",
8
+ "scale" : "2x"
9
+ },
10
+ {
11
+ "orientation" : "portrait",
12
+ "idiom" : "iphone",
13
+ "subtype" : "retina4",
14
+ "extent" : "full-screen",
15
+ "minimum-system-version" : "7.0",
16
+ "scale" : "2x"
17
+ },
18
+ {
19
+ "orientation" : "portrait",
20
+ "idiom" : "ipad",
21
+ "extent" : "full-screen",
22
+ "minimum-system-version" : "7.0",
23
+ "scale" : "1x"
24
+ },
25
+ {
26
+ "orientation" : "landscape",
27
+ "idiom" : "ipad",
28
+ "extent" : "full-screen",
29
+ "minimum-system-version" : "7.0",
30
+ "scale" : "1x"
31
+ },
32
+ {
33
+ "orientation" : "portrait",
34
+ "idiom" : "ipad",
35
+ "extent" : "full-screen",
36
+ "minimum-system-version" : "7.0",
37
+ "scale" : "2x"
38
+ },
39
+ {
40
+ "orientation" : "landscape",
41
+ "idiom" : "ipad",
42
+ "extent" : "full-screen",
43
+ "minimum-system-version" : "7.0",
44
+ "scale" : "2x"
45
+ }
46
+ ],
47
+ "info" : {
48
+ "version" : 1,
49
+ "author" : "xcode"
50
+ }
51
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+
3
+ main.m
4
+ <%=app_name%>
5
+
6
+ <%=license%>
7
+
8
+ **/
9
+
10
+ #import <UIKit/UIKit.h>
11
+
12
+ #import "AppDelegate.h"
13
+
14
+ int main(int argc, char * argv[])
15
+ {
16
+ @autoreleasepool {
17
+ return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
18
+ }
19
+ }
@@ -0,0 +1,22 @@
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>CFBundleDevelopmentRegion</key>
6
+ <string>en</string>
7
+ <key>CFBundleExecutable</key>
8
+ <string>${EXECUTABLE_NAME}</string>
9
+ <key>CFBundleIdentifier</key>
10
+ <string>AppHill.${PRODUCT_NAME:rfc1034identifier}</string>
11
+ <key>CFBundleInfoDictionaryVersion</key>
12
+ <string>6.0</string>
13
+ <key>CFBundlePackageType</key>
14
+ <string>BNDL</string>
15
+ <key>CFBundleShortVersionString</key>
16
+ <string>1.0</string>
17
+ <key>CFBundleSignature</key>
18
+ <string>????</string>
19
+ <key>CFBundleVersion</key>
20
+ <string>1</string>
21
+ </dict>
22
+ </plist>
@@ -0,0 +1,32 @@
1
+ /**
2
+
3
+ AppTests.m
4
+ <%=app_name%>
5
+
6
+ <%=license%>
7
+
8
+ **/
9
+
10
+ #import <XCTest/XCTest.h>
11
+
12
+ @interface AppTests : XCTestCase
13
+
14
+ @end
15
+
16
+ @implementation AppTests
17
+
18
+ - (void)setUp
19
+ {
20
+ [super setUp];
21
+ }
22
+
23
+ - (void)tearDown
24
+ {
25
+ [super tearDown];
26
+ }
27
+
28
+ - (void)testExample
29
+ {
30
+ }
31
+
32
+ @end
@@ -0,0 +1,2 @@
1
+ /* Localized versions of Info.plist keys */
2
+
@@ -0,0 +1,19 @@
1
+ Copyright (c) <%=copyright_year%> <%=copyright_name%> (<%=copyright_link%>)
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
metadata ADDED
@@ -0,0 +1,104 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: apphill
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Dan Calinescu
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-04-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.18'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.18.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '0.18'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.18.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: xcodeproj
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.14'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.14.1
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.14'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.14.1
53
+ description: The AppHill command-line interface
54
+ email: hi@dancali.io
55
+ executables:
56
+ - apphill
57
+ extensions: []
58
+ extra_rdoc_files: []
59
+ files:
60
+ - bin/apphill
61
+ - lib/apphill.rb
62
+ - lib/templates/App/App.xcodeproj/project.pbxproj
63
+ - lib/templates/App/App.xcodeproj/project.xcworkspace/contents.xcworkspacedata
64
+ - lib/templates/App/App.xcodeproj/project.xcworkspace/xcshareddata/App.xccheckout
65
+ - lib/templates/App/App.xcodeproj/project.xcworkspace/xcuserdata/dcalinescu.xcuserdatad/UserInterfaceState.xcuserstate
66
+ - lib/templates/App/App.xcodeproj/xcuserdata/dcalinescu.xcuserdatad/xcschemes/App.xcscheme
67
+ - lib/templates/App/App.xcodeproj/xcuserdata/dcalinescu.xcuserdatad/xcschemes/xcschememanagement.plist
68
+ - lib/templates/App/App/App-Info.plist.erb
69
+ - lib/templates/App/App/App-Prefix.pch.erb
70
+ - lib/templates/App/App/AppDelegate.h.erb
71
+ - lib/templates/App/App/AppDelegate.m.erb
72
+ - lib/templates/App/App/InfoPlist.strings.erb
73
+ - lib/templates/App/App/app-icons.json.erb
74
+ - lib/templates/App/App/launch-images.json.erb
75
+ - lib/templates/App/App/main.m.erb
76
+ - lib/templates/App/AppTests/AppTests-Info.plist.erb
77
+ - lib/templates/App/AppTests/AppTests.m.erb
78
+ - lib/templates/App/AppTests/InfoPlist.strings.erb
79
+ - lib/templates/LICENSE.erb
80
+ homepage: http://apphill.io
81
+ licenses:
82
+ - "../LICENSE"
83
+ metadata: {}
84
+ post_install_message:
85
+ rdoc_options: []
86
+ require_paths:
87
+ - lib
88
+ required_ruby_version: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ required_rubygems_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ requirements: []
99
+ rubyforge_project:
100
+ rubygems_version: 2.2.2
101
+ signing_key:
102
+ specification_version: 4
103
+ summary: AppHill CLI
104
+ test_files: []