Thank you for your reply. In your inspiration, I did a test in my code. Here are my results.I am using let options:[NSURLBookmarkCreationOptions] = [ NSURLBookmarkCreationOptions(rawValue: 0), .MinimalBookmark, .SuitableForBookmarkFile ]1 with option 0, the bookmark even a little smaller than the .MinimalBookmark option.2 I can not get a file alias from option other than .SuitableForBookmark3 the bookmark data on option .SuitableForBookmarkFile is almost as big as a file alias.4 although you can not get a file alias directly from other option, you can still get then from bookmark to NSURL, then re-get a bookmark with .SuitableForBookmark option, then get the alias.do { try bookmark.writeToURL(newURL, options:.DataWritingAtomic) try NSURL.writeBookmarkData(bookmark, toURL: aliasURL, options: NSURLBookmarkFileCreationOptions(0)) } catch let error as NSError { print(error.localizedDescription) var isStale:ObjCBool = false let newURL = try! NSURL(byResolvingBookmarkData: bookmark, options: .WithoutUI, re