1

Mac OS X のバージョンを短時間 (数秒) 変更して、バージョンに合わせて古いアプリケーションまたは新しいアプリケーションを起動できるアプリケーションを作成しています。

SystemVersion.plist (/System/Library/CoreServices/SystemVersion.plist) からバージョンを読み取り、新しい必要なバージョンを設定します。ファイルを保存(上書き)してアプリを起動し、バージョンを元のバージョンに戻してください。

これはコードの最初の部分です (バージョンを読み取り、上書きを試みます)

// Get SystemVersion.plist as Dictionary 
NSBundle *bundle = [NSBundle bundleWithPath:@"/System/Library/CoreServices"];
NSString *SystemVersionString = [bundle pathForResource:@"SystemVersion" ofType:@"plist"];
NSMutableDictionary *SystemVersionDir = [NSDictionary dictionaryWithContentsOfFile:SystemVersionString];

// Get current version (Systemversion, ProductUserVisibleVersion)
NSString *SystemVersion = [SystemVersionDir objectForKey:@"ProductVersion"];

// Get desired version from text field
NSString *DesiredVersion = [_Text_version stringValue];

[_Text_Info setStringValue:SystemVersion];

// Set new version
[SystemVersionDir setObject:DesiredVersion forKey:@"ProductVersion"];

// Write (save) plist
if([SystemVersionDir writeToFile:@"/System/Library/CoreServices/SystemVersion.plist" atomically:YES])
{
    NSLog(@"YES");
}
else 
{
    NSLog(@"NO");
}

問題は、'writeToFile'. デスクトップなどに書き込むと、すべてうまくいき、新しいファイルが作成されます。また、ファイルをデスクトップにコピーしてそこに上書きしても問題ありません。ただし、 にあるものを上書きする必要があります/System/Library/CoreServices/

許可か何かが必要だと思います。しかし、私はそれを調べましたが、それは非常に多くの作業のようで、そのために私の心は混乱しています.

これを行うためのより簡単な方法、おそらく役立つクラスはありませんか?

注: Mac OS X 10.8 Mountain Lion Developer Preview 3 (Xcode 4.3.1)

4

0 に答える 0