如何使用例如 C / Obj-C 或 Swift API 以编程方式将 macOS 上的 iTunes 库位置设置为自定义位置?
或者,环境设置,例如修改 plist、使用defaults
CLI 工具或类似方法,对我来说也可以。
通常,选择自定义 iTunes 库位置是通过在按住选项键的同时启动 iTunes 来完成的。我需要能够在例如单元测试环境中/以编程方式执行此操作。
如何使用例如 C / Obj-C 或 Swift API 以编程方式将 macOS 上的 iTunes 库位置设置为自定义位置?
或者,环境设置,例如修改 plist、使用defaults
CLI 工具或类似方法,对我来说也可以。
通常,选择自定义 iTunes 库位置是通过在按住选项键的同时启动 iTunes 来完成的。我需要能够在例如单元测试环境中/以编程方式执行此操作。
您可以通过首选项进行设置。这就是我访问它的方式。
-(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 访问的下一个答案