Updating extensions for iOS 9.3.3
Let's collect knowledge like we did with previous guides - 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.
Unlike previous instances of "Updating extensions for iOS X", this specific version has several internal changes as well as a different public jailbreak method which demands a separate page for it.
What has changed in iOS 9.3.3? (Classes, frameworks, etc.)
- SBUIController's -finishLaunching ceased to exist. Consider using notifications to perform initializations of your tweaks if you were hooking this method. (com.apple.accessibility.system.app.server.ready, com.apple.frontboard.systemappservices.serverNotifyToken, SBSpringBoardDidLaunchNotification, com.apple.springboard.finishedstartup, com.apple.sharing.SpringBoard.started, com.apple.springboard.homescreenunlocked are some of the notifications to register for.)
- SpringBoard's -_relaunchSpringBoardNow ceased to exist. Use [[FBSystemService sharedInstance] exitAndRelaunch:YES] (AFAIK there is no difference between YES and NO at the end).
- To reboot, use [[FBSystemService sharedInstance] shutdownAndReboot:YES] and to shutdown, use [[FBSystemService sharedInstance] shutdownAndReboot:NO]
- SBOrientationLockManager's -isLocked ceased to exist. There is now -isUserLocked (without lock override check) and -isEffectivelyLocked (with lock override check).
- SBScreenShotter has been replaced with SBScreenshotManager. An instance of SBScreenshotManager is available through SpringBoard's screenshotManager property. To take a screenshot, use SBScreenshotManager's saveScreenshotsWithCompletion: method
- SBWallpaperController now applies styles based on the current bundleIdentifier, rather than globally. For example: [wallpaperController setHomescreenStyle:1 priority:5 withAnimationFactory:nil]; becomes [wallpaperController setHomescreenStyle:1 forBundleIdentifier:@"com.apple.SpringBoard" withPriority:5 animationFactory:nil];