{"id":15378,"date":"2021-12-08T21:14:33","date_gmt":"2021-12-08T15:44:33","guid":{"rendered":"https:\/\/www.hexnode.com\/blogs\/?p=15378"},"modified":"2022-07-14T11:55:09","modified_gmt":"2022-07-14T06:25:09","slug":"custom-app-configurations-for-mac-a-deep-dive","status":"publish","type":"post","link":"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/","title":{"rendered":"Custom app configurations for Mac: A deep dive"},"content":{"rendered":"<p>Companies require their employees to use corporate apps for various reasons. They tend to be either full-on business apps or enterprise versions of regular apps. But oftentimes apps don\u2019t come with an enterprise version of themselves. Even if they do, they could contain features that are against the firm&#8217;s policies. In these types of scenarios App configurations are the way to go.<\/p>\n<p>App configurations are the changes an organization wants to make to a particular app so, it only functions as per the company\u2019s requirement. In other words, they are just app-specific settings.<\/p>\n<p>Often the apps are managed using a configuration file. This file contains data about the settings to be changed. So simply editing this file gets the job done. But before, it\u2019s better if we are on the same page about what a configuration file is.<\/p>\n<p><center>    \t\t<!-- button style scb20be917a3efc78059cf9961ee4e54284 -->\r\n    \t\t<style>\r\n    \t\t\t.scb20be917a3efc78059cf9961ee4e54284, a.scb20be917a3efc78059cf9961ee4e54284{\r\n    \t\t\t\tcolor: #fff;\r\n    \t\t\t\tbackground-color: #00868B;\r\n    \t\t\t}\r\n    \t\t\t.scb20be917a3efc78059cf9961ee4e54284:hover, a.scb20be917a3efc78059cf9961ee4e54284:hover{\r\n    \t\t\t\t    \t\t\t\tbackground-color: #32b8bd;\r\n    \t\t\t}\r\n    \t\t<\/style>\r\n    \t\t<a href=\"https:\/\/www.hexnode.com\/uem\/platform\/macos-device-management\/?utm_source=hexnode_blog_custom_app_configurations_for_mac&amp;utm_medium=referral&amp;utm_campaign=button\" class=\"ht-shortcodes-button scb20be917a3efc78059cf9961ee4e54284  hn-cta__blogs--inline-button \" id=\"\" style=\"\" target=\"_blank\">\r\n    \t\tManage Mac devices effectively with Hexnode<\/a>\r\n    \t\t<\/center><\/p>\n<h2>Configuration file\/preference file<\/h2>\n<p>You probably have faced issues with certain apps that randomly start acting weird. If you had been using Macs for a bit, restarting those apps or the PC itself are the most common ways to deal with this. Needless to say, it does work most of the time but if the problem was persistent and if you were savvy enough, you might\u2019ve come across a solution to delete a certain file from app modules, which promises to solve all issues. This file is an \u201cinformation property list\u201d or info.plist file. Must for every app as it helps the systems to read and function according to its contained values. They are also called Preference files. You could usually find them among files that come with<\/p>\n    \t\t<div class=\"hts-messages hts-messages--success    \"   >\r\n    \t\t\t    \t\t\t    \t\t\t\t<p>\r\n    \t\t\t\t\tDeleting preference files is one of the ideas that has been popular. It is effective incases when the plist file is corrupted or a bug in configuring the app is causing the issue. When you delete this file, all the previous made configurations will reset essentially turning it into a new app like it was installed for the first time. This action solves the issue but you end up losing all the configurations made to the app before. So, be mindful before you perform this risky maneuver.    \t\t\t\t<\/p>\r\n    \t\t\t    \t\t\t\r\n    \t\t<\/div><!-- \/.ht-shortcodes-messages -->\r\n    \t\t\n<h2>How to use these configuration files?<\/h2>\n<p>These files contain the data in the form of key-value pairs. A key has been assigned by the developer for every function the app performs. So, editing them changes the functionality of the app.<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"XPyPbI4pHW\"><p><a href=\"https:\/\/www.hexnode.com\/blogs\/making-your-apps-enterprise-ready-with-custom-app-configurations\/\">Making your apps enterprise ready with custom app configurations<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Making your apps enterprise ready with custom app configurations&#8221; &#8212; Hexnode Blogs\" src=\"https:\/\/www.hexnode.com\/blogs\/making-your-apps-enterprise-ready-with-custom-app-configurations\/embed\/#?secret=bv2mtfTTmY#?secret=XPyPbI4pHW\" data-secret=\"XPyPbI4pHW\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>To make it clearer, let\u2019s say you want to disable the camera for some app you want to manage. At first, you need to find the appropriate key associated with it, maybe something like \u2018CameraConfig\u2019, and add a value to such as \u2018disable\u2019 (This is just a hypothetical example. The actual key and their values vary with each app depending on how the developer intended it). This way you can achieve the desired configurations.<\/p>\n    \t\t<div class=\"hts-messages hts-messages--alert  hts-messages--withtitle  \"   >\r\n    \t\t\t<span class=\"hts-messages__title\">Plist formats and edits<\/span>    \t\t\t    \t\t\t\t<p>\r\n    \t\t\t\t\t<\/p>\n<p>There are only two fully supported formats for plists in macOS, binary and XML. It\u2019s hard to read binary hence not possible to edit them manually. On the other hand, XML formatted plists are fairly easy to edit. Unlike other program files, they are mostly comprised of simple strings which makes them a tad bit readable.<\/p>\n<p><center><a href=\"https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2021\/12\/Screenshot-2021-12-10-at-10.49.53-AM.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2021\/12\/Screenshot-2021-12-10-at-10.49.53-AM.png\" alt=\"Plist in binary format\" width=\"682\" height=\"425\" \/><\/a><\/center><center><em>Plist in binary format<\/em><\/center>&nbsp;<\/p>\n<p><center><a href=\"https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2021\/12\/Screenshot-2021-12-08-at-8.35.09-PM.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2021\/12\/Screenshot-2021-12-08-at-8.35.09-PM.png\" alt=\"Plist file in XML format\" width=\"682\" height=\"425\" \/><\/a><\/center><center><em>XML formatted plist file<\/em><\/center>&nbsp;<\/p>\n<p>Opening plists in XCode or Visual Studio or some other editor that supports plists, improves readability even further. All the information is put into 3 columns, The key, Value type (whether it&#8217;s Boolean, String, Array, etc.), and Value. You just have to change these three attributes for the necessary configuration. So, it is better to use editors with plist support.<\/p>\n<p><center><a href=\"https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2021\/12\/Image-08-12-21-at-10.02-PM.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"\" src=\"https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2021\/12\/Image-08-12-21-at-10.02-PM.jpg\" alt=\"Plist opened in Xcode\u201d width=\" height=\"425\" \/><\/a><\/center><center><em>Plist opened in Xcode<\/em><\/center>    \t\t\t\t<\/p>\r\n    \t\t\t    \t\t\t\r\n    \t\t<\/div><!-- \/.ht-shortcodes-messages -->\r\n    \t\t\n<p>After editing the configuration file, UEMs like Hexnode help in pushing it with the app to all the managed Macs. Sounds simple right? Not yet. You also need to know the exact keys, their definitions, and the values they take. This varies with each app. So, for every single app you want to configure, you either have to contact the app developer or refer to the specific documentation. Which is probably the hardest part.<\/p>\n<h2>Choose what\u2019s perfect for you<\/h2>\n<p>If configuring each app feels like a lot of work, you can always choose to configure the whole device. UEMs like Hexnode is more than capable of handling the device configurations. Yet if you choose to, you could go a bit further and make custom configurations. \u201cWhy would my company need to make custom configurations?\u201d, you may ask. It\u2019s because every firm is different in its own way. From their operations to their values and strategies.<\/p>\n<p>Therefore, it\u2019s not possible to find a UEM solution that fits every organization like a glove. Instead, you need to search for a UEM that not only has all the features available for the quick device configuration but also supports making custom configurations. Whether it be for your apps or your whole device, Hexnode allows you to push your own custom configuration files and tailor apps exactly to your needs.<\/p>\n<h2>Why would you need this?<\/h2>\n<p>For security reasons and to protect the data of your organization you have to impose some restrictions on the devices and their apps, avoiding which might negatively affect the firm. Configuring apps is a step towards securing your organization\u2019s data.<\/p>\n<p><center><a href=\"https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2021\/12\/internet-data-security-protection-concept-scaled.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2021\/12\/internet-data-security-protection-concept-scaled.jpg\" alt=\"Custom app configurations in securing managed macs\" width=\"682\" height=\"425\" \/><\/a><\/center><center><em>Secure managed Macs with custom configurations<\/em><\/center>&nbsp;<\/p>\n<p>Not just from the security standpoint, with app configurations you can pre-emptively configure applications and make sure its work-ready before pushing them to the respective devices. Since the configurations are all can be done on air, you can configure your apps from anywhere as long as you have an internet connection. It is especially helpful when the employees are working remotely.<\/p>\n<p>We\u2019ve established that App Configurations helps in making the policies more custom-made to fit your organization. It also helps in pushing configured apps to all the devices in the organization easily and simultaneously making the task way less tedious. Restrictions, managing permissions, configuring user data for initial setup, and changing the functionality are the common uses for this.<\/p>\n<h3>Some use cases<\/h3>\n<p>For instance, in Outlook you could<\/p>\n<ul>\n<li>Specify which Microsoft 365 mailbox to be added on first launch, whether it be the same as used for office activation in the system or a different one. Helps for the easy setup.\n<ul>\n<li>OfficeAutoSignIn<\/li>\n<li>DefaultEmailAddressOrDomain<\/li>\n<\/ul>\n<\/li>\n<li>Specify only certain domains to be added to Outlook. So, you can restrict addition of accounts that are not recognized by the firm.\n<ul>\n<li>AllowedEmailDomains<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Examples<\/h3>\n<p>Let\u2019s say you want to configure Chrome Enterprise for your organization. There are many configurations to do.<\/p>\n<h4>Blocking pop-ups<\/h4>\n<p>This policy lets you block the popups. You need to mention the sites you want popups to be blocked. This key takes in a list of strings as values.<\/p>\n<div class=\"copy-code-download\">\n<pre class=\"theme:github font:monospace font-size:16 line-height:28 lang:default decode:true\" title=\"Chrome enterprise XML code for blocking popups\">&lt;key&gt;PopupsBlockedForUrls&lt;\/key&gt;   \r\n&lt;array&gt;   \r\n&lt;string&gt;https:\/\/www.example.com&lt;\/string&gt;   \r\n&lt;string&gt;[*.]example.edu&lt;\/string&gt;   \r\n&lt;\/array&gt; \r\n<\/pre>\n<\/div>\n<h4>Screen capture<\/h4>\n<p>It must be obvious that this is used to allow or deny screen capture. Values of Boolean type are necessary. When the value is set to false it won\u2019t allow the screen capture.<\/p>\n<div class=\"copy-code-download\">\n<pre class=\"theme:github font:monospace font-size:16 line-height:28 toolbar:1 lang:default decode:true\" title=\"Chrome enterprise XML code for screen capture \">&lt;key&gt;ScreenCaptureAllowed&lt;\/key&gt;   \r\n&lt;false\/&gt;<\/pre>\n<\/div>\n<h4>Download directory<\/h4>\n<p>Let&#8217;s you set the default path for all the downloads. Takes in the path as string as the value.<\/p>\n<div class=\"copy-code-download\">\n<pre class=\"theme:github font:monospace font-size:16 line-height:28 toolbar:1 lang:default decode:true\" title=\"Chrome enterprise XML code for download directory\">&lt;key&gt;DownloadDirectory&lt;\/key&gt;   \r\n&lt;string&gt;\/home\/${user_name}\/Downloads&lt;\/string&gt;<\/pre>\n<\/div>\n<p>Similarly, you can block the URLs, allow or deny images, manage extensions, and so on&#8230; There are hundreds of policy keys available for <a href=\"https:\/\/chromeenterprise.google\/policies\/\" target=\"_blank\" rel=\"noopener\">Chrome Enterprise<\/a>. It always helps a lot to have elaborate documentation like this.<\/p>\n<p><a href=\"https:\/\/docs.microsoft.com\/en-us\/onedrive\/deploy-and-configure-on-macos\" target=\"_blank\" rel=\"noopener\">OneDrive for Mac <\/a>also supports editing the property list files. You can do stuff like<\/p>\n<h4>Allow or block tenant list<\/h4>\n<p>To prevent users from sharing information to other organizations by not disallowing the logging in with other organizations\u2019 IDs.<\/p>\n<div class=\"copy-code-download\">\n<pre class=\"theme:github font:monospace font-size:16 line-height:28 toolbar:1 lang:default decode:true\" title=\"OneDrive XML code for whitelisting tenants\">&lt;key&gt;AllowTenantList&lt;\/key&gt;  \r\n&lt;dict&gt; \r\n&lt;key&gt;TenantId1&lt;\/key&gt;  \r\n&lt;true\/&gt;  \r\n&lt;key&gt;TenantId2&lt;\/key&gt;  \r\n&lt;true\/&gt;  \r\n&lt;\/dict&gt;<\/pre>\n<\/div>\n<div class=\"copy-code-download\">\n<pre class=\"theme:github font:monospace font-size:16 line-height:28 toolbar:1 lang:default decode:true\" title=\"OneDrive XML code for blacklisting tenants\">&lt;key&gt;BlockTenantList&lt;\/key&gt;  \r\n&lt;dict&gt;  \r\n&lt;key&gt;TenantId1&lt;\/key&gt;  \r\n&lt;true\/&gt;  \r\n&lt;key&gt;TenantId2&lt;\/key&gt;  \r\n&lt;true\/&gt;  \r\n&lt;\/dict&gt;<\/pre>\n<\/div>\n<p>You can also manage stuff like Bandwith with \u2018UploadBandwidthLimited\u2019 and \u2018DownloadBandwidthLimited\u2019, Folder location \u2018DefaultFolderLocation\u2019 etc.<\/p>\n<p>These are a few examples and we barely scratched the surface. You can imagine how granular the control can be with these policies. This allows the organization to configure apps exactly to their requirement.<\/p>\n<h2>Summary<\/h2>\n<p>App configurations allow you to configure the app to your liking by editing the app\u2019s preference file. Changing the keys and values help configure the app you need. In general, you get to enable or disable the permissions, restrict the app and change its functionality. But do keep in mind that these configurations are possible only if the app supports them.<\/p>\n<section id='resource-single'>\n                    <div class='resource-box'>\n                        <div class='resource-box__image-section'>\n                            <div class='resource-box__image-wrap'>\n                                <img decoding=\"async\" src=\"https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2022\/01\/Hexnode-Mac-management.png?format=webp\" class=\"resource-box__image\" alt=\"Hexnode Mac management\" loading=\"lazy\" srcset=\"https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2022\/01\/Hexnode-Mac-management.png?format=webp 1414w, https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2022\/01\/Hexnode-Mac-management-212x300.png?format=webp 212w, https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2022\/01\/Hexnode-Mac-management-724x1024.png?format=webp 724w, https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2022\/01\/Hexnode-Mac-management-768x1086.png?format=webp 768w, https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2022\/01\/Hexnode-Mac-management-1086x1536.png?format=webp 1086w, https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2022\/01\/Hexnode-Mac-management-71x100.png?format=webp 71w\" sizes=\"auto, (max-width: 1414px) 100vw, 1414px\" title=\"Hexnode Mac management\" \/>\n                            <\/div>\n                        <\/div>\n                        <div class='resource-box__content-section'>\n                            <h5 class='resource-box__content-subheading'>\n                            Featured Resource\n                            <\/h5>\n                            <h4 class='resource-box__content-heading'>\n                            Hexnode Mac Management\n                            <\/h4>\n                            <p class='resource-box__contents'>\n                            Managing the large fleet of enterprise Mac devices can be tedious without an effective device management solution. Download the datasheet to learn more about Hexnode\u2019s Mac-specific management strategies.\n                            <\/p>\n                            <a class='resource-box__content-link hn-cta__blogs--resource-box' href='https:\/\/www.hexnode.com\/resources\/register\/?resource=MTQ5NQ==&datacount=1&utm_source=hexnode_blog_custom_app_configurations_for_mac&utm_medium=referral&utm_campaign=resource_box'>\n                            Download Datasheet\n                            <svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='20' height='20' viewBox='0 0 20 20'>\n                            <g id='arrow' transform='translate(-309 -191)' opacity='0'>\n                                <rect id='base' width='20' height='20' transform='translate(309 191)' fill='none'\/>\n                                <path id='arrow-2' data-name='arrow' d='M13.093.5,6.8,6.8.5.5' transform='translate(315 207.594) rotate(-90)' fill='none' stroke='#0549d1' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.2'\/>\n                            <\/g>\n                            <\/svg>\n\n                            <\/a>\n                        <\/div>\n                    <\/div>\n                <\/section>\n","protected":false},"excerpt":{"rendered":"<p>Companies require their employees to use corporate apps for various reasons. They tend to be&#8230;<\/p>\n","protected":false},"author":43,"featured_media":15429,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[263],"tags":[855,886],"class_list":["post-15378","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-deep-dives","tag-mac-management","tag-app-management"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Custom app configurations for Mac: A deep dive<\/title>\n<meta name=\"description\" content=\"Custom app configurations for Mac are made by editing a property list file. This file holds the info that the system uses which determines how the app functions.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Custom app configurations for Mac: A deep dive\" \/>\n<meta property=\"og:description\" content=\"Custom app configurations for Mac are made by editing a property list file. This file holds the info that the system uses which determines how the app functions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/\" \/>\n<meta property=\"og:site_name\" content=\"Hexnode Blogs\" \/>\n<meta property=\"article:published_time\" content=\"2021-12-08T15:44:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-07-14T06:25:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2021\/12\/Mac-app-configuration-cover.png?format=webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"688\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Arthur Harrison\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Arthur Harrison\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/\",\"url\":\"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/\",\"name\":\"Custom app configurations for Mac: A deep dive\",\"isPartOf\":{\"@id\":\"https:\/\/www.hexnode.com\/blogs\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2021\/12\/Mac-app-configuration-cover.png?format=webp\",\"datePublished\":\"2021-12-08T15:44:33+00:00\",\"dateModified\":\"2022-07-14T06:25:09+00:00\",\"author\":{\"@id\":\"https:\/\/www.hexnode.com\/blogs\/#\/schema\/person\/f1d3075f402929967427074e3e3b8b5c\"},\"description\":\"Custom app configurations for Mac are made by editing a property list file. This file holds the info that the system uses which determines how the app functions.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/#primaryimage\",\"url\":\"https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2021\/12\/Mac-app-configuration-cover.png?format=webp\",\"contentUrl\":\"https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2021\/12\/Mac-app-configuration-cover.png?format=webp\",\"width\":1280,\"height\":688,\"caption\":\"Custom app configurations for mac\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hexnode.com\/blogs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Custom app configurations for Mac: A deep dive\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hexnode.com\/blogs\/#website\",\"url\":\"https:\/\/www.hexnode.com\/blogs\/\",\"name\":\"Hexnode Blogs\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hexnode.com\/blogs\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hexnode.com\/blogs\/#\/schema\/person\/f1d3075f402929967427074e3e3b8b5c\",\"name\":\"Arthur Harrison\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hexnode.com\/blogs\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c4ea8504180d0c90f8c5f86e7b5dc78488198ac6278ef789b0e926718c02b9d1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c4ea8504180d0c90f8c5f86e7b5dc78488198ac6278ef789b0e926718c02b9d1?s=96&d=mm&r=g\",\"caption\":\"Arthur Harrison\"},\"description\":\"Your friendly neighbourhood blogger\",\"url\":\"https:\/\/www.hexnode.com\/blogs\/author\/arthur-harrison\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Custom app configurations for Mac: A deep dive","description":"Custom app configurations for Mac are made by editing a property list file. This file holds the info that the system uses which determines how the app functions.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/","og_locale":"en_US","og_type":"article","og_title":"Custom app configurations for Mac: A deep dive","og_description":"Custom app configurations for Mac are made by editing a property list file. This file holds the info that the system uses which determines how the app functions.","og_url":"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/","og_site_name":"Hexnode Blogs","article_published_time":"2021-12-08T15:44:33+00:00","article_modified_time":"2022-07-14T06:25:09+00:00","og_image":[{"width":1280,"height":688,"url":"https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2021\/12\/Mac-app-configuration-cover.png?format=webp","type":"image\/png"}],"author":"Arthur Harrison","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Arthur Harrison","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/","url":"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/","name":"Custom app configurations for Mac: A deep dive","isPartOf":{"@id":"https:\/\/www.hexnode.com\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/#primaryimage"},"image":{"@id":"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2021\/12\/Mac-app-configuration-cover.png?format=webp","datePublished":"2021-12-08T15:44:33+00:00","dateModified":"2022-07-14T06:25:09+00:00","author":{"@id":"https:\/\/www.hexnode.com\/blogs\/#\/schema\/person\/f1d3075f402929967427074e3e3b8b5c"},"description":"Custom app configurations for Mac are made by editing a property list file. This file holds the info that the system uses which determines how the app functions.","breadcrumb":{"@id":"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/#primaryimage","url":"https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2021\/12\/Mac-app-configuration-cover.png?format=webp","contentUrl":"https:\/\/cdn.hexnode.com\/blogs\/wp-content\/uploads\/2021\/12\/Mac-app-configuration-cover.png?format=webp","width":1280,"height":688,"caption":"Custom app configurations for mac"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hexnode.com\/blogs\/custom-app-configurations-for-mac-a-deep-dive\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hexnode.com\/blogs\/"},{"@type":"ListItem","position":2,"name":"Custom app configurations for Mac: A deep dive"}]},{"@type":"WebSite","@id":"https:\/\/www.hexnode.com\/blogs\/#website","url":"https:\/\/www.hexnode.com\/blogs\/","name":"Hexnode Blogs","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hexnode.com\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.hexnode.com\/blogs\/#\/schema\/person\/f1d3075f402929967427074e3e3b8b5c","name":"Arthur Harrison","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hexnode.com\/blogs\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c4ea8504180d0c90f8c5f86e7b5dc78488198ac6278ef789b0e926718c02b9d1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c4ea8504180d0c90f8c5f86e7b5dc78488198ac6278ef789b0e926718c02b9d1?s=96&d=mm&r=g","caption":"Arthur Harrison"},"description":"Your friendly neighbourhood blogger","url":"https:\/\/www.hexnode.com\/blogs\/author\/arthur-harrison\/"}]}},"_links":{"self":[{"href":"https:\/\/www.hexnode.com\/blogs\/wp-json\/wp\/v2\/posts\/15378","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hexnode.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hexnode.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hexnode.com\/blogs\/wp-json\/wp\/v2\/users\/43"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hexnode.com\/blogs\/wp-json\/wp\/v2\/comments?post=15378"}],"version-history":[{"count":29,"href":"https:\/\/www.hexnode.com\/blogs\/wp-json\/wp\/v2\/posts\/15378\/revisions"}],"predecessor-version":[{"id":20407,"href":"https:\/\/www.hexnode.com\/blogs\/wp-json\/wp\/v2\/posts\/15378\/revisions\/20407"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hexnode.com\/blogs\/wp-json\/wp\/v2\/media\/15429"}],"wp:attachment":[{"href":"https:\/\/www.hexnode.com\/blogs\/wp-json\/wp\/v2\/media?parent=15378"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hexnode.com\/blogs\/wp-json\/wp\/v2\/categories?post=15378"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hexnode.com\/blogs\/wp-json\/wp\/v2\/tags?post=15378"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}