Index: testing/iossim/iossim.mm |
diff --git a/testing/iossim/iossim.mm b/testing/iossim/iossim.mm |
index 2cef4f36badf8c500ca3c0c5b9c6c86736832ba7..c85861c5eaeb888ce2080e87c508a52326aaa0e8 100644 |
--- a/testing/iossim/iossim.mm |
+++ b/testing/iossim/iossim.mm |
@@ -451,6 +451,7 @@ BOOL CreateHomeDirSubDirs(NSString* userHomePath) { |
NSArray* subDirsToCreate = [NSArray arrayWithObjects: |
@"Documents", |
@"Library/Caches", |
+ @"Library/Preferences", |
nil]; |
for (NSString* subDir in subDirsToCreate) { |
NSString* path = [userHomePath stringByAppendingPathComponent:subDir]; |
@@ -472,10 +473,17 @@ BOOL CreateHomeDirSubDirs(NSString* userHomePath) { |
// path, then sets the path in the appropriate environment variable. |
// Returns YES if successful, NO if unable to create or initialize the given |
// directory. |
-BOOL InitializeSimulatorUserHome(NSString* userHomePath) { |
+BOOL InitializeSimulatorUserHome(NSString* userHomePath, NSString* deviceName) { |
if (!CreateHomeDirSubDirs(userHomePath)) |
return NO; |
+ NSMutableDictionary* plistDict = |
TVL
2012/09/25 19:13:23
might be worth a comment here that the simulator h
lliabraa
2012/10/04 15:51:39
Done.
|
+ [NSMutableDictionary dictionaryWithObject:deviceName |
+ forKey:@"SimulateDevice"]; |
+ NSString* plistPath = @"Library/Preferences/com.apple.iphonesimulator.plist"; |
+ [plistDict writeToFile:[userHomePath stringByAppendingPathComponent:plistPath] |
+ atomically:YES]; |
+ |
// Update the environment to use the specified directory as the user home |
// directory. |
// Note: the third param of setenv specifies whether or not to overwrite the |
@@ -497,8 +505,8 @@ void PrintUsage() { |
" arguments to send the simulated app.\n" |
"\n" |
"Options:\n" |
- " -d Specifies the device (either 'iPhone' or 'iPad')." |
- " Defaults to 'iPhone'.\n" |
+ " -d Specifies the device (must be one of the values from the iOS" |
+ " Simulator's Hardware -> Device menu. Defaults to 'iPhone'.\n" |
" -s Specifies the SDK version to use (e.g '4.3')." |
" Will use system default if not specified.\n" |
" -u Specifies a user home directory for the simulator." |
@@ -527,6 +535,7 @@ int main(int argc, char* const argv[]) { |
if (worker != NULL) |
free(worker); |
+ |
NSString* appPath = nil; |
NSString* appName = nil; |
NSString* sdkVersion = nil; |
@@ -630,15 +639,15 @@ int main(int argc, char* const argv[]) { |
NSString* outputDir = CreateTempDirectory(@"iossim-XXXXXX"); |
NSString* stdioPath = [outputDir stringByAppendingPathComponent:@"stdio.txt"]; |
- // Make sure the device name is legit. |
+ // Determine the deviceFamily based on the deviceName |
NSNumber* deviceFamily = nil; |
- if (!deviceName || |
- [@"iPhone" caseInsensitiveCompare:deviceName] == NSOrderedSame) { |
+ if (!deviceName || [deviceName hasPrefix:@"iPhone"]) { |
deviceFamily = [NSNumber numberWithInt:kIPhoneFamily]; |
- } else if ([@"iPad" caseInsensitiveCompare:deviceName] == NSOrderedSame) { |
+ } else if ([deviceName hasPrefix:@"iPad"]) { |
deviceFamily = [NSNumber numberWithInt:kIPadFamily]; |
} else { |
- LogError(@"Invalid device name: %@", deviceName); |
+ LogError(@"Invalid device name: %@. Must begin with 'iPhone' or 'iPad'", |
+ deviceName); |
exit(EXIT_FAILURE); |
} |
@@ -653,7 +662,7 @@ int main(int argc, char* const argv[]) { |
exit(EXIT_FAILURE); |
} |
} |
- if (!InitializeSimulatorUserHome(simHomePath)) { |
+ if (!InitializeSimulatorUserHome(simHomePath, deviceName)) { |
LogError(@"Unable to initialize home directory for simulator: %@", |
simHomePath); |
exit(EXIT_FAILURE); |