iCuke 0.5.5 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/.gitmodules +3 -0
- data/README.rdoc +8 -7
- data/Rakefile +10 -30
- data/VERSION +1 -1
- data/app/.gitignore +3 -0
- data/app/LICENSE +20 -0
- data/app/Readme.markdown +3 -0
- data/app/Shared/AppDelegate_Shared.h +17 -0
- data/app/Shared/AppDelegate_Shared.m +25 -0
- data/app/{images/yellowslide.png → Shared/Icon.png} +0 -0
- data/app/Shared/ModalViewController.h +15 -0
- data/app/Shared/ModalViewController.m +96 -0
- data/app/Shared/TestViewController_Shared.h +15 -0
- data/app/Shared/TestViewController_Shared.m +43 -0
- data/app/{Info.plist → Shared/Universal-Info.plist} +17 -4
- data/app/Shared/Universal_Prefix.pch +8 -0
- data/app/Shared/main.m +14 -0
- data/app/Universal.xcodeproj/project.pbxproj +301 -0
- data/app/iPad/AppDelegate_Pad.h +15 -0
- data/app/iPad/AppDelegate_Pad.m +28 -0
- data/app/iPad/Default-Landscape.png +0 -0
- data/app/iPad/Default-Portrait.png +0 -0
- data/app/iPad/MainWindow_Pad.xib +343 -0
- data/app/iPad/TestViewController_Pad.h +15 -0
- data/app/iPad/TestViewController_Pad.m +52 -0
- data/app/iPhone/AppDelegate_Phone.h +15 -0
- data/app/iPhone/AppDelegate_Phone.m +28 -0
- data/app/{images/segment_search.png → iPhone/Default.png} +0 -0
- data/app/iPhone/MainWindow_Phone.xib +363 -0
- data/app/iPhone/TestViewController_Phone.h +15 -0
- data/app/iPhone/TestViewController_Phone.m +36 -0
- data/bin/.gitignore +1 -0
- data/bin/icuke +10 -0
- data/bin/icuke-module +17 -0
- data/ext/.gitignore +1 -0
- data/ext/Rakefile +6 -0
- data/ext/WaxSim/Simulator.h +31 -0
- data/ext/WaxSim/Simulator.m +131 -0
- data/ext/WaxSim/WaxSim.m +110 -0
- data/ext/WaxSim/WaxSim.xcodeproj/project.pbxproj +238 -0
- data/ext/WaxSim/WaxSim_Prefix.pch +7 -0
- data/ext/WaxSim/iPhoneSimulatorRemoteClient/iPhoneSimulatorRemoteClient.h +126 -0
- data/ext/iCuke/Rakefile +14 -17
- data/ext/iCuke/libicuke-sdk3.1.dylib +0 -0
- data/ext/iCuke/libicuke-sdk4.0.dylib +0 -0
- data/ext/iCuke/libicuke.dylib +0 -0
- data/ext/iCuke/{DefaultsResponse.h → sdk3.1/DefaultsResponse.h} +0 -0
- data/ext/iCuke/{DefaultsResponse.m → sdk3.1/DefaultsResponse.m} +0 -0
- data/ext/iCuke/{EventResponse.h → sdk3.1/EventResponse.h} +0 -0
- data/ext/iCuke/{EventResponse.m → sdk3.1/EventResponse.m} +0 -0
- data/ext/iCuke/sdk3.1/ModuleResponse.h +5 -0
- data/ext/iCuke/sdk3.1/ModuleResponse.m +76 -0
- data/ext/iCuke/sdk3.1/Rakefile +20 -0
- data/ext/iCuke/{Recorder.h → sdk3.1/Recorder.h} +0 -0
- data/ext/iCuke/{Recorder.m → sdk3.1/Recorder.m} +0 -0
- data/ext/iCuke/{RecorderResponse.h → sdk3.1/RecorderResponse.h} +0 -0
- data/ext/iCuke/{RecorderResponse.m → sdk3.1/RecorderResponse.m} +0 -0
- data/ext/iCuke/{SynthesizeSingleton.h → sdk3.1/SynthesizeSingleton.h} +0 -0
- data/ext/iCuke/{ViewResponse.h → sdk3.1/ViewResponse.h} +0 -0
- data/ext/iCuke/{ViewResponse.m → sdk3.1/ViewResponse.m} +0 -0
- data/ext/iCuke/{Viewer.h → sdk3.1/Viewer.h} +0 -0
- data/ext/iCuke/sdk3.1/Viewer.m +203 -0
- data/ext/iCuke/{iCukeHTTPResponseHandler.h → sdk3.1/iCukeHTTPResponseHandler.h} +0 -0
- data/ext/iCuke/{iCukeHTTPResponseHandler.m → sdk3.1/iCukeHTTPResponseHandler.m} +0 -0
- data/ext/iCuke/{iCukeHTTPServer.h → sdk3.1/iCukeHTTPServer.h} +0 -0
- data/ext/iCuke/{iCukeHTTPServer.m → sdk3.1/iCukeHTTPServer.m} +0 -0
- data/ext/iCuke/{iCukeServer.h → sdk3.1/iCukeServer.h} +0 -2
- data/ext/iCuke/{iCukeServer.m → sdk3.1/iCukeServer.m} +22 -20
- data/ext/iCuke/{json → sdk3.1/json}/JSON.h +0 -0
- data/ext/iCuke/{json → sdk3.1/json}/NSObject+SBJSON.h +0 -0
- data/ext/iCuke/{json → sdk3.1/json}/NSObject+SBJSON.m +0 -0
- data/ext/iCuke/{json → sdk3.1/json}/NSString+SBJSON.h +0 -0
- data/ext/iCuke/{json → sdk3.1/json}/NSString+SBJSON.m +0 -0
- data/ext/iCuke/{json → sdk3.1/json}/SBJSON.h +0 -0
- data/ext/iCuke/{json → sdk3.1/json}/SBJSON.m +0 -0
- data/ext/iCuke/{json → sdk3.1/json}/SBJsonBase.h +0 -0
- data/ext/iCuke/{json → sdk3.1/json}/SBJsonBase.m +0 -0
- data/ext/iCuke/{json → sdk3.1/json}/SBJsonParser.h +0 -0
- data/ext/iCuke/{json → sdk3.1/json}/SBJsonParser.m +0 -0
- data/ext/iCuke/{json → sdk3.1/json}/SBJsonWriter.h +0 -0
- data/ext/iCuke/{json → sdk3.1/json}/SBJsonWriter.m +0 -0
- data/ext/iCuke/sdk4.0/DefaultsResponse.h +5 -0
- data/ext/iCuke/sdk4.0/DefaultsResponse.m +66 -0
- data/ext/iCuke/sdk4.0/EventResponse.h +5 -0
- data/ext/iCuke/sdk4.0/EventResponse.m +130 -0
- data/ext/iCuke/sdk4.0/ModuleResponse.h +5 -0
- data/ext/iCuke/sdk4.0/ModuleResponse.m +76 -0
- data/ext/iCuke/sdk4.0/Rakefile +20 -0
- data/ext/iCuke/sdk4.0/Recorder.h +17 -0
- data/ext/iCuke/sdk4.0/Recorder.m +90 -0
- data/ext/iCuke/sdk4.0/RecorderResponse.h +6 -0
- data/ext/iCuke/sdk4.0/RecorderResponse.m +68 -0
- data/ext/iCuke/sdk4.0/SynthesizeSingleton.h +68 -0
- data/ext/iCuke/sdk4.0/ViewResponse.h +5 -0
- data/ext/iCuke/sdk4.0/ViewResponse.m +84 -0
- data/ext/iCuke/sdk4.0/Viewer.h +8 -0
- data/ext/iCuke/{Viewer.m → sdk4.0/Viewer.m} +14 -0
- data/ext/iCuke/sdk4.0/iCukeHTTPResponseHandler.h +50 -0
- data/ext/iCuke/sdk4.0/iCukeHTTPResponseHandler.m +381 -0
- data/ext/iCuke/sdk4.0/iCukeHTTPServer.h +53 -0
- data/ext/iCuke/sdk4.0/iCukeHTTPServer.m +365 -0
- data/ext/iCuke/sdk4.0/iCukeServer.h +14 -0
- data/ext/iCuke/sdk4.0/iCukeServer.m +65 -0
- data/ext/iCuke/sdk4.0/json/JSON.h +50 -0
- data/ext/iCuke/sdk4.0/json/NSObject+SBJSON.h +68 -0
- data/ext/iCuke/sdk4.0/json/NSObject+SBJSON.m +53 -0
- data/ext/iCuke/sdk4.0/json/NSString+SBJSON.h +58 -0
- data/ext/iCuke/sdk4.0/json/NSString+SBJSON.m +55 -0
- data/ext/iCuke/sdk4.0/json/SBJSON.h +75 -0
- data/ext/iCuke/sdk4.0/json/SBJSON.m +212 -0
- data/ext/iCuke/sdk4.0/json/SBJsonBase.h +86 -0
- data/ext/iCuke/sdk4.0/json/SBJsonBase.m +78 -0
- data/ext/iCuke/sdk4.0/json/SBJsonParser.h +87 -0
- data/ext/iCuke/sdk4.0/json/SBJsonParser.m +475 -0
- data/ext/iCuke/sdk4.0/json/SBJsonWriter.h +129 -0
- data/ext/iCuke/sdk4.0/json/SBJsonWriter.m +228 -0
- data/features/iphone.feature +15 -0
- data/features/support/env.rb +1 -1
- data/iCuke.gemspec +118 -114
- data/lib/icuke/cucumber.rb +93 -64
- data/lib/icuke/screen.rb +110 -0
- data/lib/icuke/sdk.rb +134 -0
- data/lib/icuke/simulate.rb +9 -5
- data/lib/icuke/simulator.rb +10 -11
- data/lib/icuke/waxsim.rb +36 -0
- data/lib/icuke.rb +2 -1
- metadata +124 -129
- data/app/AlertsViewController.h +0 -59
- data/app/AlertsViewController.m +0 -341
- data/app/AppDelegate.h +0 -60
- data/app/AppDelegate.m +0 -101
- data/app/ButtonsViewController.h +0 -80
- data/app/ButtonsViewController.m +0 -448
- data/app/Constants.h +0 -58
- data/app/ControlsViewController.h +0 -72
- data/app/ControlsViewController.m +0 -379
- data/app/ImagesViewController.h +0 -62
- data/app/ImagesViewController.m +0 -137
- data/app/MainViewController.h +0 -57
- data/app/MainViewController.m +0 -262
- data/app/Picker/CustomPickerDataSource.h +0 -55
- data/app/Picker/CustomPickerDataSource.m +0 -135
- data/app/Picker/CustomView.h +0 -62
- data/app/Picker/CustomView.m +0 -119
- data/app/PickerViewController.h +0 -88
- data/app/PickerViewController.m +0 -402
- data/app/Prefix.pch +0 -5
- data/app/ReadMe.txt +0 -82
- data/app/SearchBarController.h +0 -58
- data/app/SearchBarController.m +0 -105
- data/app/SegmentViewController.h +0 -54
- data/app/SegmentViewController.m +0 -195
- data/app/TextFieldController.h +0 -67
- data/app/TextFieldController.m +0 -342
- data/app/TextViewController.h +0 -57
- data/app/TextViewController.m +0 -164
- data/app/ToolbarViewController.h +0 -74
- data/app/ToolbarViewController.m +0 -303
- data/app/TransitionViewController.h +0 -64
- data/app/TransitionViewController.m +0 -178
- data/app/UICatalog.xcodeproj/project.pbxproj +0 -615
- data/app/WebViewController.h +0 -57
- data/app/WebViewController.m +0 -173
- data/app/en.lproj/AlertsViewController.xib +0 -144
- data/app/en.lproj/ButtonsViewController.xib +0 -147
- data/app/en.lproj/ControlsViewController.xib +0 -147
- data/app/en.lproj/ImagesViewController.xib +0 -264
- data/app/en.lproj/Localizable.strings +0 -41
- data/app/en.lproj/MainWindow.xib +0 -306
- data/app/en.lproj/PickerViewController.xib +0 -415
- data/app/en.lproj/SearchBarController.xib +0 -142
- data/app/en.lproj/SegmentViewController.xib +0 -143
- data/app/en.lproj/TextFieldController.xib +0 -167
- data/app/en.lproj/TextViewController.xib +0 -149
- data/app/en.lproj/ToolbarViewController.xib +0 -491
- data/app/en.lproj/TransitionViewController.xib +0 -255
- data/app/en.lproj/WebViewController.xib +0 -141
- data/app/images/12-6AM.png +0 -0
- data/app/images/12-6PM.png +0 -0
- data/app/images/6-12AM.png +0 -0
- data/app/images/6-12PM.png +0 -0
- data/app/images/Default.png +0 -0
- data/app/images/Icon.png +0 -0
- data/app/images/UIButton_custom.png +0 -0
- data/app/images/blueButton.png +0 -0
- data/app/images/orangeslide.png +0 -0
- data/app/images/scene1.jpg +0 -0
- data/app/images/scene2.jpg +0 -0
- data/app/images/scene3.jpg +0 -0
- data/app/images/scene4.jpg +0 -0
- data/app/images/scene5.jpg +0 -0
- data/app/images/segment_check.png +0 -0
- data/app/images/segment_tools.png +0 -0
- data/app/images/slider_ball.png +0 -0
- data/app/images/whiteButton.png +0 -0
- data/app/main.m +0 -58
- data/features/uicatalog.feature +0 -20
- data/lib/icuke/com.apple.Accessibility.plist +0 -0
- data/lib/icuke/headless.rb +0 -54
- data/lib/icuke/xcode.rb +0 -164
data/ext/WaxSim/WaxSim.m
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
#import <AppKit/AppKit.h>
|
2
|
+
#import "iPhoneSimulatorRemoteClient.h"
|
3
|
+
#import "Simulator.h"
|
4
|
+
#import "termios.h"
|
5
|
+
|
6
|
+
static BOOL gReset = false;
|
7
|
+
|
8
|
+
void printUsage();
|
9
|
+
void simulate(NSString *sdk, NSString *family, NSString *appPath, NSDictionary *environment, NSArray *additionalArgs);
|
10
|
+
void resetSignal(int sig);
|
11
|
+
|
12
|
+
int main(int argc, char *argv[]) {
|
13
|
+
signal(SIGQUIT, resetSignal);
|
14
|
+
|
15
|
+
int c;
|
16
|
+
char *sdk = nil;
|
17
|
+
char *family = nil;
|
18
|
+
char *appPath = nil;
|
19
|
+
NSMutableArray *additionalArgs = [NSMutableArray array];
|
20
|
+
NSMutableDictionary *environment = [NSMutableDictionary dictionary];
|
21
|
+
NSString *environment_variable;
|
22
|
+
NSArray *environment_variable_parts;
|
23
|
+
|
24
|
+
while ((c = getopt(argc, argv, "e:s:f:ah")) != -1) {
|
25
|
+
switch(c) {
|
26
|
+
case 'e':
|
27
|
+
environment_variable = [NSString stringWithCString:optarg encoding:NSUTF8StringEncoding];
|
28
|
+
environment_variable_parts = [environment_variable componentsSeparatedByString:@"="];
|
29
|
+
|
30
|
+
[environment setObject:[environment_variable_parts objectAtIndex:1] forKey:[environment_variable_parts objectAtIndex:0]];
|
31
|
+
break;
|
32
|
+
case 's':
|
33
|
+
sdk = optarg;
|
34
|
+
break;
|
35
|
+
case 'f':
|
36
|
+
family = optarg;
|
37
|
+
break;
|
38
|
+
case 'a':
|
39
|
+
fprintf(stdout, "Available SDK Versions.\n", optopt);
|
40
|
+
for (NSString *sdkVersion in [Simulator availableSDKs]) {
|
41
|
+
fprintf(stderr, " %s\n", [sdkVersion UTF8String]);
|
42
|
+
}
|
43
|
+
return 1;
|
44
|
+
case 'h':
|
45
|
+
printUsage();
|
46
|
+
return 1;
|
47
|
+
case '?':
|
48
|
+
if (optopt == 's' || optopt == 'f') {
|
49
|
+
fprintf(stderr, "Option -%c requires an argument.\n", optopt);
|
50
|
+
printUsage();
|
51
|
+
}
|
52
|
+
else {
|
53
|
+
fprintf(stderr, "Unknown option `-%c'.\n", optopt);
|
54
|
+
printUsage();
|
55
|
+
}
|
56
|
+
return 1;
|
57
|
+
break;
|
58
|
+
default:
|
59
|
+
abort ();
|
60
|
+
}
|
61
|
+
|
62
|
+
}
|
63
|
+
|
64
|
+
if (argc > optind) {
|
65
|
+
appPath = argv[optind++];
|
66
|
+
|
67
|
+
// Additional args are sent to app
|
68
|
+
for (int i = optind; i < argc; i++) {
|
69
|
+
[additionalArgs addObject:[NSString stringWithUTF8String:argv[i]]];
|
70
|
+
}
|
71
|
+
}
|
72
|
+
else {
|
73
|
+
fprintf(stderr, "No app-path was specified!\n");
|
74
|
+
printUsage();
|
75
|
+
return 1;
|
76
|
+
}
|
77
|
+
|
78
|
+
|
79
|
+
NSString *sdkString = sdk ? [NSString stringWithUTF8String:sdk] : nil;
|
80
|
+
NSString *familyString = family ? [NSString stringWithUTF8String:family] : nil;
|
81
|
+
NSString *appPathString = [NSString stringWithUTF8String:appPath];
|
82
|
+
|
83
|
+
simulate(sdkString, familyString, appPathString, environment, additionalArgs);
|
84
|
+
|
85
|
+
return 0;
|
86
|
+
}
|
87
|
+
|
88
|
+
void simulate(NSString *sdk, NSString *family, NSString *appPath, NSDictionary *environment, NSArray *additionalArgs) {
|
89
|
+
Simulator *simulator = [[Simulator alloc] initWithAppPath:appPath sdk:sdk family:family env:environment args:additionalArgs];
|
90
|
+
[simulator launch];
|
91
|
+
|
92
|
+
while (!gReset && [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:-1]]) ;
|
93
|
+
|
94
|
+
[simulator end];
|
95
|
+
}
|
96
|
+
|
97
|
+
void printUsage() {
|
98
|
+
fprintf(stderr, "usage: waxsim [options] app-path\n");
|
99
|
+
fprintf(stderr, "example: waxsim -s 2.2 /path/to/app.app\n");
|
100
|
+
fprintf(stderr, "Available options are:\n");
|
101
|
+
fprintf(stderr, "\t-s sdk\tVersion number of sdk to use (-s 3.1)\n");
|
102
|
+
fprintf(stderr, "\t-f family\tDevice to use (-f ipad)\n");
|
103
|
+
fprintf(stderr, "\t-e VAR=value\tEnvironment variable to set (-e CFFIXED_HOME=/tmp/iphonehome)\n");
|
104
|
+
fprintf(stderr, "\t-a \tAvailable SDK's\n");
|
105
|
+
fprintf(stderr, "\t-h \tPrints out this wonderful documentation!\n");
|
106
|
+
}
|
107
|
+
|
108
|
+
void resetSignal(int sig) {
|
109
|
+
gReset = true;
|
110
|
+
}
|
@@ -0,0 +1,238 @@
|
|
1
|
+
// !$*UTF8*$!
|
2
|
+
{
|
3
|
+
archiveVersion = 1;
|
4
|
+
classes = {
|
5
|
+
};
|
6
|
+
objectVersion = 45;
|
7
|
+
objects = {
|
8
|
+
|
9
|
+
/* Begin PBXBuildFile section */
|
10
|
+
048274F11126398C003DFACB /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 048274F01126398C003DFACB /* AppKit.framework */; };
|
11
|
+
048275B2112639B7003DFACB /* Simulator.m in Sources */ = {isa = PBXBuildFile; fileRef = 048275B1112639B7003DFACB /* Simulator.m */; };
|
12
|
+
048275C011263A74003DFACB /* iPhoneSimulatorRemoteClient.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 048275BF11263A74003DFACB /* iPhoneSimulatorRemoteClient.framework */; };
|
13
|
+
8DD76F9A0486AA7600D96B5E /* WaxSim.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FB7796FE84155DC02AAC07 /* WaxSim.m */; settings = {ATTRIBUTES = (); }; };
|
14
|
+
8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08FB779EFE84155DC02AAC07 /* Foundation.framework */; };
|
15
|
+
/* End PBXBuildFile section */
|
16
|
+
|
17
|
+
/* Begin PBXCopyFilesBuildPhase section */
|
18
|
+
8DD76F9E0486AA7600D96B5E /* CopyFiles */ = {
|
19
|
+
isa = PBXCopyFilesBuildPhase;
|
20
|
+
buildActionMask = 8;
|
21
|
+
dstPath = /usr/share/man/man1/;
|
22
|
+
dstSubfolderSpec = 0;
|
23
|
+
files = (
|
24
|
+
);
|
25
|
+
runOnlyForDeploymentPostprocessing = 1;
|
26
|
+
};
|
27
|
+
/* End PBXCopyFilesBuildPhase section */
|
28
|
+
|
29
|
+
/* Begin PBXFileReference section */
|
30
|
+
048274F01126398C003DFACB /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
|
31
|
+
048275AF112639B7003DFACB /* iPhoneSimulatorRemoteClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iPhoneSimulatorRemoteClient.h; path = iPhoneSimulatorRemoteClient/iPhoneSimulatorRemoteClient.h; sourceTree = "<group>"; };
|
32
|
+
048275B0112639B7003DFACB /* Simulator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Simulator.h; sourceTree = "<group>"; };
|
33
|
+
048275B1112639B7003DFACB /* Simulator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Simulator.m; sourceTree = "<group>"; };
|
34
|
+
048275BF11263A74003DFACB /* iPhoneSimulatorRemoteClient.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = iPhoneSimulatorRemoteClient.framework; path = Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/iPhoneSimulatorRemoteClient.framework; sourceTree = DEVELOPER_DIR; };
|
35
|
+
08FB7796FE84155DC02AAC07 /* WaxSim.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WaxSim.m; sourceTree = "<group>"; };
|
36
|
+
08FB779EFE84155DC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
37
|
+
32A70AAB03705E1F00C91783 /* WaxSim_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WaxSim_Prefix.pch; sourceTree = "<group>"; };
|
38
|
+
8DD76FA10486AA7600D96B5E /* waxsim */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = waxsim; sourceTree = BUILT_PRODUCTS_DIR; };
|
39
|
+
/* End PBXFileReference section */
|
40
|
+
|
41
|
+
/* Begin PBXFrameworksBuildPhase section */
|
42
|
+
8DD76F9B0486AA7600D96B5E /* Frameworks */ = {
|
43
|
+
isa = PBXFrameworksBuildPhase;
|
44
|
+
buildActionMask = 2147483647;
|
45
|
+
files = (
|
46
|
+
8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */,
|
47
|
+
048274F11126398C003DFACB /* AppKit.framework in Frameworks */,
|
48
|
+
048275C011263A74003DFACB /* iPhoneSimulatorRemoteClient.framework in Frameworks */,
|
49
|
+
);
|
50
|
+
runOnlyForDeploymentPostprocessing = 0;
|
51
|
+
};
|
52
|
+
/* End PBXFrameworksBuildPhase section */
|
53
|
+
|
54
|
+
/* Begin PBXGroup section */
|
55
|
+
08FB7794FE84155DC02AAC07 /* WaxSim */ = {
|
56
|
+
isa = PBXGroup;
|
57
|
+
children = (
|
58
|
+
08FB7795FE84155DC02AAC07 /* Source */,
|
59
|
+
08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */,
|
60
|
+
1AB674ADFE9D54B511CA2CBB /* Products */,
|
61
|
+
);
|
62
|
+
name = WaxSim;
|
63
|
+
sourceTree = "<group>";
|
64
|
+
};
|
65
|
+
08FB7795FE84155DC02AAC07 /* Source */ = {
|
66
|
+
isa = PBXGroup;
|
67
|
+
children = (
|
68
|
+
32A70AAB03705E1F00C91783 /* WaxSim_Prefix.pch */,
|
69
|
+
08FB7796FE84155DC02AAC07 /* WaxSim.m */,
|
70
|
+
048275B0112639B7003DFACB /* Simulator.h */,
|
71
|
+
048275B1112639B7003DFACB /* Simulator.m */,
|
72
|
+
048275AF112639B7003DFACB /* iPhoneSimulatorRemoteClient.h */,
|
73
|
+
);
|
74
|
+
name = Source;
|
75
|
+
sourceTree = "<group>";
|
76
|
+
};
|
77
|
+
08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */ = {
|
78
|
+
isa = PBXGroup;
|
79
|
+
children = (
|
80
|
+
048275BF11263A74003DFACB /* iPhoneSimulatorRemoteClient.framework */,
|
81
|
+
048274F01126398C003DFACB /* AppKit.framework */,
|
82
|
+
08FB779EFE84155DC02AAC07 /* Foundation.framework */,
|
83
|
+
);
|
84
|
+
name = "External Frameworks and Libraries";
|
85
|
+
sourceTree = "<group>";
|
86
|
+
};
|
87
|
+
1AB674ADFE9D54B511CA2CBB /* Products */ = {
|
88
|
+
isa = PBXGroup;
|
89
|
+
children = (
|
90
|
+
8DD76FA10486AA7600D96B5E /* waxsim */,
|
91
|
+
);
|
92
|
+
name = Products;
|
93
|
+
sourceTree = "<group>";
|
94
|
+
};
|
95
|
+
/* End PBXGroup section */
|
96
|
+
|
97
|
+
/* Begin PBXNativeTarget section */
|
98
|
+
8DD76F960486AA7600D96B5E /* WaxSim */ = {
|
99
|
+
isa = PBXNativeTarget;
|
100
|
+
buildConfigurationList = 1DEB927408733DD40010E9CD /* Build configuration list for PBXNativeTarget "WaxSim" */;
|
101
|
+
buildPhases = (
|
102
|
+
8DD76F990486AA7600D96B5E /* Sources */,
|
103
|
+
8DD76F9B0486AA7600D96B5E /* Frameworks */,
|
104
|
+
8DD76F9E0486AA7600D96B5E /* CopyFiles */,
|
105
|
+
);
|
106
|
+
buildRules = (
|
107
|
+
);
|
108
|
+
dependencies = (
|
109
|
+
);
|
110
|
+
name = WaxSim;
|
111
|
+
productInstallPath = "$(HOME)/bin";
|
112
|
+
productName = WaxSim;
|
113
|
+
productReference = 8DD76FA10486AA7600D96B5E /* waxsim */;
|
114
|
+
productType = "com.apple.product-type.tool";
|
115
|
+
};
|
116
|
+
/* End PBXNativeTarget section */
|
117
|
+
|
118
|
+
/* Begin PBXProject section */
|
119
|
+
08FB7793FE84155DC02AAC07 /* Project object */ = {
|
120
|
+
isa = PBXProject;
|
121
|
+
buildConfigurationList = 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "WaxSim" */;
|
122
|
+
compatibilityVersion = "Xcode 3.1";
|
123
|
+
hasScannedForEncodings = 1;
|
124
|
+
mainGroup = 08FB7794FE84155DC02AAC07 /* WaxSim */;
|
125
|
+
projectDirPath = "";
|
126
|
+
projectRoot = "";
|
127
|
+
targets = (
|
128
|
+
8DD76F960486AA7600D96B5E /* WaxSim */,
|
129
|
+
);
|
130
|
+
};
|
131
|
+
/* End PBXProject section */
|
132
|
+
|
133
|
+
/* Begin PBXSourcesBuildPhase section */
|
134
|
+
8DD76F990486AA7600D96B5E /* Sources */ = {
|
135
|
+
isa = PBXSourcesBuildPhase;
|
136
|
+
buildActionMask = 2147483647;
|
137
|
+
files = (
|
138
|
+
8DD76F9A0486AA7600D96B5E /* WaxSim.m in Sources */,
|
139
|
+
048275B2112639B7003DFACB /* Simulator.m in Sources */,
|
140
|
+
);
|
141
|
+
runOnlyForDeploymentPostprocessing = 0;
|
142
|
+
};
|
143
|
+
/* End PBXSourcesBuildPhase section */
|
144
|
+
|
145
|
+
/* Begin XCBuildConfiguration section */
|
146
|
+
1DEB927508733DD40010E9CD /* Debug */ = {
|
147
|
+
isa = XCBuildConfiguration;
|
148
|
+
buildSettings = {
|
149
|
+
ALWAYS_SEARCH_USER_PATHS = NO;
|
150
|
+
COPY_PHASE_STRIP = NO;
|
151
|
+
FRAMEWORK_SEARCH_PATHS = (
|
152
|
+
"$(inherited)",
|
153
|
+
"\"$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks\"",
|
154
|
+
);
|
155
|
+
GCC_DYNAMIC_NO_PIC = NO;
|
156
|
+
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
157
|
+
GCC_ENABLE_OBJC_GC = supported;
|
158
|
+
GCC_MODEL_TUNING = G5;
|
159
|
+
GCC_OPTIMIZATION_LEVEL = 0;
|
160
|
+
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
161
|
+
GCC_PREFIX_HEADER = WaxSim_Prefix.pch;
|
162
|
+
INSTALL_PATH = /usr/local/bin;
|
163
|
+
LD_RUNPATH_SEARCH_PATHS = /Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks;
|
164
|
+
PRODUCT_NAME = waxsim;
|
165
|
+
};
|
166
|
+
name = Debug;
|
167
|
+
};
|
168
|
+
1DEB927608733DD40010E9CD /* Release */ = {
|
169
|
+
isa = XCBuildConfiguration;
|
170
|
+
buildSettings = {
|
171
|
+
ALWAYS_SEARCH_USER_PATHS = NO;
|
172
|
+
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
173
|
+
FRAMEWORK_SEARCH_PATHS = (
|
174
|
+
"$(inherited)",
|
175
|
+
"\"$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks\"",
|
176
|
+
);
|
177
|
+
GCC_ENABLE_OBJC_GC = supported;
|
178
|
+
GCC_MODEL_TUNING = G5;
|
179
|
+
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
180
|
+
GCC_PREFIX_HEADER = WaxSim_Prefix.pch;
|
181
|
+
INSTALL_PATH = /usr/local/bin;
|
182
|
+
LD_RUNPATH_SEARCH_PATHS = /Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks;
|
183
|
+
PRODUCT_NAME = waxsim;
|
184
|
+
};
|
185
|
+
name = Release;
|
186
|
+
};
|
187
|
+
1DEB927908733DD40010E9CD /* Debug */ = {
|
188
|
+
isa = XCBuildConfiguration;
|
189
|
+
buildSettings = {
|
190
|
+
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
191
|
+
GCC_C_LANGUAGE_STANDARD = gnu99;
|
192
|
+
GCC_OPTIMIZATION_LEVEL = 0;
|
193
|
+
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
194
|
+
GCC_WARN_UNUSED_VARIABLE = YES;
|
195
|
+
ONLY_ACTIVE_ARCH = YES;
|
196
|
+
PREBINDING = NO;
|
197
|
+
SDKROOT = macosx10.6;
|
198
|
+
};
|
199
|
+
name = Debug;
|
200
|
+
};
|
201
|
+
1DEB927A08733DD40010E9CD /* Release */ = {
|
202
|
+
isa = XCBuildConfiguration;
|
203
|
+
buildSettings = {
|
204
|
+
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
205
|
+
GCC_C_LANGUAGE_STANDARD = gnu99;
|
206
|
+
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
207
|
+
GCC_WARN_UNUSED_VARIABLE = YES;
|
208
|
+
ONLY_ACTIVE_ARCH = YES;
|
209
|
+
PREBINDING = NO;
|
210
|
+
SDKROOT = macosx10.6;
|
211
|
+
};
|
212
|
+
name = Release;
|
213
|
+
};
|
214
|
+
/* End XCBuildConfiguration section */
|
215
|
+
|
216
|
+
/* Begin XCConfigurationList section */
|
217
|
+
1DEB927408733DD40010E9CD /* Build configuration list for PBXNativeTarget "WaxSim" */ = {
|
218
|
+
isa = XCConfigurationList;
|
219
|
+
buildConfigurations = (
|
220
|
+
1DEB927508733DD40010E9CD /* Debug */,
|
221
|
+
1DEB927608733DD40010E9CD /* Release */,
|
222
|
+
);
|
223
|
+
defaultConfigurationIsVisible = 0;
|
224
|
+
defaultConfigurationName = Release;
|
225
|
+
};
|
226
|
+
1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "WaxSim" */ = {
|
227
|
+
isa = XCConfigurationList;
|
228
|
+
buildConfigurations = (
|
229
|
+
1DEB927908733DD40010E9CD /* Debug */,
|
230
|
+
1DEB927A08733DD40010E9CD /* Release */,
|
231
|
+
);
|
232
|
+
defaultConfigurationIsVisible = 0;
|
233
|
+
defaultConfigurationName = Release;
|
234
|
+
};
|
235
|
+
/* End XCConfigurationList section */
|
236
|
+
};
|
237
|
+
rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
|
238
|
+
}
|
@@ -0,0 +1,126 @@
|
|
1
|
+
#import <Cocoa/Cocoa.h>
|
2
|
+
|
3
|
+
/*
|
4
|
+
* File: /Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/iPhoneSimulatorRemoteClient.framework/Versions/A/iPhoneSimulatorRemoteClient
|
5
|
+
* Arch: Intel 80x86 (i386)
|
6
|
+
* Current version: 12.0.0, Compatibility version: 1.0.0
|
7
|
+
*/
|
8
|
+
|
9
|
+
@class DTiPhoneSimulatorSession;
|
10
|
+
|
11
|
+
@protocol DTiPhoneSimulatorSessionDelegate
|
12
|
+
|
13
|
+
- (void) session: (DTiPhoneSimulatorSession *) session didEndWithError: (NSError *) error;
|
14
|
+
- (void) session: (DTiPhoneSimulatorSession *) session didStart: (BOOL) started withError: (NSError *) error;
|
15
|
+
|
16
|
+
@end
|
17
|
+
|
18
|
+
@interface DTiPhoneSimulatorApplicationSpecifier : NSObject <NSCopying>
|
19
|
+
{
|
20
|
+
NSString *_appPath;
|
21
|
+
NSString *_bundleID;
|
22
|
+
}
|
23
|
+
|
24
|
+
+ (id) specifierWithApplicationPath: (NSString *) appPath;
|
25
|
+
+ (id) specifierWithApplicationBundleIdentifier: (NSString *) bundleID;
|
26
|
+
- (NSString *) bundleID;
|
27
|
+
- (void) setBundleID: (NSString *) bundleId;
|
28
|
+
- (NSString *) appPath;
|
29
|
+
- (void) setAppPath: (NSString *) appPath;
|
30
|
+
|
31
|
+
@end
|
32
|
+
|
33
|
+
@interface DTiPhoneSimulatorSystemRoot : NSObject <NSCopying>
|
34
|
+
{
|
35
|
+
NSString *sdkRootPath;
|
36
|
+
NSString *sdkVersion;
|
37
|
+
NSString *sdkDisplayName;
|
38
|
+
}
|
39
|
+
|
40
|
+
+ (id) defaultRoot;
|
41
|
+
|
42
|
+
+ (id)rootWithSDKPath:(NSString *) path;
|
43
|
+
+ (id)rootWithSDKVersion:(NSString *)version;
|
44
|
+
|
45
|
+
+ (NSArray *) knownRoots;
|
46
|
+
- (id)initWithSDKPath:(id)fp8;
|
47
|
+
- (id)sdkDisplayName;
|
48
|
+
- (void)setSdkDisplayName:(id)fp8;
|
49
|
+
- (id)sdkVersion;
|
50
|
+
- (void)setSdkVersion:(id)fp8;
|
51
|
+
- (id)sdkRootPath;
|
52
|
+
- (void)setSdkRootPath:(id)fp8;
|
53
|
+
|
54
|
+
@end
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
@interface DTiPhoneSimulatorSessionConfig : NSObject <NSCopying>
|
59
|
+
{
|
60
|
+
NSString *_localizedClientName;
|
61
|
+
DTiPhoneSimulatorSystemRoot *_simulatedSystemRoot;
|
62
|
+
DTiPhoneSimulatorApplicationSpecifier *_applicationToSimulateOnStart;
|
63
|
+
NSArray *_simulatedApplicationLaunchArgs;
|
64
|
+
NSDictionary *_simulatedApplicationLaunchEnvironment;
|
65
|
+
BOOL _simulatedApplicationShouldWaitForDebugger;
|
66
|
+
NSString *_simulatedApplicationStdOutPath;
|
67
|
+
NSString *_simulatedApplicationStdErrPath;
|
68
|
+
}
|
69
|
+
|
70
|
+
+ (NSString *) displayNameForDeviceFamily: (NSNumber *) family;
|
71
|
+
|
72
|
+
- (id)simulatedApplicationStdErrPath;
|
73
|
+
- (void)setSimulatedApplicationStdErrPath:(id)fp8;
|
74
|
+
- (id)simulatedApplicationStdOutPath;
|
75
|
+
- (void)setSimulatedApplicationStdOutPath:(id)fp8;
|
76
|
+
- (id)simulatedApplicationLaunchEnvironment;
|
77
|
+
- (void)setSimulatedApplicationLaunchEnvironment:(id)fp8;
|
78
|
+
- (id)simulatedApplicationLaunchArgs;
|
79
|
+
- (void)setSimulatedApplicationLaunchArgs:(id)fp8;
|
80
|
+
|
81
|
+
- (DTiPhoneSimulatorApplicationSpecifier *) applicationToSimulateOnStart;
|
82
|
+
- (void) setApplicationToSimulateOnStart: (DTiPhoneSimulatorApplicationSpecifier *) appSpec;
|
83
|
+
- (DTiPhoneSimulatorSystemRoot *) simulatedSystemRoot;
|
84
|
+
- (void) setSimulatedSystemRoot: (DTiPhoneSimulatorSystemRoot *) simulatedSystemRoot;
|
85
|
+
|
86
|
+
- (NSNumber *) simulatedDeviceFamily;
|
87
|
+
- (void) setSimulatedDeviceFamily: (NSNumber *) family;
|
88
|
+
|
89
|
+
- (BOOL) simulatedApplicationShouldWaitForDebugger;
|
90
|
+
- (void) setSimulatedApplicationShouldWaitForDebugger: (BOOL) waitForDebugger;
|
91
|
+
|
92
|
+
- (id)localizedClientName;
|
93
|
+
- (void)setLocalizedClientName:(id)fp8;
|
94
|
+
|
95
|
+
@end
|
96
|
+
|
97
|
+
|
98
|
+
@interface DTiPhoneSimulatorSession : NSObject {
|
99
|
+
NSString *_uuid;
|
100
|
+
id <DTiPhoneSimulatorSessionDelegate> _delegate;
|
101
|
+
NSNumber *_simulatedApplicationPID;
|
102
|
+
int _sessionLifecycleProgress;
|
103
|
+
NSTimer *_timeoutTimer;
|
104
|
+
DTiPhoneSimulatorSessionConfig *_sessionConfig;
|
105
|
+
struct ProcessSerialNumber _simulatorPSN;
|
106
|
+
}
|
107
|
+
|
108
|
+
- (BOOL) requestStartWithConfig: (DTiPhoneSimulatorSessionConfig *) config timeout: (NSTimeInterval) timeout error: (NSError **) outError;
|
109
|
+
- (void) requestEndWithTimeout: (NSTimeInterval) timeout;
|
110
|
+
|
111
|
+
- (id)sessionConfig;
|
112
|
+
- (void)setSessionConfig:(id)fp8;
|
113
|
+
- (id)timeoutTimer;
|
114
|
+
- (void)setTimeoutTimer:(id)fp8;
|
115
|
+
- (int)sessionLifecycleProgress;
|
116
|
+
- (void)setSessionLifecycleProgress:(int)fp8;
|
117
|
+
- (id)simulatedApplicationPID;
|
118
|
+
- (void)setSimulatedApplicationPID:(id)fp8;
|
119
|
+
|
120
|
+
- (id<DTiPhoneSimulatorSessionDelegate>) delegate;
|
121
|
+
- (void) setDelegate: (id<DTiPhoneSimulatorSessionDelegate>) delegate;
|
122
|
+
|
123
|
+
- (id)uuid;
|
124
|
+
- (void)setUuid:(id)fp8;
|
125
|
+
|
126
|
+
@end
|
data/ext/iCuke/Rakefile
CHANGED
@@ -1,22 +1,19 @@
|
|
1
|
-
require '
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'lib', 'icuke', 'sdk')
|
2
2
|
|
3
|
-
|
4
|
-
SDK_ROOT = "/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator#{SDK_VERSION}.sdk"
|
5
|
-
CFLAGS = '-arch i386 -pipe -ggdb -std=c99 -DTARGET_OS_IPHONE'
|
6
|
-
SDK_CFLAGS = "-isysroot #{SDK_ROOT} -F/System/Library/PrivateFrameworks -D__IPHONE_OS_VERSION_MIN_REQUIRED=30000"
|
7
|
-
CC = '/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2'
|
3
|
+
SUPPORTED_SDKS = ['3.1', '4.0']
|
8
4
|
|
9
|
-
|
10
|
-
|
5
|
+
ICuke::SDK.minor_versions.each do |sdk|
|
6
|
+
unless SUPPORTED_SDKS.include?(sdk)
|
7
|
+
puts "Note: iCuke does not currently support version #{sdk} of the iPhone SDK, skipping"
|
8
|
+
next
|
9
|
+
end
|
10
|
+
|
11
|
+
task :install do
|
12
|
+
sh "cd sdk#{sdk} && rake"
|
13
|
+
end
|
14
|
+
task :clean do
|
15
|
+
sh "cd sdk#{sdk} && rake clean"
|
16
|
+
end
|
11
17
|
end
|
12
18
|
|
13
|
-
CLEAN.include('**/*.o')
|
14
|
-
|
15
|
-
file 'libicuke.dylib' => FileList['**/*.m'].ext('.o') do |t|
|
16
|
-
sh "#{CC} -dynamiclib -o #{t.name} -fvisibility=hidden #{CFLAGS} #{SDK_CFLAGS} -framework Foundation -framework GraphicsServices -framework UIKit -framework CFNetwork -framework AXRuntime #{t.prerequisites.join(' ')}"
|
17
|
-
end
|
18
|
-
|
19
|
-
CLEAN.include('libicuke.dylib')
|
20
|
-
|
21
|
-
task :install => 'libicuke.dylib'
|
22
19
|
task :default => :install
|
Binary file
|
Binary file
|
data/ext/iCuke/libicuke.dylib
CHANGED
Binary file
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,76 @@
|
|
1
|
+
#import "ModuleResponse.h"
|
2
|
+
#import "iCukeHTTPServer.h"
|
3
|
+
#include <dlfcn.h>
|
4
|
+
|
5
|
+
@implementation ModuleResponse
|
6
|
+
+ (void)load
|
7
|
+
{
|
8
|
+
[iCukeHTTPResponseHandler registerHandler:self];
|
9
|
+
}
|
10
|
+
|
11
|
+
+ (BOOL)canHandleRequest:(CFHTTPMessageRef)aRequest
|
12
|
+
method:(NSString *)requestMethod
|
13
|
+
url:(NSURL *)requestURL
|
14
|
+
headerFields:(NSDictionary *)requestHeaderFields
|
15
|
+
{
|
16
|
+
return [requestURL.path isEqualToString:@"/module"];
|
17
|
+
}
|
18
|
+
|
19
|
+
- (void)startResponse
|
20
|
+
{
|
21
|
+
NSString *module = [[url query] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
|
22
|
+
|
23
|
+
if (!dlopen([module UTF8String], 0)) {
|
24
|
+
CFHTTPMessageRef response =
|
25
|
+
CFHTTPMessageCreateResponse(
|
26
|
+
kCFAllocatorDefault, 500, NULL, kCFHTTPVersion1_1);
|
27
|
+
CFHTTPMessageSetHeaderFieldValue(
|
28
|
+
response, (CFStringRef)@"Content-Type", (CFStringRef)@"text/plain");
|
29
|
+
CFHTTPMessageSetHeaderFieldValue(
|
30
|
+
response, (CFStringRef)@"Connection", (CFStringRef)@"close");
|
31
|
+
CFHTTPMessageSetBody(
|
32
|
+
response,
|
33
|
+
(CFDataRef)[[NSString stringWithFormat:
|
34
|
+
@"Unable to load module: %@, %s", module, dlerror()]
|
35
|
+
dataUsingEncoding:NSUTF8StringEncoding]);
|
36
|
+
CFDataRef headerData = CFHTTPMessageCopySerializedMessage(response);
|
37
|
+
@try
|
38
|
+
{
|
39
|
+
[fileHandle writeData:(NSData *)headerData];
|
40
|
+
}
|
41
|
+
@catch (NSException *exception)
|
42
|
+
{
|
43
|
+
// Ignore the exception, it normally just means the client
|
44
|
+
// closed the connection from the other end.
|
45
|
+
}
|
46
|
+
@finally
|
47
|
+
{
|
48
|
+
CFRelease(headerData);
|
49
|
+
CFRelease(response);
|
50
|
+
[server closeHandler:self];
|
51
|
+
}
|
52
|
+
|
53
|
+
return;
|
54
|
+
}
|
55
|
+
|
56
|
+
CFHTTPMessageRef response = CFHTTPMessageCreateResponse(kCFAllocatorDefault, 200, NULL, kCFHTTPVersion1_1);
|
57
|
+
CFHTTPMessageSetHeaderFieldValue(response, (CFStringRef)@"Connection", (CFStringRef)@"close");
|
58
|
+
|
59
|
+
CFDataRef headerData = CFHTTPMessageCopySerializedMessage(response);
|
60
|
+
|
61
|
+
@try
|
62
|
+
{
|
63
|
+
[fileHandle writeData:(NSData *)headerData];
|
64
|
+
}
|
65
|
+
@catch (NSException *exception)
|
66
|
+
{
|
67
|
+
// Ignore the exception, it normally just means the client
|
68
|
+
// closed the connection from the other end.
|
69
|
+
}
|
70
|
+
@finally
|
71
|
+
{
|
72
|
+
CFRelease(headerData);
|
73
|
+
[server closeHandler:self];
|
74
|
+
}
|
75
|
+
}
|
76
|
+
@end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', '..', 'lib', 'icuke', 'sdk')
|
2
|
+
require 'rake/clean'
|
3
|
+
|
4
|
+
version = '3.1'
|
5
|
+
ICuke::SDK.use_latest(version)
|
6
|
+
|
7
|
+
rule '.o' => '.m' do |o|
|
8
|
+
sh "#{ICuke::SDK.gcc} -c -o #{o.name} #{o.source}"
|
9
|
+
end
|
10
|
+
|
11
|
+
CLEAN.include('**/*.o')
|
12
|
+
|
13
|
+
file "../#{ICuke::SDK.dylib}" => FileList['**/*.m'].ext('.o') do |t|
|
14
|
+
sh "#{ICuke::SDK.ld} -dynamiclib -o #{t.name} -framework Foundation -framework GraphicsServices -framework UIKit -framework CFNetwork -framework AXRuntime #{t.prerequisites.join(' ')}"
|
15
|
+
end
|
16
|
+
|
17
|
+
CLEAN.include("../#{ICuke::SDK.dylib}")
|
18
|
+
|
19
|
+
task :install => "../#{ICuke::SDK.dylib}"
|
20
|
+
task :default => :install
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|