Skip to content
Browse files

Drop Xcode launching in favour of a bundled (modified) iphonesim. Swa…

…p old example application for an iPad/iPhone universal one. The example app needs quite a lot of work doing to properly test iCuke though.
  • Loading branch information...
1 parent bfb2fbd commit ccfd4521697c9b2cac15f3102fde3f739db63ee1 Rob Holland committed
Showing with 1,764 additions and 415 deletions.
  1. +3 −0 .gitmodules
  2. +7 −15 Rakefile
  3. +3 −0 app/.gitignore
  4. +20 −0 app/LICENSE
  5. +3 −0 app/Readme.markdown
  6. +17 −0 app/Shared/AppDelegate_Shared.h
  7. +25 −0 app/Shared/AppDelegate_Shared.m
  8. BIN app/Shared/Icon.png
  9. +15 −0 app/Shared/ModalViewController.h
  10. +96 −0 app/Shared/ModalViewController.m
  11. +15 −0 app/Shared/TestViewController_Shared.h
  12. +43 −0 app/Shared/TestViewController_Shared.m
  13. +43 −0 app/Shared/Universal-Info.plist
  14. +8 −0 app/Shared/Universal_Prefix.pch
  15. +14 −0 app/Shared/main.m
  16. +301 −0 app/Universal.xcodeproj/project.pbxproj
  17. +15 −0 app/iPad/AppDelegate_Pad.h
  18. +28 −0 app/iPad/AppDelegate_Pad.m
  19. BIN app/iPad/Default-Landscape.png
  20. BIN app/iPad/Default-Portrait.png
  21. +343 −0 app/iPad/MainWindow_Pad.xib
  22. +15 −0 app/iPad/TestViewController_Pad.h
  23. +52 −0 app/iPad/TestViewController_Pad.m
  24. +15 −0 app/iPhone/AppDelegate_Phone.h
  25. +28 −0 app/iPhone/AppDelegate_Phone.m
  26. BIN app/iPhone/Default.png
  27. +363 −0 app/iPhone/MainWindow_Phone.xib
  28. +15 −0 app/iPhone/TestViewController_Phone.h
  29. +36 −0 app/iPhone/TestViewController_Phone.m
  30. +1 −0 bin/.gitignore
  31. +10 −0 bin/icuke
  32. +17 −0 bin/icuke-module
  33. +6 −0 ext/Rakefile
  34. +2 −5 ext/iCuke/sdk3.1/Rakefile
  35. +2 −5 ext/iCuke/sdk4.0/Rakefile
  36. +1 −0 ext/iphonesim
  37. +9 −96 features/iphone.feature
  38. +111 −112 iCuke.gemspec
  39. +15 −10 lib/icuke/cucumber.rb
  40. +4 −19 lib/icuke/{headless.rb → iphonesim.rb}
  41. +4 −4 lib/icuke/screen.rb
  42. +49 −2 lib/icuke/sdk.rb
  43. +10 −11 lib/icuke/simulator.rb
  44. +0 −136 lib/icuke/xcode.rb
