{"id":3712,"date":"2021-06-16T19:31:22","date_gmt":"2021-06-16T19:31:22","guid":{"rendered":"https:\/\/ionicframework.com\/blog\/?p=3712"},"modified":"2021-06-18T21:39:35","modified_gmt":"2021-06-18T21:39:35","slug":"how-to-change-your-ios-app-icon-with-capacitor","status":"publish","type":"post","link":"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor","title":{"rendered":"How to change your iOS App icon with Capacitor"},"content":{"rendered":"<p>This is a guest post from Simon Grimm, Ionic Insider and educator at <a href=\"https:\/\/ionicacademy.com\/\">the Ionic Academy<\/a>. Simon also created the <a href=\"https:\/\/devdactic.com\/practical-ionic\/\">Practical Ionic<\/a> book, a guide to building real world Ionic applications with Capacitor and Firebase.<\/p>\n<p>You have heard that <a href=\"https:\/\/capacitorjs.com\/\">Capacitor<\/a> makes it easy to access native device functionality with a simplified API \u2014 but does it really work for core native functionalities like changing the app icon on your home screen?<\/p>\n<p>In this tutorial we will implement the functionality to switch your app icon on iOS using one of the <a href=\"https:\/\/github.com\/capacitor-community\">Capacitor community plugins<\/a>, created by <a href=\"https:\/\/twitter.com\/johnborges\">John Borges<\/a>, a member of our community!<\/p>\n<p><!--more--><\/p>\n<p><img decoding=\"async\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/capacitor-change-icon-1.gif\" alt=\"Capacitor change icon example\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"lazyload\" style=\"--smush-placeholder-width: 374px; --smush-placeholder-aspect-ratio: 374\/726;\" \/><noscript><img decoding=\"async\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/capacitor-change-icon-1.gif\" alt=\"Capacitor change icon example\" \/><\/noscript><\/p>\n<p>To change your icon you need to apply changes to your native iOS project, which was always challenging with Cordova and required some magic to make it work (<em>free frustration included<\/em>).<\/p>\n<p>However, since Capacitor treats <strong>native projects as part of your project&#8217;s code<\/strong> which is also checked in to source control, you can easily apply any kind of changes to your native projects to enable native functionalities.<\/p>\n<h2>Setting up an Ionic app with Capacitor<\/h2>\n<p>If you haven\u2019t used Ionic before, now is the time to set up your environment and <a href=\"https:\/\/ionicframework.com\/docs\/intro\/cli\">install the Ionic CLI<\/a>.<\/p>\n<p>Now we begin by creating a blank new Ionic application with Capacitor enabled. Once the app is ready we can add our iOS platform and then install the <a href=\"https:\/\/github.com\/capacitor-community\/app-icon\">App icon plugin<\/a>:<\/p>\n<pre><code class=\"language-bash\">ionic start capacitorIcon blank --type=angular --capacitor\ncd .\/capacitorIcon\nionic capacitor add ios\n\nnpm install @capacitor-community\/app-icon\n<\/code><\/pre>\n<p>Since we need some icons to test this functionality, go ahead and create icons with your favourite image editing tool (I usually use <a href=\"https:\/\/www.canva.com\/\">Canva<\/a> to easily create images) and use the <strong>size 1024&#215;1024<\/strong>.<\/p>\n<p>You should have at least two because one of them will be the default icon of our app.<\/p>\n<p>To generate the icons (<em>and optional splashscreens<\/em>) for your Capacitor application, you can now use the <a href=\"https:\/\/capacitorjs.com\/docs\/guides\/splash-screens-and-icons\">cordova-res<\/a> package as well. Sounds like a Cordova plugin but works fine for Capacitor!<\/p>\n<p>Now all you need to do is place one of your created icons inside a <strong>resources<\/strong> folder at the root of your Ionic app, then install the package globally if you haven\u2019t and run the according command to generate icons for iOS:<\/p>\n<pre><code class=\"language-bash\"># If not yet installed\nnpm install -g cordova-res\n\n# Create only icons within a Capacitor project\ncordova-res ios --skip-config --copy --type icon\n<\/code><\/pre>\n<p>We are not interested in creating the splash screen right now so we use the type icon. By skipping the config we tell the tool to <strong>not write to a config.xml<\/strong> which is only available in Cordova projects.<\/p>\n<h2>Adding icons to your iOS platform<\/h2>\n<p>To use alternative icons we need to let our iOS app know about them and include them in the native app bundle.<\/p>\n<p>We can achieve this by first adding a new folder inside Xcode, so go ahead and open it by running:<\/p>\n<pre><code class=\"language-bash\">npx cap open ios\n<\/code><\/pre>\n<p>Inside your project, expand the topmost <strong>App<\/strong> element, click on the app folder below it and select <strong>New Group<\/strong>. I\u2019ve named this group <strong>alternative-icons<\/strong>.<\/p>\n<p>Once you\u2019ve done this, you can simply <strong>drag your previously created icons onto that folder<\/strong> and select to copy them into it like in the image below.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"438\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/copy-icons-xcode.png\" alt=\"Add icons to Xcode\" class=\"aligncenter size-full wp-image-3716 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/copy-icons-xcode.png 640w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/copy-icons-xcode-300x205.png 300w\" data-sizes=\"auto, (max-width: 640px) 100vw, 640px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 640px; --smush-placeholder-aspect-ratio: 640\/438;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"438\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/copy-icons-xcode.png\" alt=\"Add icons to Xcode\" class=\"aligncenter size-full wp-image-3716\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/copy-icons-xcode.png 640w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/copy-icons-xcode-300x205.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/noscript><\/p>\n<p>You can use the standard 1024&#215;1024 icons here, no need to generate all the different sizes with the Cordova command again. That\u2019s only necessary for your main app icon; these alternative icons just need to be available in the <strong>highest resolution<\/strong> and iOS will handle the rest.<\/p>\n<p>Once you have your icons inside Xcode, we also need to reference them inside the <strong>Info.plist<\/strong> of your project. You can open that file either from Xcode or your preferred IDE.<\/p>\n<p>Tip: If you want to edit the file directly in Xcode, right click it and select <strong>Open as<\/strong> and then <strong>Source Code<\/strong>. Otherwise you get the row layout which is good for an overview but makes adding these keys more complicated. This view makes more sense for editing:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"398\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/xcode-edit-plist.png\" alt=\"Xcode edit plist\" class=\"aligncenter size-full wp-image-3714 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/xcode-edit-plist.png 640w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/xcode-edit-plist-300x187.png 300w\" data-sizes=\"auto, (max-width: 640px) 100vw, 640px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 640px; --smush-placeholder-aspect-ratio: 640\/398;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"398\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/xcode-edit-plist.png\" alt=\"Xcode edit plist\" class=\"aligncenter size-full wp-image-3714\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/xcode-edit-plist.png 640w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/xcode-edit-plist-300x187.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/noscript><\/p>\n<p>Wherever you open it, include a new block inside the dictionary that looks like this:<\/p>\n<pre><code>&lt;dict&gt;\n        &lt;key&gt;CFBundleAlternateIcons&lt;\/key&gt;\n        &lt;dict&gt;\n            &lt;!-- name which will be used for reference --&gt;\n            &lt;key&gt;light&lt;\/key&gt;\n            &lt;dict&gt;\n                &lt;key&gt;UIPrerenderedIcon&lt;\/key&gt;\n                &lt;true\/&gt;\n                &lt;key&gt;CFBundleIconFiles&lt;\/key&gt;\n                &lt;array&gt;\n                    &lt;!-- actual file name of the icon --&gt;\n                    &lt;string&gt;light&lt;\/string&gt;\n                &lt;\/array&gt;\n            &lt;\/dict&gt;\n            &lt;key&gt;wild&lt;\/key&gt;\n            &lt;dict&gt;\n                &lt;key&gt;UIPrerenderedIcon&lt;\/key&gt;\n                &lt;true\/&gt;\n                &lt;key&gt;CFBundleIconFiles&lt;\/key&gt;\n                &lt;array&gt;\n                    &lt;string&gt;wild&lt;\/string&gt;\n                &lt;\/array&gt;\n            &lt;\/dict&gt;\n        &lt;\/dict&gt;\n&lt;\/dict&gt;\n<\/code><\/pre>\n<p>There are two blocks for alternative icons: each has a <strong>key<\/strong> by which you will later select the icon, and an array with the actual <strong>name of the icon file<\/strong>.<\/p>\n<p>In my case I added two icons called <strong>light.png<\/strong> and <strong>wild.png<\/strong> to my Xcode project previously, and I\u2019m now able to access them under those keys within the code of our app.<\/p>\n<h2>Using the Capacitor plugin<\/h2>\n<p>The setup is done and we can focus back on our Ionic app. In fact, there\u2019s not much to do in here besides creating a little UI to display our icons and change them through the plugin.<\/p>\n<p>Let\u2019s start with the TS code. We can perform a few different functions on our plugin in order to show what\u2019s going on:<br \/>\n* <code>getName()<\/code> will return the name of the selected alternative icon or null<br \/>\n* <code>isSupported()<\/code> can be called to check if the icon switching functionality is available on your platform<br \/>\n* <code>change()<\/code> is used to set an alternative icon by its identifier (the one from the plist!)<br \/>\n* <code>reset()<\/code> will reset our icon to the default initial app icon<\/p>\n<p>Inside our <strong>src\/app\/home\/home.page.ts<\/strong> we can now call those functions to keep track of the currently selected icon, and to change the icon to something from our array of icons like this:<\/p>\n<pre><code class=\"language-ts\">import { Component } from &#039;@angular\/core&#039;;\nimport { AppIcon } from &#039;@capacitor-community\/app-icon&#039;;\n\n@Component({\n  selector: &#039;app-home&#039;,\n  templateUrl: &#039;home.page.html&#039;,\n  styleUrls: [&#039;home.page.scss&#039;],\n})\nexport class HomePage {\n  icons = [\n    &#039;wild&#039;, &#039;light&#039;\n  ];\n  selected = &#039;&#039;;\n\n  constructor() {\n    this.loadCurrentIcon();\n  }\n\n  async loadCurrentIcon() {\n    let currentIcon = await AppIcon.getName();\n    this.selected = currentIcon.value;\n  }\n\n  async setIcon(name: string) {\n    const isSupported = await AppIcon.isSupported();\n\n    if (isSupported.value) {\n      await AppIcon.change({name: name, suppressNotification: false});\n      this.loadCurrentIcon();\n    }\n  }\n\n  async reset() {\n    await AppIcon.reset({suppressNotification: true});\n    this.loadCurrentIcon();\n  }\n}\n<\/code><\/pre>\n<p>To display a preview of the icons I also added them to the <strong>assets\/icon<\/strong> folder of our Ionic app.<\/p>\n<p>Now we can iterate our small array, display a thumbnail for each alternative icon, and call the <code>setIcon()<\/code> function to change to that icon.<\/p>\n<p>Go ahead and change the <strong>src\/app\/home\/home.page.html<\/strong> to this now:<\/p>\n<pre><code class=\"language-html\">&lt;ion-header&gt;\n  &lt;ion-toolbar color=&quot;primary&quot;&gt;\n    &lt;ion-title&gt;\n      Capacitor Icons\n    &lt;\/ion-title&gt;\n  &lt;\/ion-toolbar&gt;\n&lt;\/ion-header&gt;\n\n&lt;ion-content class=&quot;ion-padding-top&quot;&gt;\n  &lt;ion-list&gt;\n    &lt;ion-item button *ngFor=&quot;let icon of icons&quot; (click)=&quot;setIcon(icon)&quot; detail=&quot;false&quot;&gt;\n      &lt;ion-thumbnail slot=&quot;start&quot;&gt;\n        &lt;img [src]=&quot;&#039;.\/assets\/icon\/&#039; + icon + &#039;.png&#039;&quot;&gt;\n      &lt;\/ion-thumbnail&gt;\n      &lt;ion-label&gt;\n        Select {{ icon }} icon!\n      &lt;\/ion-label&gt;\n      &lt;ion-icon name=&quot;checkmark&quot; slot=&quot;end&quot; *ngIf=&quot;selected == icon&quot;&gt;&lt;\/ion-icon&gt;\n    &lt;\/ion-item&gt;\n  &lt;\/ion-list&gt;\n  &lt;ion-button expand=&quot;full&quot; (click)=&quot;reset()&quot; class=&quot;ion-margin-top&quot;&gt;Reset to original icon&lt;\/ion-button&gt;\n&lt;\/ion-content&gt;\n<\/code><\/pre>\n<p>We can even display which icon is selected since we are able to get the name of the active icon from code!<\/p>\n<p>Now deploy the app to your device by using the <strong>new Capacitor run command<\/strong> or use the live reload command to quickly change things on the fly:<\/p>\n<pre><code class=\"language-bash\"># New run command\nnpx cap run ios\n\n# or use live reload\nionic cap run ios --livereload --external --source-map=false\n<\/code><\/pre>\n<p><strong>Important<\/strong>: Make sure that you select your team inside Xcode from the <strong>Signing &amp; Capabilities<\/strong> tab to make both of these commands work. Deploying an app to a real device requires signing and an active iOS developer program membership.<\/p>\n<p>Now go ahead and switch icons as you wish and find the perfect icons for your users!<\/p>\n<h2>Conclusion<\/h2>\n<p>Even the most native piece of functionality is possible to implement given the way Capacitor treats native projects.<\/p>\n<p>You don\u2019t need to rely on copy hooks or any magic to make things like dynamically changing your app icon work. All you need is a good plugin from the Capacitor community and some changes inside the native platforms of your Capacitor project.<\/p>\n<p><em>And what if there\u2019s no plugin for my needs?<\/em><\/p>\n<p>Well, <a href=\"https:\/\/devdactic.com\/build-capacitor-plugin\/\">creating your own Capacitor plugin<\/a> is really easy these days!<\/p>\n<p>PS: I\u2019m also running a full online school for everyone learning Ionic with 60+ video courses, templates and a supportive community &#8211; go <a href=\"https:\/\/ionicacademy.com\/\">check out the Ionic Academy<\/a> and get access to a ton of learning material to boost your Ionic and Capacitor development skills.<\/p>\n<p>PPS: And don\u2019t forget to <a href=\"https:\/\/www.youtube.com\/user\/saimon1924\">subscribe to my YouTube channel<\/a> for fresh Ionic tutorials coming every week!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is a guest post from Simon Grimm, Ionic Insider and educator at the Ionic Academy. Simon also created the Practical Ionic book, a guide to building real world Ionic applications with Capacitor and Firebase. You have heard that Capacitor makes it easy to access native device functionality with a simplified API \u2014 but does [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":3713,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"publish_to_discourse":"0","publish_post_category":"26","wpdc_auto_publish_overridden":"","wpdc_topic_tags":"","wpdc_pin_topic":"","wpdc_pin_until":"","discourse_post_id":"508430","discourse_permalink":"https:\/\/forum.ionicframework.com\/t\/how-to-change-your-ios-app-icon-with-capacitor\/211181","wpdc_publishing_response":"","wpdc_publishing_error":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[124],"tags":[214,151],"class_list":["post-3712","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-app-icon","tag-capacitor"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.0 (Yoast SEO v23.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to change your iOS App icon with Capacitor - Ionic Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to change your iOS App icon with Capacitor\" \/>\n<meta property=\"og:description\" content=\"This is a guest post from Simon Grimm, Ionic Insider and educator at the Ionic Academy. Simon also created the Practical Ionic book, a guide to building real world Ionic applications with Capacitor and Firebase. You have heard that Capacitor makes it easy to access native device functionality with a simplified API \u2014 but does [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor\" \/>\n<meta property=\"og:site_name\" content=\"Ionic Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-16T19:31:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-18T21:39:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/rami-al-zayat-w33-zg-dNL4-unsplash-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1707\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Simon Grimm\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@schlimmson\" \/>\n<meta name=\"twitter:site\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Simon Grimm\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor#article\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor\"},\"author\":{\"name\":\"Simon Grimm\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/24d44b251756bd6488dcb741eec0bef6\"},\"headline\":\"How to change your iOS App icon with Capacitor\",\"datePublished\":\"2021-06-16T19:31:22+00:00\",\"dateModified\":\"2021-06-18T21:39:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor\"},\"wordCount\":1172,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/rami-al-zayat-w33-zg-dNL4-unsplash-scaled.jpg\",\"keywords\":[\"App Icon\",\"Capacitor\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor\",\"url\":\"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor\",\"name\":\"How to change your iOS App icon with Capacitor - Ionic Blog\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/rami-al-zayat-w33-zg-dNL4-unsplash-scaled.jpg\",\"datePublished\":\"2021-06-16T19:31:22+00:00\",\"dateModified\":\"2021-06-18T21:39:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor#primaryimage\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/rami-al-zayat-w33-zg-dNL4-unsplash-scaled.jpg\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/rami-al-zayat-w33-zg-dNL4-unsplash-scaled.jpg\",\"width\":2560,\"height\":1707},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ionic.io\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to change your iOS App icon with Capacitor\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ionic.io\/blog\/#website\",\"url\":\"https:\/\/ionic.io\/blog\/\",\"name\":\"ionic.io\/blog\",\"description\":\"Build amazing native and progressive web apps with the web\",\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/ionic.io\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/ionic.io\/blog\/#organization\",\"name\":\"Ionic\",\"url\":\"https:\/\/ionic.io\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png\",\"width\":1920,\"height\":854,\"caption\":\"Ionic\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/ionicframework\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/24d44b251756bd6488dcb741eec0bef6\",\"name\":\"Simon Grimm\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/08\/simon-150x150.jpg\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/08\/simon-150x150.jpg\",\"caption\":\"Simon Grimm\"},\"sameAs\":[\"https:\/\/x.com\/schlimmson\"],\"url\":\"https:\/\/ionic.io\/blog\/author\/schlimmson\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to change your iOS App icon with Capacitor - Ionic Blog","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:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor","og_locale":"en_US","og_type":"article","og_title":"How to change your iOS App icon with Capacitor","og_description":"This is a guest post from Simon Grimm, Ionic Insider and educator at the Ionic Academy. Simon also created the Practical Ionic book, a guide to building real world Ionic applications with Capacitor and Firebase. You have heard that Capacitor makes it easy to access native device functionality with a simplified API \u2014 but does [&hellip;]","og_url":"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor","og_site_name":"Ionic Blog","article_published_time":"2021-06-16T19:31:22+00:00","article_modified_time":"2021-06-18T21:39:35+00:00","og_image":[{"width":2560,"height":1707,"url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/rami-al-zayat-w33-zg-dNL4-unsplash-scaled.jpg","type":"image\/jpeg"}],"author":"Simon Grimm","twitter_card":"summary_large_image","twitter_creator":"@schlimmson","twitter_site":"@ionicframework","twitter_misc":{"Written by":"Simon Grimm","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor#article","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor"},"author":{"name":"Simon Grimm","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/24d44b251756bd6488dcb741eec0bef6"},"headline":"How to change your iOS App icon with Capacitor","datePublished":"2021-06-16T19:31:22+00:00","dateModified":"2021-06-18T21:39:35+00:00","mainEntityOfPage":{"@id":"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor"},"wordCount":1172,"commentCount":0,"publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"image":{"@id":"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/rami-al-zayat-w33-zg-dNL4-unsplash-scaled.jpg","keywords":["App Icon","Capacitor"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor","url":"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor","name":"How to change your iOS App icon with Capacitor - Ionic Blog","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor#primaryimage"},"image":{"@id":"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/rami-al-zayat-w33-zg-dNL4-unsplash-scaled.jpg","datePublished":"2021-06-16T19:31:22+00:00","dateModified":"2021-06-18T21:39:35+00:00","breadcrumb":{"@id":"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor#primaryimage","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/rami-al-zayat-w33-zg-dNL4-unsplash-scaled.jpg","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/rami-al-zayat-w33-zg-dNL4-unsplash-scaled.jpg","width":2560,"height":1707},{"@type":"BreadcrumbList","@id":"https:\/\/ionic.io\/blog\/how-to-change-your-ios-app-icon-with-capacitor#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ionic.io\/blog"},{"@type":"ListItem","position":2,"name":"How to change your iOS App icon with Capacitor"}]},{"@type":"WebSite","@id":"https:\/\/ionic.io\/blog\/#website","url":"https:\/\/ionic.io\/blog\/","name":"ionic.io\/blog","description":"Build amazing native and progressive web apps with the web","publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ionic.io\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ionic.io\/blog\/#organization","name":"Ionic","url":"https:\/\/ionic.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png","width":1920,"height":854,"caption":"Ionic"},"image":{"@id":"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/ionicframework"]},{"@type":"Person","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/24d44b251756bd6488dcb741eec0bef6","name":"Simon Grimm","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/08\/simon-150x150.jpg","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/08\/simon-150x150.jpg","caption":"Simon Grimm"},"sameAs":["https:\/\/x.com\/schlimmson"],"url":"https:\/\/ionic.io\/blog\/author\/schlimmson"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/06\/rami-al-zayat-w33-zg-dNL4-unsplash-scaled.jpg","_links":{"self":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/3712","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/comments?post=3712"}],"version-history":[{"count":0,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/3712\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media\/3713"}],"wp:attachment":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media?parent=3712"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/categories?post=3712"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/tags?post=3712"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}