Fix using one too many boundary strings in post data. Some servers (like PHP) co…
…uld handle this, which is why I didn't catch it before. Others (like Rails) would fail. Now compatible with Rails, anyway. Split username and password setter into two Added domain for NTLM authentication, will be applied if server asks for it (untested!) Fix wrong url in tests
Showing
7 changed files
with
81 additions
and
72 deletions
.gitignore
0 → 100644
1 | +build |
@@ -60,6 +60,9 @@ | @@ -60,6 +60,9 @@ | ||
60 | //Username and password used for authentication | 60 | //Username and password used for authentication |
61 | NSString *username; | 61 | NSString *username; |
62 | NSString *password; | 62 | NSString *password; |
63 | + | ||
64 | + //Domain used for NTLM authentication | ||
65 | + NSString *domain; | ||
63 | 66 | ||
64 | //Delegate for displaying upload progress (usually an NSProgressIndicator, but you can supply a different object and handle this yourself) | 67 | //Delegate for displaying upload progress (usually an NSProgressIndicator, but you can supply a different object and handle this yourself) |
65 | NSObject <ASIProgressDelegate> *uploadProgressDelegate; | 68 | NSObject <ASIProgressDelegate> *uploadProgressDelegate; |
@@ -129,9 +132,6 @@ | @@ -129,9 +132,6 @@ | ||
129 | //Add the contents of a local file as a POST variable to the request | 132 | //Add the contents of a local file as a POST variable to the request |
130 | - (void)setFile:(NSString *)filePath forKey:(NSString *)key; | 133 | - (void)setFile:(NSString *)filePath forKey:(NSString *)key; |
131 | 134 | ||
132 | -// When set, username and password will be presented for HTTP authentication | ||
133 | -- (void)setUsername:(NSString *)newUsername andPassword:(NSString *)newPassword; | ||
134 | - | ||
135 | #pragma mark get information about this request | 135 | #pragma mark get information about this request |
136 | 136 | ||
137 | - (BOOL)isFinished; //Same thing, for NSOperationQueues to read | 137 | - (BOOL)isFinished; //Same thing, for NSOperationQueues to read |
@@ -215,6 +215,9 @@ | @@ -215,6 +215,9 @@ | ||
215 | // Remove credentials from the keychain | 215 | // Remove credentials from the keychain |
216 | + (void)removeCredentialsForHost:(NSString *)host port:(int)port protocol:(NSString *)protocol realm:(NSString *)realm; | 216 | + (void)removeCredentialsForHost:(NSString *)host port:(int)port protocol:(NSString *)protocol realm:(NSString *)realm; |
217 | 217 | ||
218 | +@property (retain) NSString *username; | ||
219 | +@property (retain) NSString *password; | ||
220 | +@property (retain) NSString *domain; | ||
218 | 221 | ||
219 | @property (retain,readonly) NSURL *url; | 222 | @property (retain,readonly) NSURL *url; |
220 | @property (assign) id delegate; | 223 | @property (assign) id delegate; |
@@ -110,15 +110,6 @@ static void ReadStreamClientCallBack(CFReadStreamRef readStream, CFStreamEventTy | @@ -110,15 +110,6 @@ static void ReadStreamClientCallBack(CFReadStreamRef readStream, CFStreamEventTy | ||
110 | [fileData setValue:filePath forKey:key]; | 110 | [fileData setValue:filePath forKey:key]; |
111 | } | 111 | } |
112 | 112 | ||
113 | -- (void)setUsername:(NSString *)newUsername andPassword:(NSString *)newPassword | ||
114 | -{ | ||
115 | - [username release]; | ||
116 | - username = [newUsername retain]; | ||
117 | - [password release]; | ||
118 | - password = [newPassword retain]; | ||
119 | -} | ||
120 | - | ||
121 | - | ||
122 | 113 | ||
123 | #pragma mark get information about this request | 114 | #pragma mark get information about this request |
124 | 115 | ||
@@ -190,25 +181,35 @@ static void ReadStreamClientCallBack(CFReadStreamRef readStream, CFStreamEventTy | @@ -190,25 +181,35 @@ static void ReadStreamClientCallBack(CFReadStreamRef readStream, CFStreamEventTy | ||
190 | NSData *endItemBoundary = [[NSString stringWithFormat:@"\r\n--%@\r\n",stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]; | 181 | NSData *endItemBoundary = [[NSString stringWithFormat:@"\r\n--%@\r\n",stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]; |
191 | NSEnumerator *e = [postData keyEnumerator]; | 182 | NSEnumerator *e = [postData keyEnumerator]; |
192 | NSString *key; | 183 | NSString *key; |
184 | + int i=0; | ||
193 | while (key = [e nextObject]) { | 185 | while (key = [e nextObject]) { |
194 | [postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",key] dataUsingEncoding:NSUTF8StringEncoding]]; | 186 | [postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",key] dataUsingEncoding:NSUTF8StringEncoding]]; |
195 | [postBody appendData:[[postData objectForKey:key] dataUsingEncoding:NSUTF8StringEncoding]]; | 187 | [postBody appendData:[[postData objectForKey:key] dataUsingEncoding:NSUTF8StringEncoding]]; |
196 | - [postBody appendData:endItemBoundary]; | 188 | + i++; |
189 | + if (i != [postData count] || [fileData count] > 0) { //Only add the boundary if this is not the last item in the post body | ||
190 | + [postBody appendData:endItemBoundary]; | ||
191 | + } | ||
197 | } | 192 | } |
198 | 193 | ||
199 | //Adds files to upload | 194 | //Adds files to upload |
200 | - NSData *contentTypeHeader = [[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]; | 195 | + NSData *contentBlueprintHeader = [[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]; |
201 | e = [fileData keyEnumerator]; | 196 | e = [fileData keyEnumerator]; |
197 | + i=0; | ||
202 | while (key = [e nextObject]) { | 198 | while (key = [e nextObject]) { |
203 | NSString *filePath = [fileData objectForKey:key]; | 199 | NSString *filePath = [fileData objectForKey:key]; |
204 | [postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"%@\"\r\n",key,[filePath lastPathComponent]] dataUsingEncoding:NSUTF8StringEncoding]]; | 200 | [postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"%@\"\r\n",key,[filePath lastPathComponent]] dataUsingEncoding:NSUTF8StringEncoding]]; |
205 | - [postBody appendData:contentTypeHeader]; | 201 | + [postBody appendData:contentBlueprintHeader]; |
206 | [postBody appendData:[NSData dataWithContentsOfMappedFile:filePath]]; | 202 | [postBody appendData:[NSData dataWithContentsOfMappedFile:filePath]]; |
207 | - [postBody appendData:endItemBoundary]; | 203 | + i++; |
204 | + if (i != [fileData count]) { //Only add the boundary if this is not the last item in the post body | ||
205 | + [postBody appendData:endItemBoundary]; | ||
206 | + } | ||
208 | } | 207 | } |
209 | 208 | ||
210 | [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; | 209 | [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; |
211 | 210 | ||
211 | + NSString *foo = [[[NSString alloc] initWithBytes:[postBody bytes] length:[postBody length] encoding:NSUTF8StringEncoding] autorelease]; | ||
212 | + | ||
212 | // Set the body. | 213 | // Set the body. |
213 | CFHTTPMessageSetBody(request, (CFDataRef)postBody); | 214 | CFHTTPMessageSetBody(request, (CFDataRef)postBody); |
214 | 215 | ||
@@ -464,6 +465,11 @@ static void ReadStreamClientCallBack(CFReadStreamRef readStream, CFStreamEventTy | @@ -464,6 +465,11 @@ static void ReadStreamClientCallBack(CFReadStreamRef readStream, CFStreamEventTy | ||
464 | - (NSMutableDictionary *)findCredentials | 465 | - (NSMutableDictionary *)findCredentials |
465 | { | 466 | { |
466 | NSMutableDictionary *newCredentials = [[[NSMutableDictionary alloc] init] autorelease]; | 467 | NSMutableDictionary *newCredentials = [[[NSMutableDictionary alloc] init] autorelease]; |
468 | + | ||
469 | + // Is an account domain needed? (used currently for NTLM only) | ||
470 | + if (CFHTTPAuthenticationRequiresAccountDomain(requestAuthentication)) { | ||
471 | + [newCredentials setObject:domain forKey:(NSString *)kCFHTTPAuthenticationAccountDomain]; | ||
472 | + } | ||
467 | 473 | ||
468 | // Get the authentication realm | 474 | // Get the authentication realm |
469 | [authenticationRealm release]; | 475 | [authenticationRealm release]; |
@@ -763,8 +769,9 @@ static void ReadStreamClientCallBack(CFReadStreamRef readStream, CFStreamEventTy | @@ -763,8 +769,9 @@ static void ReadStreamClientCallBack(CFReadStreamRef readStream, CFStreamEventTy | ||
763 | } | 769 | } |
764 | 770 | ||
765 | 771 | ||
766 | - | 772 | +@synthesize username; |
767 | - | 773 | +@synthesize password; |
774 | +@synthesize domain; | ||
768 | @synthesize url; | 775 | @synthesize url; |
769 | @synthesize delegate; | 776 | @synthesize delegate; |
770 | @synthesize uploadProgressDelegate; | 777 | @synthesize uploadProgressDelegate; |
@@ -62,7 +62,7 @@ More tests needed for: | @@ -62,7 +62,7 @@ More tests needed for: | ||
62 | NSOperationQueue *queue = [[[NSOperationQueue alloc] init] autorelease]; | 62 | NSOperationQueue *queue = [[[NSOperationQueue alloc] init] autorelease]; |
63 | 63 | ||
64 | NSURL *url; | 64 | NSURL *url; |
65 | - url = [[[NSURL alloc] initWithString:@"http:/allseeing-i.com/asi-http-request/tests/first"] autorelease]; | 65 | + url = [[[NSURL alloc] initWithString:@"http://allseeing-i.com/asi-http-request/tests/first"] autorelease]; |
66 | ASIHTTPRequest *request1 = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease]; | 66 | ASIHTTPRequest *request1 = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease]; |
67 | [queue addOperation:request1]; | 67 | [queue addOperation:request1]; |
68 | 68 |
@@ -26,3 +26,7 @@ ASIHTTPRequest is partly based on code from Apple's ImageClient code samples, so | @@ -26,3 +26,7 @@ ASIHTTPRequest is partly based on code from Apple's ImageClient code samples, so | ||
26 | 26 | ||
27 | ASIHTTPRequest is my first open source Objective-C code. I hope to expand the class and example application further (unit tests, maybe even iphone examples...) in the coming months. If you find it helpful, please do get in touch! | 27 | ASIHTTPRequest is my first open source Objective-C code. I hope to expand the class and example application further (unit tests, maybe even iphone examples...) in the coming months. If you find it helpful, please do get in touch! |
28 | 28 | ||
29 | +To do: | ||
30 | +NTLM Authentication? | ||
31 | +Digest Authentication? | ||
32 | +PUT / DELETE /GET? |
@@ -304,7 +304,7 @@ | @@ -304,7 +304,7 @@ | ||
304 | <real>312</real> | 304 | <real>312</real> |
305 | </array> | 305 | </array> |
306 | <key>RubberWindowFrame</key> | 306 | <key>RubberWindowFrame</key> |
307 | - <string>408 248 1342 819 0 0 1920 1178 </string> | 307 | + <string>409 250 1342 819 0 0 1920 1178 </string> |
308 | </dict> | 308 | </dict> |
309 | <key>Module</key> | 309 | <key>Module</key> |
310 | <string>PBXSmartGroupTreeModule</string> | 310 | <string>PBXSmartGroupTreeModule</string> |
@@ -334,7 +334,7 @@ | @@ -334,7 +334,7 @@ | ||
334 | <key>_historyCapacity</key> | 334 | <key>_historyCapacity</key> |
335 | <integer>0</integer> | 335 | <integer>0</integer> |
336 | <key>bookmark</key> | 336 | <key>bookmark</key> |
337 | - <string>B5F3B7490E43698300E001FD</string> | 337 | + <string>B567EF2F0E4EDC06001E238F</string> |
338 | <key>history</key> | 338 | <key>history</key> |
339 | <array> | 339 | <array> |
340 | <string>B5731B8B0E4310180008024F</string> | 340 | <string>B5731B8B0E4310180008024F</string> |
@@ -345,12 +345,12 @@ | @@ -345,12 +345,12 @@ | ||
345 | <string>B5731E180E43424A0008024F</string> | 345 | <string>B5731E180E43424A0008024F</string> |
346 | <string>B5731E330E4344F90008024F</string> | 346 | <string>B5731E330E4344F90008024F</string> |
347 | <string>B5731E550E435ADB0008024F</string> | 347 | <string>B5731E550E435ADB0008024F</string> |
348 | - <string>B5F3B71B0E4367CA00E001FD</string> | ||
349 | - <string>B5F3B71C0E4367CA00E001FD</string> | ||
350 | <string>B5F3B7370E43683600E001FD</string> | 348 | <string>B5F3B7370E43683600E001FD</string> |
351 | - <string>B5F3B7380E43683600E001FD</string> | 349 | + <string>B5F3B74C0E4378FA00E001FD</string> |
352 | - <string>B5F3B7440E43698300E001FD</string> | 350 | + <string>B567EEF10E4EDA85001E238F</string> |
353 | - <string>B5F3B7450E43698300E001FD</string> | 351 | + <string>B567EF2B0E4EDC06001E238F</string> |
352 | + <string>B567EF2C0E4EDC06001E238F</string> | ||
353 | + <string>B567EF140E4EDB3D001E238F</string> | ||
354 | </array> | 354 | </array> |
355 | <key>prevStack</key> | 355 | <key>prevStack</key> |
356 | <array> | 356 | <array> |
@@ -367,21 +367,16 @@ | @@ -367,21 +367,16 @@ | ||
367 | <string>B5731BC00E4319180008024F</string> | 367 | <string>B5731BC00E4319180008024F</string> |
368 | <string>B5731BF60E431A050008024F</string> | 368 | <string>B5731BF60E431A050008024F</string> |
369 | <string>B5731D9B0E433A750008024F</string> | 369 | <string>B5731D9B0E433A750008024F</string> |
370 | - <string>B5F3B7200E4367CA00E001FD</string> | ||
371 | - <string>B5F3B7210E4367CA00E001FD</string> | ||
372 | - <string>B5F3B7220E4367CA00E001FD</string> | ||
373 | - <string>B5F3B7230E4367CA00E001FD</string> | ||
374 | - <string>B5F3B7240E4367CA00E001FD</string> | ||
375 | - <string>B5F3B7250E4367CA00E001FD</string> | ||
376 | - <string>B5F3B7260E4367CA00E001FD</string> | ||
377 | - <string>B5F3B7270E4367CA00E001FD</string> | ||
378 | - <string>B5F3B7280E4367CA00E001FD</string> | ||
379 | - <string>B5F3B7290E4367CA00E001FD</string> | ||
380 | <string>B5F3B7390E43683600E001FD</string> | 370 | <string>B5F3B7390E43683600E001FD</string> |
381 | - <string>B5F3B73A0E43683600E001FD</string> | 371 | + <string>B567EEF40E4EDA85001E238F</string> |
382 | - <string>B5F3B7460E43698300E001FD</string> | 372 | + <string>B567EEF50E4EDA85001E238F</string> |
383 | - <string>B5F3B7470E43698300E001FD</string> | 373 | + <string>B567EEF60E4EDA85001E238F</string> |
384 | - <string>B5F3B7480E43698300E001FD</string> | 374 | + <string>B567EEF70E4EDA85001E238F</string> |
375 | + <string>B567EEF80E4EDA85001E238F</string> | ||
376 | + <string>B567EEF90E4EDA85001E238F</string> | ||
377 | + <string>B567EF160E4EDB3D001E238F</string> | ||
378 | + <string>B567EF2D0E4EDC06001E238F</string> | ||
379 | + <string>B567EF2E0E4EDC06001E238F</string> | ||
385 | </array> | 380 | </array> |
386 | </dict> | 381 | </dict> |
387 | <key>SplitCount</key> | 382 | <key>SplitCount</key> |
@@ -395,7 +390,7 @@ | @@ -395,7 +390,7 @@ | ||
395 | <key>Frame</key> | 390 | <key>Frame</key> |
396 | <string>{{0, 0}, {1008, 679}}</string> | 391 | <string>{{0, 0}, {1008, 679}}</string> |
397 | <key>RubberWindowFrame</key> | 392 | <key>RubberWindowFrame</key> |
398 | - <string>408 248 1342 819 0 0 1920 1178 </string> | 393 | + <string>409 250 1342 819 0 0 1920 1178 </string> |
399 | </dict> | 394 | </dict> |
400 | <key>Module</key> | 395 | <key>Module</key> |
401 | <string>PBXNavigatorGroup</string> | 396 | <string>PBXNavigatorGroup</string> |
@@ -415,7 +410,7 @@ | @@ -415,7 +410,7 @@ | ||
415 | <key>Frame</key> | 410 | <key>Frame</key> |
416 | <string>{{0, 684}, {1008, 94}}</string> | 411 | <string>{{0, 684}, {1008, 94}}</string> |
417 | <key>RubberWindowFrame</key> | 412 | <key>RubberWindowFrame</key> |
418 | - <string>408 248 1342 819 0 0 1920 1178 </string> | 413 | + <string>409 250 1342 819 0 0 1920 1178 </string> |
419 | </dict> | 414 | </dict> |
420 | <key>Module</key> | 415 | <key>Module</key> |
421 | <string>XCDetailModule</string> | 416 | <string>XCDetailModule</string> |
@@ -439,9 +434,9 @@ | @@ -439,9 +434,9 @@ | ||
439 | </array> | 434 | </array> |
440 | <key>TableOfContents</key> | 435 | <key>TableOfContents</key> |
441 | <array> | 436 | <array> |
442 | - <string>B5F3B72C0E4367CA00E001FD</string> | 437 | + <string>B567EEE20E4ED8D2001E238F</string> |
443 | <string>1CE0B1FE06471DED0097A5F4</string> | 438 | <string>1CE0B1FE06471DED0097A5F4</string> |
444 | - <string>B5F3B72D0E4367CA00E001FD</string> | 439 | + <string>B567EEE30E4ED8D2001E238F</string> |
445 | <string>1CE0B20306471E060097A5F4</string> | 440 | <string>1CE0B20306471E060097A5F4</string> |
446 | <string>1CE0B20506471E060097A5F4</string> | 441 | <string>1CE0B20506471E060097A5F4</string> |
447 | </array> | 442 | </array> |
@@ -575,16 +570,15 @@ | @@ -575,16 +570,15 @@ | ||
575 | <integer>5</integer> | 570 | <integer>5</integer> |
576 | <key>WindowOrderList</key> | 571 | <key>WindowOrderList</key> |
577 | <array> | 572 | <array> |
578 | - <string>B5F3B7100E4367C800E001FD</string> | 573 | + <string>B567EF0F0E4EDB31001E238F</string> |
579 | - <string>B5F3B72F0E4367CA00E001FD</string> | 574 | + <string>B567EF100E4EDB31001E238F</string> |
580 | - <string>B5F3B7300E4367CA00E001FD</string> | ||
581 | <string>B5ABC8410E24CDE70072F422</string> | 575 | <string>B5ABC8410E24CDE70072F422</string> |
582 | - <string>1C78EAAD065D492600B07095</string> | ||
583 | <string>1CD10A99069EF8BA00B06720</string> | 576 | <string>1CD10A99069EF8BA00B06720</string> |
577 | + <string>1C78EAAD065D492600B07095</string> | ||
584 | <string>/Users/ben/asi-http-request/asi-http-request.xcodeproj</string> | 578 | <string>/Users/ben/asi-http-request/asi-http-request.xcodeproj</string> |
585 | </array> | 579 | </array> |
586 | <key>WindowString</key> | 580 | <key>WindowString</key> |
587 | - <string>408 248 1342 819 0 0 1920 1178 </string> | 581 | + <string>409 250 1342 819 0 0 1920 1178 </string> |
588 | <key>WindowToolsV3</key> | 582 | <key>WindowToolsV3</key> |
589 | <array> | 583 | <array> |
590 | <dict> | 584 | <dict> |
@@ -600,12 +594,14 @@ | @@ -600,12 +594,14 @@ | ||
600 | <key>Dock</key> | 594 | <key>Dock</key> |
601 | <array> | 595 | <array> |
602 | <dict> | 596 | <dict> |
597 | + <key>BecomeActive</key> | ||
598 | + <true/> | ||
603 | <key>ContentConfiguration</key> | 599 | <key>ContentConfiguration</key> |
604 | <dict> | 600 | <dict> |
605 | <key>PBXProjectModuleGUID</key> | 601 | <key>PBXProjectModuleGUID</key> |
606 | <string>1CD0528F0623707200166675</string> | 602 | <string>1CD0528F0623707200166675</string> |
607 | <key>PBXProjectModuleLabel</key> | 603 | <key>PBXProjectModuleLabel</key> |
608 | - <string></string> | 604 | + <string>ASIHTTPRequestTests.m</string> |
609 | <key>StatusBarVisibility</key> | 605 | <key>StatusBarVisibility</key> |
610 | <true/> | 606 | <true/> |
611 | </dict> | 607 | </dict> |
@@ -614,7 +610,7 @@ | @@ -614,7 +610,7 @@ | ||
614 | <key>Frame</key> | 610 | <key>Frame</key> |
615 | <string>{{0, 0}, {1440, 536}}</string> | 611 | <string>{{0, 0}, {1440, 536}}</string> |
616 | <key>RubberWindowFrame</key> | 612 | <key>RubberWindowFrame</key> |
617 | - <string>241 -125 1440 818 0 0 1920 1178 </string> | 613 | + <string>287 118 1440 818 0 0 1920 1178 </string> |
618 | </dict> | 614 | </dict> |
619 | <key>Module</key> | 615 | <key>Module</key> |
620 | <string>PBXNavigatorGroup</string> | 616 | <string>PBXNavigatorGroup</string> |
@@ -638,7 +634,7 @@ | @@ -638,7 +634,7 @@ | ||
638 | <key>Frame</key> | 634 | <key>Frame</key> |
639 | <string>{{0, 541}, {1440, 236}}</string> | 635 | <string>{{0, 541}, {1440, 236}}</string> |
640 | <key>RubberWindowFrame</key> | 636 | <key>RubberWindowFrame</key> |
641 | - <string>241 -125 1440 818 0 0 1920 1178 </string> | 637 | + <string>287 118 1440 818 0 0 1920 1178 </string> |
642 | </dict> | 638 | </dict> |
643 | <key>Module</key> | 639 | <key>Module</key> |
644 | <string>PBXBuildResultsModule</string> | 640 | <string>PBXBuildResultsModule</string> |
@@ -661,18 +657,18 @@ | @@ -661,18 +657,18 @@ | ||
661 | <key>TableOfContents</key> | 657 | <key>TableOfContents</key> |
662 | <array> | 658 | <array> |
663 | <string>B5ABC8410E24CDE70072F422</string> | 659 | <string>B5ABC8410E24CDE70072F422</string> |
664 | - <string>B5F3B7080E4367C800E001FD</string> | 660 | + <string>B567EEE40E4ED8D2001E238F</string> |
665 | <string>1CD0528F0623707200166675</string> | 661 | <string>1CD0528F0623707200166675</string> |
666 | <string>XCMainBuildResultsModuleGUID</string> | 662 | <string>XCMainBuildResultsModuleGUID</string> |
667 | </array> | 663 | </array> |
668 | <key>ToolbarConfiguration</key> | 664 | <key>ToolbarConfiguration</key> |
669 | <string>xcode.toolbar.config.buildV3</string> | 665 | <string>xcode.toolbar.config.buildV3</string> |
670 | <key>WindowString</key> | 666 | <key>WindowString</key> |
671 | - <string>241 -125 1440 818 0 0 1920 1178 </string> | 667 | + <string>287 118 1440 818 0 0 1920 1178 </string> |
672 | <key>WindowToolGUID</key> | 668 | <key>WindowToolGUID</key> |
673 | <string>B5ABC8410E24CDE70072F422</string> | 669 | <string>B5ABC8410E24CDE70072F422</string> |
674 | <key>WindowToolIsVisible</key> | 670 | <key>WindowToolIsVisible</key> |
675 | - <false/> | 671 | + <true/> |
676 | </dict> | 672 | </dict> |
677 | <dict> | 673 | <dict> |
678 | <key>FirstTimeWindowDisplayed</key> | 674 | <key>FirstTimeWindowDisplayed</key> |
@@ -746,21 +742,19 @@ | @@ -746,21 +742,19 @@ | ||
746 | <key>DebugVariablesTableConfiguration</key> | 742 | <key>DebugVariablesTableConfiguration</key> |
747 | <array> | 743 | <array> |
748 | <string>Name</string> | 744 | <string>Name</string> |
749 | - <real>348</real> | 745 | + <real>420</real> |
750 | - <string>Type</string> | ||
751 | - <real>216</real> | ||
752 | <string>Value</string> | 746 | <string>Value</string> |
753 | - <real>184</real> | 747 | + <real>255</real> |
754 | <string>Summary</string> | 748 | <string>Summary</string> |
755 | - <real>80</real> | 749 | + <real>151</real> |
756 | </array> | 750 | </array> |
757 | <key>Frame</key> | 751 | <key>Frame</key> |
758 | <string>{{713, 0}, {851, 339}}</string> | 752 | <string>{{713, 0}, {851, 339}}</string> |
759 | <key>RubberWindowFrame</key> | 753 | <key>RubberWindowFrame</key> |
760 | - <string>238 283 1564 676 0 0 1920 1178 </string> | 754 | + <string>158 131 1564 676 0 0 1920 1178 </string> |
761 | </dict> | 755 | </dict> |
762 | <key>RubberWindowFrame</key> | 756 | <key>RubberWindowFrame</key> |
763 | - <string>238 283 1564 676 0 0 1920 1178 </string> | 757 | + <string>158 131 1564 676 0 0 1920 1178 </string> |
764 | </dict> | 758 | </dict> |
765 | <key>Module</key> | 759 | <key>Module</key> |
766 | <string>PBXDebugSessionModule</string> | 760 | <string>PBXDebugSessionModule</string> |
@@ -783,18 +777,18 @@ | @@ -783,18 +777,18 @@ | ||
783 | <key>TableOfContents</key> | 777 | <key>TableOfContents</key> |
784 | <array> | 778 | <array> |
785 | <string>1CD10A99069EF8BA00B06720</string> | 779 | <string>1CD10A99069EF8BA00B06720</string> |
786 | - <string>B5F3B7090E4367C800E001FD</string> | 780 | + <string>B567EEE50E4ED8D2001E238F</string> |
787 | <string>1C162984064C10D400B95A72</string> | 781 | <string>1C162984064C10D400B95A72</string> |
788 | - <string>B5F3B70A0E4367C800E001FD</string> | 782 | + <string>B567EEE60E4ED8D2001E238F</string> |
789 | - <string>B5F3B70B0E4367C800E001FD</string> | 783 | + <string>B567EEE70E4ED8D2001E238F</string> |
790 | - <string>B5F3B70C0E4367C800E001FD</string> | 784 | + <string>B567EEE80E4ED8D2001E238F</string> |
791 | - <string>B5F3B70D0E4367C800E001FD</string> | 785 | + <string>B567EEE90E4ED8D2001E238F</string> |
792 | - <string>B5F3B70E0E4367C800E001FD</string> | 786 | + <string>B567EEEA0E4ED8D2001E238F</string> |
793 | </array> | 787 | </array> |
794 | <key>ToolbarConfiguration</key> | 788 | <key>ToolbarConfiguration</key> |
795 | <string>xcode.toolbar.config.debugV3</string> | 789 | <string>xcode.toolbar.config.debugV3</string> |
796 | <key>WindowString</key> | 790 | <key>WindowString</key> |
797 | - <string>238 283 1564 676 0 0 1920 1178 </string> | 791 | + <string>158 131 1564 676 0 0 1920 1178 </string> |
798 | <key>WindowToolGUID</key> | 792 | <key>WindowToolGUID</key> |
799 | <string>1CD10A99069EF8BA00B06720</string> | 793 | <string>1CD10A99069EF8BA00B06720</string> |
800 | <key>WindowToolIsVisible</key> | 794 | <key>WindowToolIsVisible</key> |
@@ -922,7 +916,7 @@ | @@ -922,7 +916,7 @@ | ||
922 | <key>Frame</key> | 916 | <key>Frame</key> |
923 | <string>{{0, 0}, {636, 839}}</string> | 917 | <string>{{0, 0}, {636, 839}}</string> |
924 | <key>RubberWindowFrame</key> | 918 | <key>RubberWindowFrame</key> |
925 | - <string>121 12 636 880 0 0 1920 1178 </string> | 919 | + <string>138 298 636 880 0 0 1920 1178 </string> |
926 | </dict> | 920 | </dict> |
927 | <key>Module</key> | 921 | <key>Module</key> |
928 | <string>PBXDebugCLIModule</string> | 922 | <string>PBXDebugCLIModule</string> |
@@ -945,13 +939,13 @@ | @@ -945,13 +939,13 @@ | ||
945 | <key>TableOfContents</key> | 939 | <key>TableOfContents</key> |
946 | <array> | 940 | <array> |
947 | <string>1C78EAAD065D492600B07095</string> | 941 | <string>1C78EAAD065D492600B07095</string> |
948 | - <string>B5F3B70F0E4367C800E001FD</string> | 942 | + <string>B567EEEB0E4ED8D2001E238F</string> |
949 | <string>1C78EAAC065D492600B07095</string> | 943 | <string>1C78EAAC065D492600B07095</string> |
950 | </array> | 944 | </array> |
951 | <key>ToolbarConfiguration</key> | 945 | <key>ToolbarConfiguration</key> |
952 | <string>xcode.toolbar.config.consoleV3</string> | 946 | <string>xcode.toolbar.config.consoleV3</string> |
953 | <key>WindowString</key> | 947 | <key>WindowString</key> |
954 | - <string>121 12 636 880 0 0 1920 1178 </string> | 948 | + <string>138 298 636 880 0 0 1920 1178 </string> |
955 | <key>WindowToolGUID</key> | 949 | <key>WindowToolGUID</key> |
956 | <string>1C78EAAD065D492600B07095</string> | 950 | <string>1C78EAAD065D492600B07095</string> |
957 | <key>WindowToolIsVisible</key> | 951 | <key>WindowToolIsVisible</key> |
This diff is collapsed. Click to expand it.
-
Please register or login to post a comment