square / reader-sdk-ios-quickstart

Reader SDK Quick Start Sample iOS App
https://developer.squareup.com/docs/reader-sdk/quick-start/start
Apache License 2.0
23 stars 4 forks source link

SquareReaderSDK.framework Core Data crash (fault: One or more models in this application are using transformable properties with transformer names that are either unset, or set to NSKeyedUnarchiveFromDataTransformerName.) #13

Closed muppetcrayz closed 4 years ago

muppetcrayz commented 4 years ago

The framework (up-to-date) is crashing with this message. This is a time-sensitive issue because the app using it is currently in production.

CoreData: warning: Property 'eventStreamProperties' on Entity 'EventStreamLogEvent' is using nil or an insecure NSValueTransformer.  Please switch to using "NSSecureUnarchiveFromData" or a subclass of NSSecureUnarchiveFromDataTransformer instead.
CoreData: warning: Property 'protoEvent' on Entity 'EventstreamV2Event' is using nil or an insecure NSValueTransformer.  Please switch to using "NSSecureUnarchiveFromData" or a subclass of NSSecureUnarchiveFromDataTransformer instead.
CoreData: warning: Property 'APIEndpoint' on Entity 'SquareAccount' is using nil or an insecure NSValueTransformer.  Please switch to using "NSSecureUnarchiveFromData" or a subclass of NSSecureUnarchiveFromDataTransformer instead.
CoreData: warning: Property 'apiEndpointsList' on Entity 'SquareAccount' is using nil or an insecure NSValueTransformer.  Please switch to using "NSSecureUnarchiveFromData" or a subclass of NSSecureUnarchiveFromDataTransformer instead.
CoreData: warning: Property 'betaAppURL' on Entity 'SquareAccount' is using nil or an insecure NSValueTransformer.  Please switch to using "NSSecureUnarchiveFromData" or a subclass of NSSecureUnarchiveFromDataTransformer instead.
CoreData: warning: Property 'deviceCredential' on Entity 'SquareAccount' is using nil or an insecure NSValueTransformer.  Please switch to using "NSSecureUnarchiveFromData" or a subclass of NSSecureUnarchiveFromDataTransformer instead.
CoreData: warning: Property 'employeeResponse' on Entity 'SquareAccount' is using nil or an insecure NSValueTransformer.  Please switch to using "NSSecureUnarchiveFromData" or a subclass of NSSecureUnarchiveFromDataTransformer instead.
CoreData: warning: Property 'featureFlagOverrides' on Entity 'SquareAccount' is using nil or an insecure NSValueTransformer.  Please switch to using "NSSecureUnarchiveFromData" or a subclass of NSSecureUnarchiveFromDataTransformer instead.
CoreData: warning: Property 'helpCenterURL' on Entity 'SquareAccount' is using nil or an insecure NSValueTransformer.  Please switch to using "NSSecureUnarchiveFromData" or a subclass of NSSecureUnarchiveFromDataTransformer instead. 
...
StephenJosey commented 4 years ago

Hey @sagealessandra we just released a new version of the SDK (1.3.7), can you confirm which version exactly are you using? Also would you be able to provide your Square application id? Also I see you mention that the app is in production; was it working correctly before you posted this, or as soon as you moved to production?

muppetcrayz commented 4 years ago

It was working correctly and I just reinstalled it yesterday and it said 1.3.7. It was working before but it started crashing a couple weeks ago, hence why I reinstalled. My app ID is sq0idp-xF3aY0F5C5whDVKyWuKPmg

muppetcrayz commented 4 years ago

I think the problem might be a new version of Xcode or Swift 5 usage. This app hasn't been touched in months and suddenly it doesn't work, so it also could be a new version of iOS.

muppetcrayz commented 4 years ago

Hi, any update on this?

StephenJosey commented 4 years ago

Sorry for the delay here. I'll escalate this to our iOS team and follow-up once I have more information.

StephenJosey commented 4 years ago

Hey @sagealessandra we've been unable to reproduce this error thus far, even on the latest iOS versions. Would you be willing to share your project via a private repo (or whatever you feel comfortable with) with our support team and reference this issue so I'll get pinged?

muppetcrayz commented 4 years ago

