Oracle Help Center | Oracle Responsys Mobile App Platform Cloud Service title

iOS FAQs

General Questions

I received an email about PEM file expiration. What should I do?

Responsys sends email reminders before a PEM file used by an iOS app is about to expire. This allows Mobile App Developers to update the PEM file in the system. The email is sent to Account Primary Contacts and to the Responsys user who added the mobile app using the Mobile App Developer Console. PEM file expiration reminders are sent 30 days in advance, and if the file is not updated, they will repeat at 14 days and 7 days before the expiration date.

When you receive one of these emails, follow the instructions for logging into Responsys given in the email. Next, follow the instructions in one of the following topics, depending on the type of PEM file you need to update:

IMPORTANT: If the PEM file expires, Responsys will be unable to send any Mobile App Channel campaigns to the mobile app users. This also impacts campaign launches scheduled or triggered through the Responsys Web Services API.

 

Troubleshooting

Enabling Push Notification Capability

Error:[PushIOManager] Push token error: Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo={NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application}

Solution: Enable Push Notifications from Capabilities tab.

Adding linker flags

Error: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFConstantString isBlank]: unrecognized selector sent to instance 0x10010d780'

Solution: Add other linker flags: -ObjC -all_load (in build settings)

Application Deployment Target Setting

Warning: object file (/../PushIOManager.framework/PushIOManager) was built for newer iOS version (8.0) than being linked (7.0)

Solution: SDK supports only iOS 8.0 onwards. Please update the application deployment target (8.0 minimum) to avoid this warning.

Media Attachment

Error:Undefined symbols for architecture arm64: "OBJC_METACLASS$PIOMediaAttachmentServiceExtension", referenced from: _OBJC_METACLASS$NotificationService in NotificationService.o "_OBJC_CLASS$PIOMediaAttachmentServiceExtension", referenced from: _OBJC_CLASS$_NotificationService in NotificationService.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Solution:Build Error :Select the target from the 'Target Panel'.Select the extension target.Click the general tab. Under linked frameworks and binaries check if the ‘PIOMediaAttachmentExtensionFramework’ is added. If not, drag the framework under the ‘linked frameworks and binaries’ heading.

Media Attachment

Error:Application build is successful but crashes at launch. Debug log shows :

dyld: Library not loaded: /System/Library/Frameworks/UserNotifications.framework/UserNotifications Referenced from: /var/containers/Bundle/Application/.../HelloMediaNotifications.app/HelloMediaNotifications Reason: image not found (lldb)

Solution:This issue is encountered in devices running iOS versions below iOS 10.

Select the application target from the 'Target Panel'.Click the general tab. Remove the ‘PIOMediaAttachmentExtensionFramework’ from the ‘linked frameworks and binaries’ section to resolve the issue.

Media Attachment

Error:/Users/………/Applications/HelloMediaNotifications.app/Frameworks/PIOMediaAttachmentExtension.framework: bundle format unrecognized, invalid, or unsuitable

Solution:This issue is encountered in devices running iOS versions below iOS 10.

Select the application target from the 'Target Panel'. Remove the ‘PIOMediaAttachmentExtensionFramework’ from the ‘embedded binaries’ section to resolve the issue.

Registration Completion Handler

Issue:Completion handler for 'registerForAllRemoteNotificationTypes' is not being called.

Solution:Ensure that PushIOManager Callbacks are implemented as follows in the AppDelegate.m file:

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:
    (NSData *)deviceToken
{
[[PushIOManager sharedInstance]  didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
}

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
[[PushIOManager sharedInstance]  didFailToRegisterForRemoteNotificationsWithError:error];
}
        
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    PushIOManager.sharedInstance().didRegisterForRemoteNotifications(withDeviceToken: deviceToken)
}
        
func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
    PushIOManager.sharedInstance().didFailToRegisterForRemoteNotificationsWithError(error)
}
        

Displaying Alerts While the App Is Running

Issue: When testing the mobile app on iOS, the push notification does not display while the app is running.

Solution: This is the expected default behavior. If you would like push notifications to display while the app is running, modify your mobile app as described in Displaying Alerts While App Is Running.