2
我正在使用以下代碼來生成安全範圍的書籤。這在10.8和10.9上運行正常,但在10.10停止工作。我不知道要檢查什麼?安全範圍書籤在優勝美地停止工作10.10
NSOpenPanel *panel = [NSOpenPanel openPanel];
[panel setAllowsMultipleSelection:NO];
[panel setCanChooseDirectories:YES];
[panel setCanChooseFiles:NO];
[panel setResolvesAliases:YES];
[panel setCanCreateDirectories:YES];
[panel setTitle:@"Choose a directory as your input folder"];
[panel setPrompt:@"Choose"];
NSInteger result = [panel runModal];
if (result == NSFileHandlingPanelOKButton){
NSURL *urlPath = [[panel URLs] objectAtIndex:0];
NSError *error = nil;
NSData *bookmark = nil;
bookmark = [urlPath bookmarkDataWithOptions:NSURLBookmarkCreationWithSecurityScope
includingResourceValuesForKeys:nil
relativeToURL:nil
error:&error];
if (error) {
[NSApp presentError:error];
}
BOOL bookmarkDataIsStale;
NSURL *url = [NSURL URLByResolvingBookmarkData: bookmark
options:NSURLBookmarkResolutionWithSecurityScope
relativeToURL:nil
bookmarkDataIsStale:&bookmarkDataIsStale error:nil];
}
我已經啓用了應用程序沙箱的權利,並且增加了com.apple.security.files.user-selected.read寫入和com.apple.security.files.bookmarks.app範圍的權利。
以上是生成的URL,但它不是安全範圍。所以當它被記錄時它是通常的文件路徑,而不是以前發生的?然後再堆積字符。
任何幫助或意見讚賞
我已經看到你在我自己的應用程序中描述的行爲,但這些URL仍然具有安全範圍(他們可以授予對該文件的訪問權限)。您再也看不到查詢字符串中的安全令牌。我在Apple Dev論壇上發現了這個主題:https://devforums.apple.com/message/1059959 – Dov 2014-11-07 18:43:35
這仍然沒有解決,但似乎與您鏈接到的問題相同。非常感謝。 – 2014-11-19 11:48:03
我已經解決了這個問題。上述代碼用於使用[[NSUserDefaults standardUserDefaults] setURL:url forKey:@「basePath」]將安全範圍書籤存儲爲NSURL。這在10.8和10.9中運行正常,但不再在10.10中運行。如果我將書籤數據保存爲數據對象,然後根據需要檢索它並將其轉換爲NSURL,則所有工作都會正常工作。 – 2014-11-21 10:57:07