I have opened a ticket so hopefully you got it. I am not sure if I got a reply but I’m afraid I deleted it from Spam. Could you send a reply again to my gmail or to here? On Mar 17, 2020, 1:44 PM -0400, Stephen Josey notifications@github.com, wrote:

Hey @sagealessandra we've been unable to reproduce this error thus far, even on the latest iOS versions. Would you be willing to share your project via a private repo (or whatever you feel comfortable with) with our support team and reference this issue so I'll get pinged? — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

phil-pwb commented 4 years ago

We're also experiencing this - did you make any progress on this?

StephenJosey commented 4 years ago

Hey @sagealessandra I did respond to you, sorry that you didn't get it. After I close a ticket, I can't reopen it per policy :(. To reiterate what I mentioned in the email: I was able to clone your project and make a cash transaction in an iOS 13 simulator. Can you clarify when this error is happening?

phil-pwb commented 4 years ago

In our case we're seeing the same CoreData warnings and then the app crashes with image

StephenJosey commented 4 years ago

Thanks, @phil-pwb ! Could you provide a bit of clarity: what do you do within the application to make it crash? Does it crash on both simulator and real device, or only on one or the other? If only on real devices, can you add what device and iOS version you're using?

We've been unable to replicate this on our end, so providing as much information as possible will help us debug this issue. Thanks for your help!

muppetcrayz commented 4 years ago

Hi Stephen, this happens on a real device (iPad mini on iOS 13) and a simulator device. It crashes immediately upon opening for me so I can't even make the transaction. Do you have any special configuration? On Mar 18, 2020, 12:58 PM -0400, Stephen Josey notifications@github.com, wrote:

Hey @sagealessandra I did respond to you, sorry that you didn't get it. After I close a ticket, I can't reopen it per policy :(. To reiterate what I mentioned in the email: I was able to clone your project and make a cash transaction in an iOS 13 simulator. Can you clarify when this error is happening? — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

adamb-m4 commented 4 years ago

I have seen this crash both in the Simulator (iOS 13.3) and on the iPad I have here (iOS 13.2.3). I believe it's before any transaction even happens - there certainly is no purchase happening. We too see pages of CoreData errors before the crash, which is the same as in the post above by @phil-pwb.

StephenJosey commented 4 years ago

Not that I know of...I literally just cloned your project, opened it in XCode, and launched it on an "iPad Air (3rd Generation) - 13.1" simulator and was able to go all the way through to making a payment. The only thing I changed was the total (0 to 1) in your code just so I could easily bypass to get to the checkout screen to make sure it would open.

adamb-m4 commented 4 years ago

@StephenJosey Would you be able to try that on 13.2.3 or up?

StephenJosey commented 4 years ago

Downloaded the latest XCode and tested on iPad Pro 13.3, and it was still successful. I am seeing CoreData warnings (as in the original screenshot), but they're not causing the app to crash.

adamb-m4 commented 4 years ago

Thanks for trying that. I think the actual exception being observed is a multithreading exception to do with accessing a CoreDate context from the wrong queue - as we were already seeing such a high volume of CoreDate warnings anyway, maybe it's still an area worth further investigation? Multithreading issues are always a pain to recreate of course, so maybe there's some subtle difference in the circumstances the code is running under.

StephenJosey commented 4 years ago

Apologies for the delay here. Can you both confirm that also you're using the correct permissions in your Info.plist file? We've recently seen another CoreData issue and the application was missing the bluetooth permission. See info here: https://developer.squareup.com/docs/reader-sdk/build-on-ios#update-your-infoplist

muppetcrayz commented 4 years ago

You have taken so long to reply that my customer cancelled the project. If I am able to get my contract back, I will check on this. On Apr 20, 2020, 3:43 PM -0400, Stephen Josey notifications@github.com, wrote:

Apologies for the delay here. Can you both confirm that also you're using the correct permissions in your Info.plist file? We've recently seen another CoreData issue and the application was missing the bluetooth permission. See info here: https://developer.squareup.com/docs/reader-sdk/build-on-ios#update-your-infoplist — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

StephenJosey commented 4 years ago

I apologize for the delay, there was some communication internally and this got lost from my queue. We also were never able to replicate this as far as I'm aware and was just trying to think of other things to try. There's also an optional CoreData multithread assertion you can turn out which I just found out about a few moments ago that might be causing this (https://www.avanderlee.com/debugging/core-data-debugging-xcode/).