apphill 0.1.0

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.
@@ -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: []