You need to specify the name of the notification in the fourth argument:
id center = CTTelephonyCenterGetDefault(); CTTelephonyCenterAddObserver(center, NULL, callback, CFSTR("kCTMessageReceivedNotification"), NULL, CFNotificationSuspensionBehaviorHold);
Starting with iOS 8, you cannot pass NULL as the notification name to receive all CoreTelephony notifications. Now you must specify exactly which notifications you want to observe.
8.3 UPDATE
As of iOS 8.3, at least kCTMessageReceivedNotification requires the right to receive (probably the case for all notifications, but I donβt know for sure)
<key>com.apple.CommCenter.fine-grained</key> <array> <string>spi</string> </array>
source share