iOS ReaderSDK cannot show signature page

Hi,
We’re adding Square card reader SDK to collect payment for our iOS users recently. And we meet an issue when setting “sqrdParam.collectSignature = YES;” for checkout flow. The code is:

    SQRDMoney *money = [[SQRDMoney alloc] initWithAmount:10*100];
    SQRDCheckoutParameters *sqrdParam = [[SQRDCheckoutParameters alloc] initWithAmountMoney:money];
    sqrdParam.additionalPaymentTypes = SQRDAdditionalPaymentTypeManualCardEntry|SQRDAdditionalPaymentTypeCash;
    
    sqrdParam.skipReceipt = YES;
    sqrdParam.collectSignature = YES;

    SQRDCheckoutController *controller = [[SQRDCheckoutController alloc] initWithParameters:sqrdParam delegate:self];
    [controller presentFromViewController:self.navigationController];

It will showing “processing” forever and the signature ViewController will not show up. We got the log here:

[Presentation] Attempt to present <CQSignatureViewController: 0x111009800> on <GMBaseNavController: 0x108338a00> (from <GMBaseNavController: 0x108338a00>) whose view is not in the window hierarchy.

While “GMBaseNavController” is a subclass of UINavigationControll. Did we miss something before calling “presentFromViewController”?

Thank you for Creating the Article. I am facing the same Issue.

Hi! When you get a chance, do you mind letting me know what your application ID and Reader SDK version are?

I had fixed this issue in our iOS app.

The reader SDK seems to check the ViewControllers stack with some logic.

I found that if you start checkout flow in a “presented” view controller, the signature screen will not show up. Says that we have VC_1, then ‘present’ to a new view controller - VC_2.

If we start checkout flow in VC_2, the signature screen cannot show up. But if we change to ‘push view controller’ to VC_2, it works.

You can check if this happened to your app. And please reply to let me know if my guess it is right. Good luck :slight_smile:

Hi Josh, I had this fixed. But still curious about how iOS reader SDK shows the signature screen. Because my solution is more like a workaround.

Do you mind sharing what Reader SDK version you’re using (or alternatively your location id)? I’m consulting the team on this and just want to make sure we’re seeing the same thing as you :slight_smile:

We use version 1.5.4.

SQRDFullyQualifiedVersion
1.5.4