Updating extensions for iOS 10

From iPhone Development Wiki
Revision as of 13:58, 29 January 2017 by Kimcha (talk | contribs) (Added openssh info)
Jump to: navigation, search

Let's collect knowledge like we did with iOS 9, iOS 8 and iOS 7 – paste in your notes and share what you've learned, and somebody else will organize it later. :) If you want to ask questions and share tips over chat with other developers, see How to use IRC for how to connect to #theos and #iphonedev.

Hey developer, you can add your knowledge here! Yes, you! Make an account and edit this page!

It's also helpful to double-check the statements here and add more info! These are notes and drafts from early research – feel free to update them.

If you want to see what's been recently updated on this page, you can use the wiki's history feature to compare the revisions (to look at the diff) since the last time you visited this page.


In iOS 9 and applications dynamic and shortcut items were accessed view dynamicShortcutItems and staticShortcutItems. These have now been changed to dynamicApplicationShortcutItems and staticApplicationShortcutItems;


You used to be able to manually create a shortcut item and activate it using _activateShortcutItem:fromApplication:. This has been removed.


The system logging APIs have changed again – ASL and syslog are now deprecated in favor of the unified logging system. NSLog() and CFLog() now send their output through this system.

The Console app in macOS Sierra supports reading logs from connected iOS devices – just select the device from the sidebar. The new concept seems to encourage being verbose, so system processes have become pretty noisy. Right click a message to reveal options for filtering to or filtering out messages from a process, library, subsystem, category, etc. You probably want to filter out irrelevant noisy processes otherwise you’ll be overwhelmed and need to scroll a lot. Set up a filter you’re happy with and click Save in the top-right. There is also the log command line tool.

If you want to use os_log, as a courtesy for others, use os_log_create with your package identifier as the subsystem. Keep in mind the APIs are new to iOS 10. If you support older iOS, retrieve the function symbols at runtime with dlsym() and fall back to an old logging mechanism if they are null.


The iOS 10 lockscreen presents subclasses of SBDashBoardPageViewController as pages for the user to swipe through; new pages can be added with ease. See this wiki page for further information.


OpenSSH is broken on iOS 10, which is why yalu comes with dropbear (an alternative ssh server).

If you accidently install the openssh package (BigBoss Tools includes it for example), simply remove the openssh and openssl packages, reboot and rejailbreak.