{"id":31893,"date":"2021-03-16T14:27:55","date_gmt":"2021-03-16T18:27:55","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=31893"},"modified":"2025-10-11T12:17:53","modified_gmt":"2025-10-11T16:17:53","slug":"mac-apis-that-require-provisioning-profiles","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2021\/03\/16\/mac-apis-that-require-provisioning-profiles\/","title":{"rendered":"Mac APIs that Require Provisioning Profiles"},"content":{"rendered":"<p><a href=\"https:\/\/twitter.com\/jmfd\/status\/1366102746240180225\">Jonathan Deutsch<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/jmfd\/status\/1366102746240180225\"><p>Apple&rsquo;s documentation should also state provisioning profile requirements of API.<\/p><p>I just burned a day thinking I&rsquo;d be able to use HomeKit on a Developer ID app.<\/p><p>There&rsquo;s no way the App Store will approve my utility; so the feature (which I thought was quite cool) is instead cut.<\/p><\/blockquote>\n\n<p>The documentation should also state which APIs <a href=\"https:\/\/mjtsai.com\/blog\/2012\/05\/17\/hotkeys-and-the-mac-app-store\/\">work when sandboxed<\/a>.<\/p>\n\n<p><a href=\"https:\/\/www.mail-archive.com\/cocoa-dev@lists.apple.com\/msg110003.html\">Allan Odgaard<\/a>:<\/p>\n<blockquote cite=\"https:\/\/www.mail-archive.com\/cocoa-dev@lists.apple.com\/msg110003.html\"><p>I have codesigned the application using hardened runtime and the <code>com.apple.developer.security.privileged-file-operations<\/code> entitlement (although this is outside App Store and no sandboxing).<\/p>\n<p>It doesn&rsquo;t work and I see this error in the console:<\/p>\n<pre>(libsystem_secinit.dylib) com.apple.secinitd.fileoperations: xpc_pipe_routine() returned [5: Input\/output error]<\/pre><\/blockquote>\n\n<p><code>NSWorkspaceAuthorization<\/code> <a href=\"https:\/\/developer.apple.com\/forums\/thread\/653890\">apparently<\/a> requires a provisioning profile.<\/p>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2020\/11\/23\/requesting-entitlements-still-broken\/\">Requesting Entitlements, Still Broken<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2020\/05\/11\/apps-that-cant-be-transferred\/\">Apps That Can&rsquo;t Be Transferred<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2020\/02\/19\/which-os-services-are-app-storeonly\/\">Which OS Services Are App Store&#x2013;only?<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/07\/05\/requesting-entitlements\/\">Requesting Entitlements<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/02\/27\/bbedit-12-6-to-return-to-the-mac-app-store\/\">BBEdit 12.6 to Return to the Mac App Store<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2018\/11\/16\/transmit-5-on-the-mac-app-store\/\">Transmit 5 on the Mac App Store<\/a><\/li>\n<\/ul>\n\n<p id=\"mac-apis-that-require-provisioning-profiles-update-2021-03-19\">Update (2021-03-19): <a href=\"https:\/\/twitter.com\/jmfd\/status\/1372599316292931584\">Jonathan Deutsch<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/jmfd\/status\/1372599316292931584\">\n<p>I was trying to use HomeKit in a Catalyst helper app on macOS. It can&rsquo;t be provisioned for Developer ID, but would work for the App Store.<\/p>\n<\/blockquote>\n<p>HomeKit is only available on macOS via Catalyst and UIKIt for Mac.<\/p>","protected":false},"excerpt":{"rendered":"<p>Jonathan Deutsch: Apple&rsquo;s documentation should also state provisioning profile requirements of API.I just burned a day thinking I&rsquo;d be able to use HomeKit on a Developer ID app.There&rsquo;s no way the App Store will approve my utility; so the feature (which I thought was quite cool) is instead cut. The documentation should also state which [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2021-03-16T18:27:58Z","apple_news_api_id":"e593f391-f901-40f2-8fab-ec94ee5dd77c","apple_news_api_modified_at":"2023-12-06T19:21:24Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAABA==","apple_news_api_share_url":"https:\/\/apple.news\/A5ZPzkfkBQPKPq-yU7l3XfA","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":[4],"tags":[1621,466,164,2518,1326,30,1891,71,2848],"class_list":["post-31893","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-marzipan","tag-codesigning","tag-documentation","tag-entitlements","tag-homekit","tag-mac","tag-macos-11-0","tag-programming","tag-provisioning-profiles"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/31893","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=31893"}],"version-history":[{"count":4,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/31893\/revisions"}],"predecessor-version":[{"id":36868,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/31893\/revisions\/36868"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=31893"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=31893"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=31893"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}