1

如何使用例如 C / Obj-C 或 Swift API 以编程方式将 macOS 上的 iTunes 库位置设置为自定义位置?

或者,环境设置,例如修改 plist、使用defaultsCLI 工具或类似方法,对我来说也可以。

通常,选择自定义 iTunes 库位置是通过在按住选项键的同时启动 iTunes 来完成的。我需要能够在例如单元测试环境中/以编程方式执行此操作。

4

1 回答 1

0

您可以通过首选项进行设置。这就是我访问它的方式。

-(void)loadITunesPrefLibraryPath {
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSDictionary *userPref = [userDefaults persistentDomainForName:@"com.apple.iTunes"];

id dataBaseLoc = [userPref objectForKey:@"Database Location"];
NSLog(@"%s dataBaseLoc is:%@", __PRETTY_FUNCTION__, dataBaseLoc);
NSLog(@"%s dataBaseLoc class is:%@", __PRETTY_FUNCTION__, [dataBaseLoc class]);
NSData* dataBaseData = (NSData*)dataBaseLoc;
BOOL staleBook = NO;
NSError* bookError = nil;
NSURL* dataBaseURL = [NSURL URLByResolvingBookmarkData:dataBaseData options:NSURLBookmarkResolutionWithoutMounting relativeToURL:nil bookmarkDataIsStale:&staleBook error:&bookError];
self.libExtDBfile = dataBaseURL;
}

一旦你获得了 iTunes 的 userPrefs。并从 URL 创建一个 BookMarkData。您也许可以通过以下方式设置它

[userPref setObject:newDataBaseLoc forKey:@"Database Location"];

另请参阅可能的 ITLibrary 框架私有 API 访问的下一个答案

于 2020-03-25T09:50:14.373 回答