View
3 .gitmodules
@@ -0,0 +1,3 @@
+[submodule "ext/iphonesim"]
+ path = ext/iphonesim
+ url = git://github.com/robholland/iphonesim.git
View
22 Rakefile
@@ -12,30 +12,22 @@ begin
gem.homepage = "http://github.com/unboxed/iCuke"
gem.authors = ["Rob Holland"]
gem.add_dependency "cucumber", ">= 0"
- gem.add_dependency "rb-appscript", ">= 0"
gem.add_dependency "httparty", ">= 0"
gem.add_dependency "nokogiri", ">= 0"
- gem.extensions = ['ext/iCuke/Rakefile']
- gem.files += ['ext/iCuke/libicuke.dylib']
+ gem.extensions = ['ext/Rakefile']
+ gem.files += ['bin/iphonesim']
+ gem.files += ['ext/iCuke/libicuke*.dylib']
end
Jeweler::GemcutterTasks.new
rescue LoadError
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
end
-file 'app/sdk3/build/Debug-iphonesimulator/UICatalog.app/UICatalog' do
- ICuke::SDK.use_latest(3)
- sh "cd app/sdk3 && xcodebuild -target UICatalog -configuration Debug -sdk #{ICuke::SDK.fullname}"
+file 'app/build/Debug-iphonesimulator/Universal.app/Universal' do
+ sh "cd app && xcodebuild -target Universal -configuration Debug -sdk #{ICuke::SDK.fullname}"
end
-task :sdk3_app => 'app/sdk3/build/Debug-iphonesimulator/UICatalog.app/UICatalog'
-task :features => :sdk3_app
-
-file 'app/sdk4/build/Debug-iphonesimulator/UICatalog.app/UICatalog' do
- ICuke::SDK.use_latest(4)
- sh "cd app/sdk4 && xcodebuild -target UICatalog -configuration Debug -sdk #{ICuke::SDK.fullname}"
-end
-task :sdk4_app => 'app/sdk3/build/Debug-iphonesimulator/UICatalog.app/UICatalog'
-task :features => :sdk4_app
+task :app => 'app/sdk3/build/Debug-iphonesimulator/UICatalog.app/UICatalog'
+task :features => :app
task :lib do
sh 'cd ext/iCuke && rake'
View
3 app/.gitignore
@@ -1 +1,4 @@
+.DS_Store
build
+*.mode1v3
+*.pbxuser
View
20 app/LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2010 Sam Soffes
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
View
3 app/Readme.markdown
@@ -0,0 +1,3 @@
+# Universal iPad/iPhone Example
+
+Simple example app that uses 3.2 as the base SDK and 3.1.3 as the iPhone deployment target.
View
17 app/Shared/AppDelegate_Shared.h
@@ -0,0 +1,17 @@
+//
+// AppDelegate_Shared.h
+// Universal
+//
+// Created by Sam Soffes on 4/12/10.
+// Copyright 2010 Sam Soffes. All rights reserved.
+//
+
+@interface AppDelegate_Shared : NSObject <UIApplicationDelegate> {
+
+ UIWindow *window;
+ UINavigationController *navigationController;
+}
+
+@property (nonatomic, retain) IBOutlet UIWindow *window;
+
+@end
View
25 app/Shared/AppDelegate_Shared.m
@@ -0,0 +1,25 @@
+ //
+// AppDelegate_Shared.m
+// Universal
+//
+// Created by Sam Soffes on 4/12/10.
+// Copyright 2010 Sam Soffes. All rights reserved.
+//
+
+#import "AppDelegate_Shared.h"
+
+@implementation AppDelegate_Shared
+
+@synthesize window;
+
+#pragma mark -
+#pragma mark NSObject
+#pragma mark -
+
+- (void)dealloc {
+ [window release];
+ [navigationController release];
+ [super dealloc];
+}
+
+@end
View
BIN app/Shared/Icon.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
15 app/Shared/ModalViewController.h
@@ -0,0 +1,15 @@
+//
+// ModalViewController.h
+// Universal
+//
+// Created by Sam Soffes on 4/12/10.
+// Copyright 2010 Sam Soffes. All rights reserved.
+//
+
+@interface ModalViewController : UITableViewController {
+
+}
+
+- (void)close:(id)sender;
+
+@end
View
96 app/Shared/ModalViewController.m
@@ -0,0 +1,96 @@
+//
+// ModalViewController.m
+// Universal
+//
+// Created by Sam Soffes on 4/12/10.
+// Copyright 2010 Sam Soffes. All rights reserved.
+//
+
+#import "ModalViewController.h"
+
+@implementation ModalViewController
+
+NSString *lorem[] = {
+ @"Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
+ @"Donec dictum vehicula suscipit.",
+ @"Morbi eget mauris vel mauris pellentesque luctus ut sed nulla.",
+ @"Aliquam blandit risus ut magna egestas ac commodo lacus sagittis.",
+ @"Duis dui nunc, rutrum a tincidunt nec, commodo vitae ante.",
+ @"Mauris fringilla est at nibh porta pulvinar.",
+ @"Quisque mattis, odio sit amet ultrices elementum, dui libero scelerisque nisl, a bibendum ante orci ut metus.",
+ @"Aliquam id lorem arcu.",
+ @"Fusce luctus, nibh facilisis sagittis ornare, neque ligula accumsan ipsum, non dignissim sapien nulla et turpis.",
+ @"Proin pretium erat nec ipsum fringilla pellentesque.",
+ @"Fusce sem nisi, tincidunt in sodales ac, tincidunt non lorem."
+};
+
+
+#pragma mark -
+#pragma mark UIViewController
+#pragma mark -
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+
+ self.title = @"Shared Modal";
+
+ if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
+ self.contentSizeForViewInPopover = CGSizeMake(320.0, 300.0);
+ } else {
+ UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithTitle:@"Close" style:UIBarButtonItemStyleBordered target:self action:@selector(close:)];
+ self.navigationItem.rightBarButtonItem = closeButton;
+ [closeButton release];
+ }
+}
+
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+ if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
+ return YES;
+ }
+
+ return interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown;
+}
+
+
+#pragma mark -
+#pragma mark Actions
+#pragma mark -
+
+- (void)close:(id)sender {
+ [self.navigationController dismissModalViewControllerAnimated:YES];
+}
+
+
+#pragma mark -
+#pragma mark UITableViewDataSource
+#pragma mark -
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+ return sizeof(lorem) / sizeof(NSString *);
+}
+
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+ static NSString *cellIdentifier = @"cellIdentifier";
+
+ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
+ if (!cell) {
+ cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease];
+ }
+
+ cell.textLabel.text = lorem[indexPath.row];
+
+ return cell;
+}
+
+
+#pragma mark -
+#pragma mark UITableViewDelegate
+#pragma mark -
+
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+ [tableView deselectRowAtIndexPath:indexPath animated:YES];
+}
+
+@end
View
15 app/Shared/TestViewController_Shared.h
@@ -0,0 +1,15 @@
+//
+// TestViewController_Shared.h
+// Universal
+//
+// Created by Sam Soffes on 4/12/10.
+// Copyright 2010 Sam Soffes. All rights reserved.
+//
+
+@interface TestViewController_Shared : UIViewController {
+
+}
+
+- (void)test:(id)sender;
+
+@end
View
43 app/Shared/TestViewController_Shared.m
@@ -0,0 +1,43 @@
+//
+// TestViewController_Shared.m
+// Universal
+//
+// Created by Sam Soffes on 4/12/10.
+// Copyright 2010 Sam Soffes. All rights reserved.
+//
+
+#import "TestViewController_Shared.h"
+
+@implementation TestViewController_Shared
+
+#pragma mark -
+#pragma mark UIViewController
+#pragma mark -
+
+- (void)viewDidLoad {
+ UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
+ button.frame = CGRectMake(20.0, 20.0, 280.0, 44.0);
+ [button setTitle:@"Show Test Modal" forState:UIControlStateNormal];
+ [button addTarget:self action:@selector(test:) forControlEvents:UIControlEventTouchUpInside];
+ [self.view addSubview:button];
+}
+
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+ if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
+ return YES;
+ }
+
+ return interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown;
+}
+
+
+#pragma mark -
+#pragma mark Actions
+#pragma mark -
+
+- (void)test:(id)sender {
+ // Must be overridden by subclass
+}
+
+@end
View
43 app/Shared/Universal-Info.plist
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleDisplayName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIconFile</key>
+ <string>Icon.png</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.samsoffes.universal-ipad-iphone-example</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>LSRequiresIPhoneOS</key>
+ <true/>
+ <key>NSMainNibFile</key>
+ <string>MainWindow_Phone</string>
+ <key>NSMainNibFile~ipad</key>
+ <string>MainWindow_Pad</string>
+ <key>UISupportedInterfaceOrientations</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ </array>
+ <key>UISupportedInterfaceOrientations~ipad</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationPortraitUpsideDown</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ </array>
+</dict>
+</plist>
View
8 app/Shared/Universal_Prefix.pch
@@ -0,0 +1,8 @@
+//
+// Prefix header for all source files of the 'Universal' target in the 'Universal' project
+//
+
+#ifdef __OBJC__
+ #import <Foundation/Foundation.h>
+ #import <UIKit/UIKit.h>
+#endif
View
14 app/Shared/main.m
@@ -0,0 +1,14 @@
+//
+// main.m
+// Universal
+//
+// Created by Sam Soffes on 4/12/10.
+// Copyright Sam Soffes 2010. All rights reserved.
+//
+
+int main(int argc, char *argv[]) {
+ NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
+ int retVal = UIApplicationMain(argc, argv, nil, nil);
+ [pool release];
+ return retVal;
+}
View
301 app/Universal.xcodeproj/project.pbxproj
@@ -0,0 +1,301 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 45;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
+ 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
+ 288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; };
+ B218365B1176AC9900D72061 /* AppDelegate_Pad.m in Sources */ = {isa = PBXBuildFile; fileRef = B21836471176AC9900D72061 /* AppDelegate_Pad.m */; };
+ B218365C1176AC9900D72061 /* MainWindow_Pad.xib in Resources */ = {isa = PBXBuildFile; fileRef = B21836481176AC9900D72061 /* MainWindow_Pad.xib */; };
+ B218365D1176AC9900D72061 /* TestViewController_Pad.m in Sources */ = {isa = PBXBuildFile; fileRef = B218364A1176AC9900D72061 /* TestViewController_Pad.m */; };
+ B218365E1176AC9900D72061 /* AppDelegate_Phone.m in Sources */ = {isa = PBXBuildFile; fileRef = B218364D1176AC9900D72061 /* AppDelegate_Phone.m */; };
+ B218365F1176AC9900D72061 /* MainWindow_Phone.xib in Resources */ = {isa = PBXBuildFile; fileRef = B218364E1176AC9900D72061 /* MainWindow_Phone.xib */; };
+ B21836601176AC9900D72061 /* TestViewController_Phone.m in Sources */ = {isa = PBXBuildFile; fileRef = B21836501176AC9900D72061 /* TestViewController_Phone.m */; };
+ B21836611176AC9900D72061 /* AppDelegate_Shared.m in Sources */ = {isa = PBXBuildFile; fileRef = B21836531176AC9900D72061 /* AppDelegate_Shared.m */; };
+ B21836621176AC9900D72061 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = B21836541176AC9900D72061 /* main.m */; };
+ B21836631176AC9900D72061 /* ModalViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B21836561176AC9900D72061 /* ModalViewController.m */; };
+ B21836641176AC9900D72061 /* TestViewController_Shared.m in Sources */ = {isa = PBXBuildFile; fileRef = B21836581176AC9900D72061 /* TestViewController_Shared.m */; };
+ B272832711779005003052E0 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = B272832611779005003052E0 /* Icon.png */; };
+ B272832911779009003052E0 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = B272832811779009003052E0 /* Default.png */; };
+ B27283621177C36D003052E0 /* Default-Landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = B27283601177C36D003052E0 /* Default-Landscape.png */; };
+ B27283631177C36D003052E0 /* Default-Portrait.png in Resources */ = {isa = PBXBuildFile; fileRef = B27283611177C36D003052E0 /* Default-Portrait.png */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ 1D6058910D05DD3D006BFB54 /* Universal.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Universal.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ 288765FC0DF74451002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+ B21836461176AC9900D72061 /* AppDelegate_Pad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate_Pad.h; sourceTree = "<group>"; };
+ B21836471176AC9900D72061 /* AppDelegate_Pad.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate_Pad.m; sourceTree = "<group>"; };
+ B21836481176AC9900D72061 /* MainWindow_Pad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow_Pad.xib; sourceTree = "<group>"; };
+ B21836491176AC9900D72061 /* TestViewController_Pad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestViewController_Pad.h; sourceTree = "<group>"; };
+ B218364A1176AC9900D72061 /* TestViewController_Pad.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestViewController_Pad.m; sourceTree = "<group>"; };
+ B218364C1176AC9900D72061 /* AppDelegate_Phone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate_Phone.h; sourceTree = "<group>"; };
+ B218364D1176AC9900D72061 /* AppDelegate_Phone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate_Phone.m; sourceTree = "<group>"; };
+ B218364E1176AC9900D72061 /* MainWindow_Phone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow_Phone.xib; sourceTree = "<group>"; };
+ B218364F1176AC9900D72061 /* TestViewController_Phone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestViewController_Phone.h; sourceTree = "<group>"; };
+ B21836501176AC9900D72061 /* TestViewController_Phone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestViewController_Phone.m; sourceTree = "<group>"; };
+ B21836521176AC9900D72061 /* AppDelegate_Shared.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate_Shared.h; sourceTree = "<group>"; };
+ B21836531176AC9900D72061 /* AppDelegate_Shared.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate_Shared.m; sourceTree = "<group>"; };
+ B21836541176AC9900D72061 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+ B21836551176AC9900D72061 /* ModalViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ModalViewController.h; sourceTree = "<group>"; };
+ B21836561176AC9900D72061 /* ModalViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ModalViewController.m; sourceTree = "<group>"; };
+ B21836571176AC9900D72061 /* TestViewController_Shared.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestViewController_Shared.h; sourceTree = "<group>"; };
+ B21836581176AC9900D72061 /* TestViewController_Shared.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestViewController_Shared.m; sourceTree = "<group>"; };
+ B21836591176AC9900D72061 /* Universal-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Universal-Info.plist"; sourceTree = "<group>"; };
+ B218365A1176AC9900D72061 /* Universal_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Universal_Prefix.pch; sourceTree = "<group>"; };
+ B272832611779005003052E0 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Icon.png; sourceTree = "<group>"; };
+ B272832811779009003052E0 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
+ B27283601177C36D003052E0 /* Default-Landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Landscape.png"; sourceTree = "<group>"; };
+ B27283611177C36D003052E0 /* Default-Portrait.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Portrait.png"; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
+ 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
+ 288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 19C28FACFE9D520D11CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 1D6058910D05DD3D006BFB54 /* Universal.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
+ isa = PBXGroup;
+ children = (
+ B21836511176AC9900D72061 /* Shared */,
+ B218364B1176AC9900D72061 /* iPhone */,
+ B21836451176AC9900D72061 /* iPad */,
+ 29B97323FDCFA39411CA2CEA /* Frameworks */,
+ 19C28FACFE9D520D11CA2CBB /* Products */,
+ );
+ name = CustomTemplate;
+ sourceTree = "<group>";
+ };
+ 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
+ 1D30AB110D05D00D00671497 /* Foundation.framework */,
+ 288765FC0DF74451002DB57D /* CoreGraphics.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ B21836451176AC9900D72061 /* iPad */ = {
+ isa = PBXGroup;
+ children = (
+ B21836461176AC9900D72061 /* AppDelegate_Pad.h */,
+ B21836471176AC9900D72061 /* AppDelegate_Pad.m */,
+ B21836491176AC9900D72061 /* TestViewController_Pad.h */,
+ B218364A1176AC9900D72061 /* TestViewController_Pad.m */,
+ B21836481176AC9900D72061 /* MainWindow_Pad.xib */,
+ B27283601177C36D003052E0 /* Default-Landscape.png */,
+ B27283611177C36D003052E0 /* Default-Portrait.png */,
+ );
+ path = iPad;
+ sourceTree = "<group>";
+ };
+ B218364B1176AC9900D72061 /* iPhone */ = {
+ isa = PBXGroup;
+ children = (
+ B218364C1176AC9900D72061 /* AppDelegate_Phone.h */,
+ B218364D1176AC9900D72061 /* AppDelegate_Phone.m */,
+ B218364F1176AC9900D72061 /* TestViewController_Phone.h */,
+ B21836501176AC9900D72061 /* TestViewController_Phone.m */,
+ B218364E1176AC9900D72061 /* MainWindow_Phone.xib */,
+ B272832811779009003052E0 /* Default.png */,
+ );
+ path = iPhone;
+ sourceTree = "<group>";
+ };
+ B21836511176AC9900D72061 /* Shared */ = {
+ isa = PBXGroup;
+ children = (
+ B272832611779005003052E0 /* Icon.png */,
+ B21836521176AC9900D72061 /* AppDelegate_Shared.h */,
+ B21836531176AC9900D72061 /* AppDelegate_Shared.m */,
+ B21836571176AC9900D72061 /* TestViewController_Shared.h */,
+ B21836581176AC9900D72061 /* TestViewController_Shared.m */,
+ B21836551176AC9900D72061 /* ModalViewController.h */,
+ B21836561176AC9900D72061 /* ModalViewController.m */,
+ B21836541176AC9900D72061 /* main.m */,
+ B21836591176AC9900D72061 /* Universal-Info.plist */,
+ B218365A1176AC9900D72061 /* Universal_Prefix.pch */,
+ );
+ path = Shared;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 1D6058900D05DD3D006BFB54 /* Universal */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "Universal" */;
+ buildPhases = (
+ 1D60588D0D05DD3D006BFB54 /* Resources */,
+ 1D60588E0D05DD3D006BFB54 /* Sources */,
+ 1D60588F0D05DD3D006BFB54 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = Universal;
+ productName = Universal;
+ productReference = 1D6058910D05DD3D006BFB54 /* Universal.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 29B97313FDCFA39411CA2CEA /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Universal" */;
+ compatibilityVersion = "Xcode 3.1";
+ hasScannedForEncodings = 1;
+ mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 1D6058900D05DD3D006BFB54 /* Universal */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 1D60588D0D05DD3D006BFB54 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ B218365C1176AC9900D72061 /* MainWindow_Pad.xib in Resources */,
+ B218365F1176AC9900D72061 /* MainWindow_Phone.xib in Resources */,
+ B272832711779005003052E0 /* Icon.png in Resources */,
+ B272832911779009003052E0 /* Default.png in Resources */,
+ B27283621177C36D003052E0 /* Default-Landscape.png in Resources */,
+ B27283631177C36D003052E0 /* Default-Portrait.png in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 1D60588E0D05DD3D006BFB54 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ B218365B1176AC9900D72061 /* AppDelegate_Pad.m in Sources */,
+ B218365D1176AC9900D72061 /* TestViewController_Pad.m in Sources */,
+ B218365E1176AC9900D72061 /* AppDelegate_Phone.m in Sources */,
+ B21836601176AC9900D72061 /* TestViewController_Phone.m in Sources */,
+ B21836611176AC9900D72061 /* AppDelegate_Shared.m in Sources */,
+ B21836621176AC9900D72061 /* main.m in Sources */,
+ B21836631176AC9900D72061 /* ModalViewController.m in Sources */,
+ B21836641176AC9900D72061 /* TestViewController_Shared.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ 1D6058940D05DD3E006BFB54 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = Shared/Universal_Prefix.pch;
+ INFOPLIST_FILE = "Shared/Universal-Info.plist";
+ PRODUCT_NAME = Universal;
+ };
+ name = Debug;
+ };
+ 1D6058950D05DD3E006BFB54 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = YES;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = Shared/Universal_Prefix.pch;
+ INFOPLIST_FILE = "Shared/Universal-Info.plist";
+ PRODUCT_NAME = Universal;
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+ C01FCF4F08A954540054247B /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 3.1.3;
+ PREBINDING = NO;
+ SDKROOT = iphoneos3.2;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ C01FCF5008A954540054247B /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 3.1.3;
+ OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+ PREBINDING = NO;
+ SDKROOT = iphoneos3.2;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "Universal" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1D6058940D05DD3E006BFB54 /* Debug */,
+ 1D6058950D05DD3E006BFB54 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Universal" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ C01FCF4F08A954540054247B /* Debug */,
+ C01FCF5008A954540054247B /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
+}
View
15 app/iPad/AppDelegate_Pad.h
@@ -0,0 +1,15 @@
+//
+// AppDelegate_Pad.h
+// Universal
+//
+// Created by Sam Soffes on 4/12/10.
+// Copyright Sam Soffes 2010. All rights reserved.
+//
+
+#import "AppDelegate_Shared.h"
+
+@interface AppDelegate_Pad : AppDelegate_Shared {
+
+}
+
+@end
View
28 app/iPad/AppDelegate_Pad.m
@@ -0,0 +1,28 @@
+//
+// AppDelegate_Pad.m
+// Universal
+//
+// Created by Sam Soffes on 4/12/10.
+// Copyright Sam Soffes 2010. All rights reserved.
+//
+
+#import "AppDelegate_Pad.h"
+#import "TestViewController_Pad.h"
+
+@implementation AppDelegate_Pad
+
+#pragma mark -
+#pragma mark UIApplicationDelegate
+#pragma mark -
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
+ TestViewController_Pad *viewController = [[TestViewController_Pad alloc] init];
+ navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
+ [viewController release];
+
+ [window addSubview:navigationController.view];
+ [window makeKeyAndVisible];
+ return YES;
+}
+
+@end
View
BIN app/iPad/Default-Landscape.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN app/iPad/Default-Portrait.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
343 app/iPad/MainWindow_Pad.xib
@@ -0,0 +1,343 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">800</int>
+ <string key="IBDocument.SystemVersion">10D541</string>
+ <string key="IBDocument.InterfaceBuilderVersion">760</string>
+ <string key="IBDocument.AppKitVersion">1038.29</string>
+ <string key="IBDocument.HIToolboxVersion">460.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">81</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="841351856">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="606714003">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIWindow" id="62075450">
+ <nil key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrameSize">{768, 1024}</string>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MSAxIDEAA</bytes>
+ </object>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics">
+ <int key="IBUIStatusBarStyle">2</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ <bool key="IBUIResizesToFullScreen">YES</bool>
+ </object>
+ <object class="IBUICustomObject" id="250404236">
+ <string key="targetRuntimeIdentifier">IBIPadFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">window</string>
+ <reference key="source" ref="250404236"/>
+ <reference key="destination" ref="62075450"/>
+ </object>
+ <int key="connectionID">7</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="250404236"/>
+ </object>
+ <int key="connectionID">8</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="841351856"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="606714003"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2</int>
+ <reference key="object" ref="62075450"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">6</int>
+ <reference key="object" ref="250404236"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>2.IBEditorWindowLastContentRect</string>
+ <string>2.IBPluginDependency</string>
+ <string>6.CustomClassName</string>
+ <string>6.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>UIApplication</string>
+ <string>UIResponder</string>
+ <string>{{903, 55}, {768, 1024}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>AppDelegate_Pad</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">9</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">AppDelegate_Pad</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <string key="NS.key.0">window</string>
+ <string key="NS.object.0">UIWindow</string>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSNetServices.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSPort.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSStream.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSXMLParser.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="786211723">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIApplication</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIApplication.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="786211723"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIWindow</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIWindow.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="800" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3100" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Universal.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <string key="IBCocoaTouchPluginVersion">81</string>
+ </data>
+</archive>
View
15 app/iPad/TestViewController_Pad.h
@@ -0,0 +1,15 @@
+//
+// TestViewController_Pad.h
+// Universal
+//
+// Created by Sam Soffes on 4/12/10.
+// Copyright 2010 Sam Soffes. All rights reserved.
+//
+
+#import "TestViewController_Shared.h"
+
+@interface TestViewController_Pad : TestViewController_Shared <UIPopoverControllerDelegate> {
+
+}
+
+@end
View
52 app/iPad/TestViewController_Pad.m
@@ -0,0 +1,52 @@
+//
+// TestViewController_Pad.m
+// Universal
+//
+// Created by Sam Soffes on 4/12/10.
+// Copyright 2010 Sam Soffes. All rights reserved.
+//
+
+#import "TestViewController_Pad.h"
+#import "ModalViewController.h"
+
+@implementation TestViewController_Pad
+
+#pragma mark -
+#pragma mark UIViewController
+#pragma mark -
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+ self.title = @"iPad";
+}
+
+
+#pragma mark -
+#pragma mark Actions
+#pragma mark -
+
+- (void)test:(id)sender {
+ ModalViewController *viewController = [[ModalViewController alloc] init];
+ UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
+ [viewController release];
+
+ Class popoverClass = NSClassFromString(@"UIPopoverController");
+ if (popoverClass) {
+ UIPopoverController *popover = [[popoverClass alloc] initWithContentViewController:navigationController];
+ popover.delegate = self;
+ [popover presentPopoverFromRect:[sender frame] inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
+ }
+
+ [navigationController release];
+}
+
+
+#pragma mark -
+#pragma mark UIPopoverControllerDelegate
+#pragma mark -
+
+- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
+ [popoverController release];
+}
+
+@end
View
15 app/iPhone/AppDelegate_Phone.h
@@ -0,0 +1,15 @@
+//
+// AppDelegate_Phone.h
+// Universal
+//
+// Created by Sam Soffes on 4/12/10.
+// Copyright Sam Soffes 2010. All rights reserved.
+//
+
+#import "AppDelegate_Shared.h"
+
+@interface AppDelegate_Phone : AppDelegate_Shared {
+
+}
+
+@end
View
28 app/iPhone/AppDelegate_Phone.m
@@ -0,0 +1,28 @@
+//
+// AppDelegate_Phone.m
+// Universal
+//
+// Created by Sam Soffes on 4/12/10.
+// Copyright Sam Soffes 2010. All rights reserved.
+//
+
+#import "AppDelegate_Phone.h"
+#import "TestViewController_Phone.h"
+
+@implementation AppDelegate_Phone
+
+#pragma mark -
+#pragma mark UIApplicationDelegate
+#pragma mark -
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
+ TestViewController_Phone *viewController = [[TestViewController_Phone alloc] init];
+ navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
+ [viewController release];
+
+ [window addSubview:navigationController.view];
+ [window makeKeyAndVisible];
+ return YES;
+}
+
+@end
View
BIN app/iPhone/Default.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
363 app/iPhone/MainWindow_Phone.xib
@@ -0,0 +1,363 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">800</int>
+ <string key="IBDocument.SystemVersion">10D541</string>
+ <string key="IBDocument.InterfaceBuilderVersion">760</string>
+ <string key="IBDocument.AppKitVersion">1038.29</string>
+ <string key="IBDocument.HIToolboxVersion">460.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">81</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="2"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="841351856">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="450319686">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUICustomObject" id="987256611">
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIWindow" id="380026005">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">1316</int>
+ <object class="NSPSMatrix" key="NSFrameMatrix"/>
+ <string key="NSFrameSize">{320, 480}</string>
+ <reference key="NSSuperview"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MSAxIDEAA</bytes>
+ </object>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <bool key="IBUIResizesToFullScreen">YES</bool>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="987256611"/>
+ </object>
+ <int key="connectionID">5</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">window</string>
+ <reference key="source" ref="987256611"/>
+ <reference key="destination" ref="380026005"/>
+ </object>
+ <int key="connectionID">6</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2</int>
+ <reference key="object" ref="380026005"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="841351856"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">4</int>
+ <reference key="object" ref="987256611"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">App Delegate</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="450319686"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>2.IBAttributePlaceholdersKey</string>
+ <string>2.IBEditorWindowLastContentRect</string>
+ <string>2.IBPluginDependency</string>
+ <string>2.UIWindow.visibleAtLaunch</string>
+ <string>4.CustomClassName</string>
+ <string>4.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>UIApplication</string>
+ <string>UIResponder</string>
+ <object class="NSMutableDictionary">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <string>{{520, 800}, {320, 480}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <integer value="1"/>
+ <string>AppDelegate_Phone</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">8</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">AppDelegate_Phone</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <string key="NS.key.0">window</string>
+ <string key="NS.object.0">UIWindow</string>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">iPhone/AppDelegate_Phone.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">AppDelegate_Phone</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSNetServices.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSPort.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSStream.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSXMLParser.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="565734826">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIApplication</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIApplication.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="565734826"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIWindow</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIWindow.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="800" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3100" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../Universal.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <string key="IBCocoaTouchPluginVersion">81</string>
+ </data>
+</archive>
View
15 app/iPhone/TestViewController_Phone.h
@@ -0,0 +1,15 @@
+//
+// TestViewController_Phone.h
+// Universal
+//
+// Created by Sam Soffes on 4/12/10.
+// Copyright 2010 Sam Soffes. All rights reserved.
+//
+
+#import "TestViewController_Shared.h"
+
+@interface TestViewController_Phone : TestViewController_Shared {
+
+}
+
+@end
View
36 app/iPhone/TestViewController_Phone.m
@@ -0,0 +1,36 @@
+//
+// TestViewController_Phone.m
+// Universal
+//
+// Created by Sam Soffes on 4/12/10.
+// Copyright 2010 Sam Soffes. All rights reserved.
+//
+
+#import "TestViewController_Phone.h"
+#import "ModalViewController.h"
+
+@implementation TestViewController_Phone
+
+#pragma mark -
+#pragma mark UIViewController
+#pragma mark -
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+ self.title = @"iPhone";
+}
+
+
+#pragma mark -
+#pragma mark Actions
+#pragma mark -
+
+- (void)test:(id)sender {
+ ModalViewController *viewController = [[ModalViewController alloc] init];
+ UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
+ [viewController release];
+ [self.navigationController presentModalViewController:navigationController animated:YES];
+ [navigationController release];
+}
+
+@end
View
1 bin/.gitignore
@@ -0,0 +1 @@
+iphonesim
View
10 bin/icuke
@@ -0,0 +1,10 @@
+#!/usr/bin/env ruby
+
+require 'fileutils'
+
+base = File.expand_path(ARGV[0])
+FileUtils.mkdir_p(File.join(base, 'features', 'support'))
+File.open(File.join(base, 'features', 'support', 'env.rb'), 'w') do |f|
+ f.puts "require 'icuke/cucumber'"
+end
+FileUtils.touch File.join(base, 'features', 'example.feature')
View
17 bin/icuke-module
@@ -0,0 +1,17 @@
+#!/usr/bin/env ruby
+
+require File.join(File.dirname(__FILE__), '..', 'lib', 'icuke', 'sdk')
+
+sdk = ARGV[0]
+ICuke::SDK.use_latest(sdk)
+file = ARGV[1]
+frameworks = ['Foundation', 'CFNetwork']
+frameworks.concat(ARGV[2 .. -1])
+frameworks = frameworks.map { |f| "-framework #{f}" }.join(' ')
+
+compile = "#{ICuke::SDK.gcc} -c -o #{File.basename(file, '.m')}.o #{file} "
+puts compile
+system compile
+link = "#{ICuke::SDK.ld} -dynamiclib -o #{ICuke::SDK.dylib(File.basename(file, '.m'))} -undefined dynamic_lookup #{File.basename(file, '.m')}.o #{frameworks}"
+puts link
+system link
View
6 ext/Rakefile
@@ -0,0 +1,6 @@
+task :install do
+ sh "cd iphonesim && xcodebuild install DSTROOT=../../"
+ sh "cd ext && rake"
+end
+
+task :default => :install
View
7 ext/iCuke/sdk3.1/Rakefile
@@ -4,17 +4,14 @@ require 'rake/clean'
version = '3.1'
ICuke::SDK.use_latest(version)
-CFLAGS = '-arch i386 -pipe -ggdb -std=c99 -DTARGET_OS_IPHONE'
-SDK_CFLAGS = "-isysroot #{ICuke::SDK.root} -F/System/Library/PrivateFrameworks -D__IPHONE_OS_VERSION_MIN_REQUIRED=30200"
-
rule '.o' => '.m' do |o|
- sh "xcrun -sdk #{ICuke::SDK.fullname} gcc -I. -Ijson -c -o #{o.name} -x objective-c #{CFLAGS} #{SDK_CFLAGS} #{o.source}"
+ sh "#{ICuke::SDK.gcc} -c -o #{o.name} #{o.source}"
end
CLEAN.include('**/*.o')
file "../#{ICuke::SDK.dylib}" => FileList['**/*.m'].ext('.o') do |t|
- sh "xcrun -sdk #{ICuke::SDK.fullname} gcc -dynamiclib -o #{t.name} #{CFLAGS} #{SDK_CFLAGS} -framework Foundation -framework GraphicsServices -framework UIKit -framework CFNetwork -framework AXRuntime #{t.prerequisites.join(' ')}"
+ sh "#{ICuke::SDK.gcc} -dynamiclib -o #{t.name} -framework Foundation -framework GraphicsServices -framework UIKit -framework CFNetwork -framework AXRuntime #{t.prerequisites.join(' ')}"
end
CLEAN.include("../#{ICuke::SDK.dylib}")
View
7 ext/iCuke/sdk4.0/Rakefile
@@ -4,17 +4,14 @@ require 'rake/clean'
version = '4.0'
ICuke::SDK.use_latest(version)
-CFLAGS = '-arch i386 -pipe -ggdb -std=c99 -DTARGET_OS_IPHONE'
-SDK_CFLAGS = "-isysroot #{ICuke::SDK.root} -F/System/Library/PrivateFrameworks -D__IPHONE_OS_VERSION_MIN_REQUIRED=40000"
-
rule '.o' => '.m' do |o|
- sh "xcrun -sdk #{ICuke::SDK.fullname} gcc -I. -Ijson -c -o #{o.name} -x objective-c -fobjc-abi-version=2 -fobjc-legacy-dispatch #{CFLAGS} #{SDK_CFLAGS} #{o.source}"
+ sh "#{ICuke::SDK.gcc} -c -o #{o.name} #{o.source}"
end
CLEAN.include('**/*.o')
file "../#{ICuke::SDK.dylib}" => FileList['**/*.m'].ext('.o') do |t|
- sh "xcrun -sdk #{ICuke::SDK.fullname} gcc -dynamiclib -o #{t.name} #{CFLAGS} -Xlinker -objc_abi_version -Xlinker 2 #{SDK_CFLAGS} -framework Foundation -framework GraphicsServices -framework UIKit -framework CFNetwork -framework AXRuntime #{t.prerequisites.join(' ')}"
+ sh "#{ICuke::SDK.ld} -dynamiclib -o #{t.name} -framework Foundation -framework GraphicsServices -framework UIKit -framework CFNetwork -framework AXRuntime #{t.prerequisites.join(' ')}"
end
CLEAN.include("../#{ICuke::SDK.dylib}")
1 ext/iphonesim
@@ -0,0 +1 @@
+Subproject commit e4ea78010d013873e301038051338edaa8108c0a
View
105 features/iphone.feature
@@ -4,99 +4,12 @@ Feature: iPhone integration tests
I want cucumber to be able to drive the simulator
Background:
- Given "app/sdk3.1/UICatalog.xcodeproj" is loaded in the simulator with SDK 3.1
-
- Scenario: Scrolling up and down
- When I tap "Buttons"
- And I scroll down
- And I scroll up
- And I tap "Back"
- And I scroll down
- And I tap "Transitions"
-
- Scenario: Scrolling to a visible object
- When I scroll down to "Transitions"
- Then I should see "Transitions"
-
- Scenario: Pressing buttons
- When I tap "Buttons"
- And I tap "Gray"
- And I tap "Right pointing arrow"
- And I tap "Rounded"
- And I scroll down
- And I tap "More info"
- And I tap "Add contact"
-
- Scenario: Switches
- When I tap "Controls"
- And I tap "Standard switch"
-
- Scenario: Finding text
- When I tap "TextView"
- Then I should see "Now is the time for all good developers to come to serve their country."
-
- Scenario: Entering text
- When I tap "TextFields"
- And I type "symb0ls $!@ and spaces" in "Normal"
- Then I should see "symb0ls $!@ and spaces"
- When I type "cucumber for iphone" in "Rounded"
- And I should see "cucumber for iphone"
- And I type "secret" in "Secure"
-
- Scenario: Segment
- When I tap "Segment"
- And I tap "Check"
- And I tap "Search"
- And I tap "Tools"
-
- Scenario: Web
- When I tap "Web"
- And I tap "Clear text"
- And I type "http://google.com" in "URL entry"
-
- Scenario: Toolbar
- When I scroll down
- And I tap "Toolbar"
- And I tap "Black"
- And I tap "Translucent"
- And I tap "Default"
- And I tap "Tinted"
- And I tap "Bordered"
- And I tap "Plain"
- And I tap "Item"
- And I tap "Done"
-
- Scenario: Transitions
- When I scroll down
- And I tap "Transitions"
- And I tap "Flip Image"
- And I tap "Flip Image"
- And I tap "Curl Image"
- And I tap "Curl Image"
-
- Scenario: Draging
- When I tap "Controls"
- And I drag from 258,285 to 319,285
- And I drag from 293,285 to 258,285
- And I drag from 244,439 to 319,439
- And I tap "Back"
- And I tap "Controls"
- And I select the "Standard Slider" slider and drag 50 pixels left
- And I select the "Standard Slider" slider and drag 20 pixels right
- And I select the "Standard Slider" slider and drag 40 pixels left
- And I select the "Standard Slider" slider and drag 70 pixels right
- And I move the "Standard Slider" slider to 50 percent
- And I move the "Standard Slider" slider to 25 percent
- And I move the "Standard Slider" slider to 0 percent
- And I move the "Standard Slider" slider to 75 percent
- And I move the "Standard Slider" slider to 100 percent
- And I move the "Standard Slider" slider to 50 percent
- And I tap "Back"
- And I scroll down
- And I tap "Toolbar"
- And I drag from 97,400 to 97,233
- And I tap "Back"
-
- Scenario: Alerts
- When I scroll down
- And I tap "Alerts"
+ Given "app/Universal.xcodeproj" is loaded in the iPhone simulator
+
+ Scenario: Scrolling
+ When I tap "Show Test Modal"
+ Then I should see "Lorem ipsum dolor"
+ But I should not see "Fusce sem nisi"
+ When I scroll down to "Fusce sem nisi"
+ Then I should see "Fusce sem nisi"
+ But I should not see "Lorem ipsum dolor"
View
223 iCuke.gemspec
@@ -5,141 +5,143 @@
Gem::Specification.new do |s|
s.name = %q{iCuke}
- s.version = "0.5.5"
+ s.version = "0.6.0"
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
s.authors = ["Rob Holland"]
- s.date = %q{2010-06-02}
+ s.date = %q{2010-06-20}
s.description = %q{Cucumber support for iPhone applications}
s.email = %q{rob@the-it-refinery.co.uk}
- s.extensions = ["ext/iCuke/Rakefile"]
+ s.executables = ["icuke", "icuke-module", "iphonesim"]
+ s.extensions = ["ext/Rakefile"]
s.extra_rdoc_files = [
"LICENSE",
"README.rdoc"
]
s.files = [
".gitignore",
+ ".gitmodules",
"History.txt",
"LICENSE",
"README.rdoc",
"Rakefile",
"VERSION",
"app/.gitignore",
- "app/AlertsViewController.h",
- "app/AlertsViewController.m",
- "app/AppDelegate.h",
- "app/AppDelegate.m",
- "app/ButtonsViewController.h",
- "app/ButtonsViewController.m",
- "app/Constants.h",
- "app/ControlsViewController.h",
- "app/ControlsViewController.m",
- "app/ImagesViewController.h",
- "app/ImagesViewController.m",
- "app/Info.plist",
- "app/MainViewController.h",
- "app/MainViewController.m",
- "app/Picker/CustomPickerDataSource.h",
- "app/Picker/CustomPickerDataSource.m",
- "app/Picker/CustomView.h",
- "app/Picker/CustomView.m",
- "app/PickerViewController.h",
- "app/PickerViewController.m",
- "app/Prefix.pch",
- "app/ReadMe.txt",
- "app/SearchBarController.h",
- "app/SearchBarController.m",
- "app/SegmentViewController.h",
- "app/SegmentViewController.m",
- "app/TextFieldController.h",
- "app/TextFieldController.m",
- "app/TextViewController.h",
- "app/TextViewController.m",
- "app/ToolbarViewController.h",
- "app/ToolbarViewController.m",
- "app/TransitionViewController.h",
- "app/TransitionViewController.m",
- "app/UICatalog.xcodeproj/project.pbxproj",
- "app/WebViewController.h",
- "app/WebViewController.m",
- "app/en.lproj/AlertsViewController.xib",
- "app/en.lproj/ButtonsViewController.xib",
- "app/en.lproj/ControlsViewController.xib",
- "app/en.lproj/ImagesViewController.xib",
- "app/en.lproj/Localizable.strings",
- "app/en.lproj/MainWindow.xib",
- "app/en.lproj/PickerViewController.xib",
- "app/en.lproj/SearchBarController.xib",
- "app/en.lproj/SegmentViewController.xib",
- "app/en.lproj/TextFieldController.xib",
- "app/en.lproj/TextViewController.xib",
- "app/en.lproj/ToolbarViewController.xib",
- "app/en.lproj/TransitionViewController.xib",
- "app/en.lproj/WebViewController.xib",
- "app/images/12-6AM.png",
- "app/images/12-6PM.png",
- "app/images/6-12AM.png",
- "app/images/6-12PM.png",
- "app/images/Default.png",
- "app/images/Icon.png",
- "app/images/UIButton_custom.png",
- "app/images/blueButton.png",
- "app/images/orangeslide.png",
- "app/images/scene1.jpg",
- "app/images/scene2.jpg",
- "app/images/scene3.jpg",
- "app/images/scene4.jpg",
- "app/images/scene5.jpg",
- "app/images/segment_check.png",
- "app/images/segment_search.png",
- "app/images/segment_tools.png",
- "app/images/slider_ball.png",
- "app/images/whiteButton.png",
- "app/images/yellowslide.png",
- "app/main.m",
+ "app/LICENSE",
+ "app/Readme.markdown",
+ "app/Shared/AppDelegate_Shared.h",
+ "app/Shared/AppDelegate_Shared.m",
+ "app/Shared/Icon.png",
+ "app/Shared/ModalViewController.h",
+ "app/Shared/ModalViewController.m",
+ "app/Shared/TestViewController_Shared.h",
+ "app/Shared/TestViewController_Shared.m",
+ "app/Shared/Universal-Info.plist",
+ "app/Shared/Universal_Prefix.pch",
+ "app/Shared/main.m",
+ "app/Universal.xcodeproj/project.pbxproj",
+ "app/iPad/AppDelegate_Pad.h",
+ "app/iPad/AppDelegate_Pad.m",
+ "app/iPad/Default-Landscape.png",
+ "app/iPad/Default-Portrait.png",
+ "app/iPad/MainWindow_Pad.xib",
+ "app/iPad/TestViewController_Pad.h",
+ "app/iPad/TestViewController_Pad.m",
+ "app/iPhone/AppDelegate_Phone.h",
+ "app/iPhone/AppDelegate_Phone.m",
+ "app/iPhone/Default.png",
+ "app/iPhone/MainWindow_Phone.xib",
+ "app/iPhone/TestViewController_Phone.h",
+ "app/iPhone/TestViewController_Phone.m",
+ "bin/icuke",
+ "bin/icuke-module",
+ "bin/iphonesim",
+ "ext/Rakefile",
"ext/iCuke/.gitignore",
- "ext/iCuke/DefaultsResponse.h",
- "ext/iCuke/DefaultsResponse.m",
- "ext/iCuke/EventResponse.h",
- "ext/iCuke/EventResponse.m",
"ext/iCuke/Rakefile",
- "ext/iCuke/Recorder.h",
- "ext/iCuke/Recorder.m",
- "ext/iCuke/RecorderResponse.h",
- "ext/iCuke/RecorderResponse.m",
- "ext/iCuke/SynthesizeSingleton.h",
- "ext/iCuke/ViewResponse.h",
- "ext/iCuke/ViewResponse.m",
- "ext/iCuke/Viewer.h",
- "ext/iCuke/Viewer.m",
- "ext/iCuke/iCukeHTTPResponseHandler.h",
- "ext/iCuke/iCukeHTTPResponseHandler.m",
- "ext/iCuke/iCukeHTTPServer.h",
- "ext/iCuke/iCukeHTTPServer.m",
- "ext/iCuke/iCukeServer.h",
- "ext/iCuke/iCukeServer.m",
- "ext/iCuke/json/JSON.h",
- "ext/iCuke/json/NSObject+SBJSON.h",
- "ext/iCuke/json/NSObject+SBJSON.m",
- "ext/iCuke/json/NSString+SBJSON.h",
- "ext/iCuke/json/NSString+SBJSON.m",
- "ext/iCuke/json/SBJSON.h",
- "ext/iCuke/json/SBJSON.m",
- "ext/iCuke/json/SBJsonBase.h",
- "ext/iCuke/json/SBJsonBase.m",
- "ext/iCuke/json/SBJsonParser.h",
- "ext/iCuke/json/SBJsonParser.m",
- "ext/iCuke/json/SBJsonWriter.h",
- "ext/iCuke/json/SBJsonWriter.m",
+ "ext/iCuke/libicuke-sdk3.1.dylib",
+ "ext/iCuke/libicuke-sdk4.0.dylib",
"ext/iCuke/libicuke.dylib",
+ "ext/iCuke/sdk3.1/DefaultsResponse.h",
+ "ext/iCuke/sdk3.1/DefaultsResponse.m",
+ "ext/iCuke/sdk3.1/EventResponse.h",
+ "ext/iCuke/sdk3.1/EventResponse.m",
+ "ext/iCuke/sdk3.1/ModuleResponse.h",
+ "ext/iCuke/sdk3.1/ModuleResponse.m",
+ "ext/iCuke/sdk3.1/Rakefile",
+ "ext/iCuke/sdk3.1/Recorder.h",
+ "ext/iCuke/sdk3.1/Recorder.m",
+ "ext/iCuke/sdk3.1/RecorderResponse.h",
+ "ext/iCuke/sdk3.1/RecorderResponse.m",
+ "ext/iCuke/sdk3.1/SynthesizeSingleton.h",
+ "ext/iCuke/sdk3.1/ViewResponse.h",
+ "ext/iCuke/sdk3.1/ViewResponse.m",
+ "ext/iCuke/sdk3.1/Viewer.h",
+ "ext/iCuke/sdk3.1/Viewer.m",
+ "ext/iCuke/sdk3.1/iCukeHTTPResponseHandler.h",
+ "ext/iCuke/sdk3.1/iCukeHTTPResponseHandler.m",
+ "ext/iCuke/sdk3.1/iCukeHTTPServer.h",
+ "ext/iCuke/sdk3.1/iCukeHTTPServer.m",
+ "ext/iCuke/sdk3.1/iCukeServer.h",
+ "ext/iCuke/sdk3.1/iCukeServer.m",
+ "ext/iCuke/sdk3.1/json/JSON.h",
+ "ext/iCuke/sdk3.1/json/NSObject+SBJSON.h",
+ "ext/iCuke/sdk3.1/json/NSObject+SBJSON.m",
+ "ext/iCuke/sdk3.1/json/NSString+SBJSON.h",
+ "ext/iCuke/sdk3.1/json/NSString+SBJSON.m",
+ "ext/iCuke/sdk3.1/json/SBJSON.h",
+ "ext/iCuke/sdk3.1/json/SBJSON.m",
+ "ext/iCuke/sdk3.1/json/SBJsonBase.h",
+ "ext/iCuke/sdk3.1/json/SBJsonBase.m",
+ "ext/iCuke/sdk3.1/json/SBJsonParser.h",
+ "ext/iCuke/sdk3.1/json/SBJsonParser.m",
+ "ext/iCuke/sdk3.1/json/SBJsonWriter.h",
+ "ext/iCuke/sdk3.1/json/SBJsonWriter.m",
+ "ext/iCuke/sdk4.0/DefaultsResponse.h",
+ "ext/iCuke/sdk4.0/DefaultsResponse.m",
+ "ext/iCuke/sdk4.0/EventResponse.h",
+ "ext/iCuke/sdk4.0/EventResponse.m",
+ "ext/iCuke/sdk4.0/ModuleResponse.h",
+ "ext/iCuke/sdk4.0/ModuleResponse.m",
+ "ext/iCuke/sdk4.0/Rakefile",
+ "ext/iCuke/sdk4.0/Recorder.h",
+ "ext/iCuke/sdk4.0/Recorder.m",
+ "ext/iCuke/sdk4.0/RecorderResponse.h",
+ "ext/iCuke/sdk4.0/RecorderResponse.m",
+ "ext/iCuke/sdk4.0/SynthesizeSingleton.h",
+ "ext/iCuke/sdk4.0/ViewResponse.h",
+ "ext/iCuke/sdk4.0/ViewResponse.m",
+ "ext/iCuke/sdk4.0/Viewer.h",
+ "ext/iCuke/sdk4.0/Viewer.m",
+ "ext/iCuke/sdk4.0/iCukeHTTPResponseHandler.h",
+ "ext/iCuke/sdk4.0/iCukeHTTPResponseHandler.m",
+ "ext/iCuke/sdk4.0/iCukeHTTPServer.h",
+ "ext/iCuke/sdk4.0/iCukeHTTPServer.m",
+ "ext/iCuke/sdk4.0/iCukeServer.h",
+ "ext/iCuke/sdk4.0/iCukeServer.m",
+ "ext/iCuke/sdk4.0/json/JSON.h",
+ "ext/iCuke/sdk4.0/json/NSObject+SBJSON.h",
+ "ext/iCuke/sdk4.0/json/NSObject+SBJSON.m",
+ "ext/iCuke/sdk4.0/json/NSString+SBJSON.h",
+ "ext/iCuke/sdk4.0/json/NSString+SBJSON.m",
+ "ext/iCuke/sdk4.0/json/SBJSON.h",