The Official Ionic Blog

Build amazing native and progressive web apps with HTML5

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 “non-public API use.” 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.

But don’t 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:

ionic plugin rm ionic-plugin-keyboard    
ionic plugin add ionic-plugin-keyboard

If you haven’t submitted to the App Store yet, or your app is currently under review, you still need to update!

Will my Ionic app already in the App Store be removed?

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.

What is the accessory bar?

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.

What do you mean by “private” API?

In native apps, removing the accessory bar is common practice. To remove the accessory bar, we used a part within iOS that isn’t 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’t provide a way to remove the accessory bar through any public API.

Will you be adding the ability to remove the accessory bar again in the future?

Yes! We’re exploring our options at the moment. Because there is no public API, there is no guarantee that any solution we come up with won’t come up against this issue again! If we do add it back in, we will be clear about any risks to App Store submissions.

Conclusion

Thanks for your patience and for helping us resolve this issue so quickly! We’ll keep this post up to date with any new changes or information.

  • Simon Hill

    Does anyone know what other ng-cordova plugins may be affected?

    • Tim Lancina

      I’m not aware of any other plugins using private APIs, so as far as I know they should all be fine.

  • Jeff Boothe

    Along with uninstalling and re-installing, should this line be removed from startup code:

    `cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);`

    • technotip

      No. You need not remove that line.

  • marc

    If you redesign your plugin, could you please make the new calls be more detailed? like not only showing and hiding the whole bar, but also changing the active options (eg. tab yes/no) and changing the whole style of the keyboard (numeric, text, “action-button-styl” etc.). that would be great because the keyboard does not really behave very native at the moment. if now also the bar can´t be hidden anymore… anyway, thanks for your good work!

  • Alejandro

    In our case, we are using :
    cordova.plugins.Keyboard.hideKeyboardAccessoryBar(false);
    because without that line of code, the tag doesn’t display the ‘Done’.

  • http://markshust.com Mark Shust
  • Han Seung Lee

    So is there no solution to remove keyboard accessory bar now? because I’v used cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); this code and my ionic app needs some function to hide keyboard accessory bar.

  • Love Panchal

    is there any way to have hash tag on keyboard directly just like twitter have