{"id":895,"date":"2016-03-18T18:28:49","date_gmt":"2016-03-18T18:28:49","guid":{"rendered":"https:\/\/ionic.io\/blog\/?p=895"},"modified":"2016-03-30T16:29:26","modified_gmt":"2016-03-30T16:29:26","slug":"pluginz-be-buggin","status":"publish","type":"post","link":"https:\/\/ionic.io\/blog\/pluginz-be-buggin","title":{"rendered":"Pluginz Be Buggin&#8217;"},"content":{"rendered":"<p>Hello, Ionites! You may have noticed, if you tried to submit your app to the iOS App Store in the last week, that as of today, some apps have started to be rejected for &#8220;non-public API use.&#8221; This is due to the hideKeyboardAccessoryBar method of the Ionic Keyboard plugin, which uses private APIs to remove the accessory bar to look like a native keyboard.<\/p>\n<p>But don\u2019t fret! Your app is not in any danger, and the plugin has been updated to remove the method, so all you need to do is update:<\/p>\n<pre><code class=\"bash\">ionic plugin rm ionic-plugin-keyboard    \nionic plugin add ionic-plugin-keyboard\n<\/code><\/pre>\n<p>If you haven\u2019t submitted to the App Store yet, or your app is currently under review, you still need to update!<br \/>\n<!--more--><\/p>\n<h3>Will my Ionic app already in the App Store be removed?<\/h3>\n<p>No. So far, we have zero reports of any existing Ionic apps being removed from the App Store. If your app is already happily in the App Store, there should be no reason for alarm.<\/p>\n<h3>What is the accessory bar?<\/h3>\n<p>On iOS, when you focus an input in the browser, the keyboard appears with a toolbar above it that has buttons for switching between inputs and closing the keyboard. Native apps traditionally do not show this bar.<\/p>\n<h3>What do you mean by \u201cprivate\u201d API?<\/h3>\n<p>In native apps, removing the accessory bar is common practice. To remove the accessory bar, we used a part within iOS that isn\u2019t often used and is reserved for iOS internally. But no worries; we just updated the keyboard plugin to no longer use the private API. At this time, Apple doesn\u2019t provide a way to remove the accessory bar through any public API.<\/p>\n<h3>Will you be adding the ability to remove the accessory bar again in the future?<\/h3>\n<p>Yes! We\u2019re exploring our options at the moment. Because there is no public API, there is no guarantee that any solution we come up with won\u2019t come up against this issue again! If we do add it back in, we will be clear about any risks to App Store submissions.<\/p>\n<h3>Conclusion<\/h3>\n<p>Thanks for your patience and for helping us resolve this issue so quickly! We\u2019ll keep this post up to date with any new changes or information.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello, Ionites! You may have noticed, if you tried to submit your app to the iOS App Store in the last week, that as of today, some apps have started to be rejected for &#8220;non-public API use.&#8221; This is due to the hideKeyboardAccessoryBar method of the Ionic Keyboard plugin, which uses private APIs to remove [&hellip;]<\/p>\n","protected":false},"author":16,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"publish_to_discourse":"","publish_post_category":"","wpdc_auto_publish_overridden":"","wpdc_topic_tags":"","wpdc_pin_topic":"","wpdc_pin_until":"","discourse_post_id":"","discourse_permalink":"","wpdc_publishing_response":"","wpdc_publishing_error":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[3],"class_list":["post-895","post","type-post","status-publish","format-standard","hentry","category-all","tag-ionic"],"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>Pluginz Be Buggin&#039; - 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\/pluginz-be-buggin\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pluginz Be Buggin&#039;\" \/>\n<meta property=\"og:description\" content=\"Hello, Ionites! You may have noticed, if you tried to submit your app to the iOS App Store in the last week, that as of today, some apps have started to be rejected for &#8220;non-public API use.&#8221; This is due to the hideKeyboardAccessoryBar method of the Ionic Keyboard plugin, which uses private APIs to remove [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ionic.io\/blog\/pluginz-be-buggin\" \/>\n<meta property=\"og:site_name\" content=\"Ionic Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-03-18T18:28:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-03-30T16:29:26+00:00\" \/>\n<meta name=\"author\" content=\"Tim Lancina\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:site\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tim Lancina\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ionic.io\/blog\/pluginz-be-buggin#article\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/pluginz-be-buggin\"},\"author\":{\"name\":\"Tim Lancina\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/8a992998bcf3b91cd1760e992de52f8f\"},\"headline\":\"Pluginz Be Buggin&#8217;\",\"datePublished\":\"2016-03-18T18:28:49+00:00\",\"dateModified\":\"2016-03-30T16:29:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/pluginz-be-buggin\"},\"wordCount\":374,\"commentCount\":9,\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"keywords\":[\"Ionic\"],\"articleSection\":[\"All\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/ionic.io\/blog\/pluginz-be-buggin#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ionic.io\/blog\/pluginz-be-buggin\",\"url\":\"https:\/\/ionic.io\/blog\/pluginz-be-buggin\",\"name\":\"Pluginz Be Buggin' - Ionic Blog\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/#website\"},\"datePublished\":\"2016-03-18T18:28:49+00:00\",\"dateModified\":\"2016-03-30T16:29:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/ionic.io\/blog\/pluginz-be-buggin#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ionic.io\/blog\/pluginz-be-buggin\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ionic.io\/blog\/pluginz-be-buggin#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ionic.io\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pluginz Be Buggin&#8217;\"}]},{\"@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\/8a992998bcf3b91cd1760e992de52f8f\",\"name\":\"Tim Lancina\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/42add3b6a2dad5ce0b691dbdc647af4d4f6d36b7191dc01308c57666360b3e81?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/42add3b6a2dad5ce0b691dbdc647af4d4f6d36b7191dc01308c57666360b3e81?s=96&d=mm&r=g\",\"caption\":\"Tim Lancina\"},\"url\":\"https:\/\/ionic.io\/blog\/author\/dopernicus\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Pluginz Be Buggin' - 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\/pluginz-be-buggin","og_locale":"en_US","og_type":"article","og_title":"Pluginz Be Buggin'","og_description":"Hello, Ionites! You may have noticed, if you tried to submit your app to the iOS App Store in the last week, that as of today, some apps have started to be rejected for &#8220;non-public API use.&#8221; This is due to the hideKeyboardAccessoryBar method of the Ionic Keyboard plugin, which uses private APIs to remove [&hellip;]","og_url":"https:\/\/ionic.io\/blog\/pluginz-be-buggin","og_site_name":"Ionic Blog","article_published_time":"2016-03-18T18:28:49+00:00","article_modified_time":"2016-03-30T16:29:26+00:00","author":"Tim Lancina","twitter_card":"summary_large_image","twitter_creator":"@ionicframework","twitter_site":"@ionicframework","twitter_misc":{"Written by":"Tim Lancina","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ionic.io\/blog\/pluginz-be-buggin#article","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/pluginz-be-buggin"},"author":{"name":"Tim Lancina","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/8a992998bcf3b91cd1760e992de52f8f"},"headline":"Pluginz Be Buggin&#8217;","datePublished":"2016-03-18T18:28:49+00:00","dateModified":"2016-03-30T16:29:26+00:00","mainEntityOfPage":{"@id":"https:\/\/ionic.io\/blog\/pluginz-be-buggin"},"wordCount":374,"commentCount":9,"publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"keywords":["Ionic"],"articleSection":["All"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ionic.io\/blog\/pluginz-be-buggin#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ionic.io\/blog\/pluginz-be-buggin","url":"https:\/\/ionic.io\/blog\/pluginz-be-buggin","name":"Pluginz Be Buggin' - Ionic Blog","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/#website"},"datePublished":"2016-03-18T18:28:49+00:00","dateModified":"2016-03-30T16:29:26+00:00","breadcrumb":{"@id":"https:\/\/ionic.io\/blog\/pluginz-be-buggin#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ionic.io\/blog\/pluginz-be-buggin"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/ionic.io\/blog\/pluginz-be-buggin#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ionic.io\/blog"},{"@type":"ListItem","position":2,"name":"Pluginz Be Buggin&#8217;"}]},{"@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\/8a992998bcf3b91cd1760e992de52f8f","name":"Tim Lancina","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/42add3b6a2dad5ce0b691dbdc647af4d4f6d36b7191dc01308c57666360b3e81?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/42add3b6a2dad5ce0b691dbdc647af4d4f6d36b7191dc01308c57666360b3e81?s=96&d=mm&r=g","caption":"Tim Lancina"},"url":"https:\/\/ionic.io\/blog\/author\/dopernicus"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/895","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\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/comments?post=895"}],"version-history":[{"count":0,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/895\/revisions"}],"wp:attachment":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media?parent=895"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/categories?post=895"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/tags?post=895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}