cordova-plugin-device icon indicating copy to clipboard operation
cordova-plugin-device copied to clipboard

iOS: deviceProperties method crashes when device is locked & data protection is set to "complete"

Open mtamburro opened this issue 6 years ago • 4 comments

Bug Report

There is no null checking when creating the dictionary in the deviceProperties method.

Problem

On the Apple developer portal, if you set "data protection" to "complete" for your App ID, and then call this method while your device is locked (e.g., in response to a push notification) some of the properties will be null and result in a crash.

What is expected to happen?

Null properties should not be inserted in to the dictionary, and the App should not crash.

What does actually happen?

The App crashes in the background every time.

Information

An easy way to reproduce this is to turn off your device, then turn it on, but do not enter your passcode to unlock the device. With your device in this state, send a push notification to your app that calls the deviceProperties method.

Command or Code

Environment, Platform, Device

This was first noticed on iOS 13

Version information

Checklist

  • [x] I searched for existing GitHub issues
  • [x] I updated all Cordova tooling to most recent version
  • [x] I included all the necessary information above

mtamburro avatar Oct 10 '19 22:10 mtamburro

We get increased crashes in iOS and it seems to be pointing to what was described in this issue.

We are unsure how it happens, but here is what it points to:

Fatal Exception: NSInvalidArgumentException *** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[4] -[CDVDevice deviceProperties]

CDVDevice.m - Line 75

epetre avatar Jan 08 '21 16:01 epetre

@epetre Do you find any fix for this crash? I am facing similar situation

We get increased crashes in iOS and it seems to be pointing to what was described in this issue.

We are unsure how it happens, but here is what it points to:

Fatal Exception: NSInvalidArgumentException *** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[4] -[CDVDevice deviceProperties]

CDVDevice.m - Line 75

nischalbharat avatar Mar 23 '21 04:03 nischalbharat

No, sadly we did not.

epetre avatar Aug 05 '21 21:08 epetre

We are having this issue, too. No additional information, unfortunately nor any other reproduction.

nvahalik avatar Nov 15 '21 18:11 nvahalik