{"id":12668,"date":"2015-10-26T10:41:22","date_gmt":"2015-10-26T14:41:22","guid":{"rendered":"http:\/\/mjtsai.com\/blog\/?p=12668"},"modified":"2015-10-26T10:41:22","modified_gmt":"2015-10-26T14:41:22","slug":"bookmarkdata-exposed","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2015\/10\/26\/bookmarkdata-exposed\/","title":{"rendered":"BookmarkData Exposed"},"content":{"rendered":"<p><a href=\"http:\/\/michaellynn.github.io\/2015\/10\/24\/apples-bookmarkdata-exposed\/\">Michael Lynn<\/a>:<\/p>\n<blockquote cite=\"http:\/\/michaellynn.github.io\/2015\/10\/24\/apples-bookmarkdata-exposed\/\"><p>To wit: What <em>are<\/em> the <code>.sfl<\/code> files that are appearing in OS X 10.11 El Capitan? There sure are a lot of them!<\/p><p>[&#8230;]<\/p>\n<p>But suddenly - <em>more<\/em> horrible implementation details: <em>You can&rsquo;t get the list of available keys!<\/em><\/p><p>Everywhere you search, everyone just recommends <a href=\"http:\/\/www.cocoabuilder.com\/archive\/cocoa\/313438-how-to-get-bookmarks-data-for-non-existing-files.html\">&ldquo;try all the keys&rdquo;<\/a> or &ldquo;try the keys you want values for&rdquo;.<\/p><p>&#8230; But <a href=\"https:\/\/developer.apple.com\/library\/mac\/documentation\/Cocoa\/Reference\/Foundation\/Classes\/NSURL_Class\/#\/\/apple_ref\/doc\/uid\/20000301-DontLinkElementID_1\">none of the keys<\/a> Apple has documented return just the simple share URL. They apparently want you to only use <code>URLByResolvingBookmarkData<\/code> for that.<\/p>\n<p>[&#8230;]<\/p>\n<p>With the information this undocumented debug output provides, I was able to determine the entire structure of the BookmarkData format, which I&rsquo;ll now document here.<\/p><\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Michael Lynn: To wit: What are the .sfl files that are appearing in OS X 10.11 El Capitan? There sure are a lot of them![&#8230;] But suddenly - more horrible implementation details: You can&rsquo;t get the list of available keys!Everywhere you search, everyone just recommends &ldquo;try all the keys&rdquo; or &ldquo;try the keys you want [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"","apple_news_api_id":"","apple_news_api_modified_at":"","apple_news_api_revision":"","apple_news_api_share_url":"","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[763,30,1199,489],"class_list":["post-12668","post","type-post","status-publish","format-standard","hentry","category-technology","tag-hopper","tag-mac","tag-mac-os-x-10-11","tag-url"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/12668","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=12668"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/12668\/revisions"}],"predecessor-version":[{"id":12669,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/12668\/revisions\/12669"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=12668"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=12668"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=12668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}