applicationShouldTerminate not called in AppDelegate and NSApplicationWillTerminateNotification not being sent

Solution 1:

Well, I figured it out and it's because it seems that NSSupportsSuddenTermination is on by default now.

To disable sudden termination, set this boolean property to NO in the app's information property list file Info.plist: enter image description here

Solution 2:

NSSupportsSuddenTermination is also called 'Application can be killed immediately when user is shutting down or logging out' within Xcode, and seems enabled by default.

Thanks @toastie