• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!

iOS IAP crashing on reviewers iPAD

RizbIT

Member
Trying to get an app approved on Apple.

Had several issues like excessive ads (which was determined to be caused by intermediate / interstitial ads between rooms...which is debatable)
Also issue with me linking out from the app to a website which provided information about a pro version of the app, which again is not really against any guidelines I read
An issue with being told I was forcing users to enable tracking even though I wasnt as I had an ad disclosure notice on app launch which users could dismiss and close the app (works on Android but on iOS you cant do end_game() so this was the issue)

Most recent issue is that they are saying the app crashes when they try to make an IAP on their iPad device:

Hardware Model: iPad11,3
Process: _myapp [840]
Path: /private/var/containers/Bundle/Application/7C8E13DC-1C73-49FF-B378-ADE71A64727A/_myapp .app/_myapp
Identifier: uk.rizbit._myapp
Version: 8.7.0 (8.7.0)
AppStoreTools: 12C29
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: uk.rizbit._myapp[659]

Date/Time: 2020-12-29 21:44:41.4179 -0800
Launch Time: 2020-12-29 21:18:46.2989 -0800
OS Version: iPhone OS 14.3 (18C66)
Release Type: User
Baseband Version: n/a
Report Version: 104

Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Triggered by Thread: 0

Application Specific Information:
abort() called

Last Exception Backtrace:
(0x18618286c 0x19b0f1c50 0x1861f2e1c 0x1861ff440 0x18606323c 0x100ea8598 0x100ea8244 0x100ea8064 0x1a3eea534 0x185d7524c 0x185d76db0 0x185d847ac 0x1860fe11c 0x1860f8120 0x1860f721c 0x19dbfb784 0x188b35fe0 0x188b3b854 0x10111b910 0x185db76b0)
Thread 0 crashed with ARM Thread State (64-bit):
x0: 0x0000000000000000 x1: 0x0000000000000000 x2: 0x0000000000000000 x3: 0x0000000000000000
x4: 0x000000016f08dff0 x5: 0x000000016f08e5a0 x6: 0x000000000000006e x7: 0x0000000000008500
x8: 0x00000000000005b9 x9: 0x892bf1003de6a1bf x10: 0x0000000000000002 x11: 0x0000000000000003
x12: 0x0000000000000000 x13: 0x0000000000000001 x14: 0x0000000000000010 x15: 0x0000000000000050
x16: 0x0000000000000148 x17: 0x0000000103b938c0 x18: 0x0000000000000000 x19: 0x0000000000000006
x20: 0x0000000000000407 x21: 0x0000000103b939a0 x22: 0x0000000000000000 x23: 0x0000000000000000
x24: 0x0000000002ffffff x25: 0x0000000103b939a0 x26: 0x00000000000020ff x27: 0x0000000000000114
x28: 0x00000002829c8f00 fp: 0x000000016f08e500 lr: 0x00000001d0c9ab40
sp: 0x000000016f08e4e0 pc: 0x00000001b3864414 cpsr: 0x40000000
esr: 0x56000080 Address size fault
Ive tested the IAPs on iPhone and iPad using both dev and adhoc profiles and it works fine. I was only able to find this crash issue when you try to CANCEL the IAP, in which case I saw the following in the XCODE debug console:
Code:
2020-12-30 15:15:46.459749+0000 _myapp[498:34614] iOS IAP Purchase Initiated: g6_credits_100
2020-12-30 15:15:46.473206+0000 _myapp[498:34614] **** Your purchase Initiated ****
2020-12-30 15:16:16.193467+0000 _myapp[498:34614] Pause event has been registered for this frame
2020-12-30 15:16:16.205022+0000 _myapp[498:34614] Pause event has been unregistered
2020-12-30 15:16:16.431695+0000 _myapp[498:34906] <SKPaymentQueue: 0x281d3c5d0>: Payment completed with error: Error Domain=ASDErrorDomain Code=907 "Unhandled exception" UserInfo={NSUnderlyingError=0x2811ac270 {Error Domain=AMSErrorDomain Code=6 "Payment Sheet Failed" UserInfo={NSLocalizedDescription=Payment Sheet Failed, NSLocalizedFailureReason=Payment sheet cancelled}}, NSLocalizedFailureReason=An unknown error occurred, NSLocalizedDescription=Unhandled exception}
2020-12-30 15:16:16.433518+0000 _myapp[498:34614] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSDictionaryM setObject:forKey:]: key cannot be nil'
*** First throw call stack:
(0x1b2a2f9d8 0x1c6d98b54 0x1b2a99d98 0x1b2aa53a0 0x1b291b2f0 0x10451f8d4 0x10451f400 0x10451f14c 0x1cf41497c 0x1079b7ce4 0x1079b9528 0x1079c7994 0x1b29af5e0 0x1b29a9a88 0x1b29a8ba0 0x1c96e6598 0x1b52983d8 0x1b529d958 0x1048127d4 0x1b2687568)
libc++abi.dylib: terminating with uncaught exception of type NSException
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSDictionaryM setObject:forKey:]: key cannot be nil'
terminating with uncaught exception of type NSException
I assume this code error is in the official ios iap extension code?

Are there any known issues or bugs with the Apple IAP extension or the IOS IAP functions?
 
Last edited:

RizbIT

Member
it was resolved pretty sure GM said they fixed the issue in latest update, just make sure the extension you have is latest version. im sure this is waht resolved the issue
 

Elevory

Member
it was resolved pretty sure GM said they fixed the issue in latest update, just make sure the extension you have is latest version. im sure this is waht resolved the issue
Huh, okay. I only downloaded the extension a few days ago, so I would have sworn it was already up-to-date. Maybe I got it from an old link somewhere.

I will see if I can get a newer version. Thank you!
 

Elevory

Member
Sorry to bother you again, but I just confirmed that I'm using the latest iOS_IAPs extension from the GM Marketplace.

Weird thing is, it's listing the file version as 1.0.0 even though the marketplace description says it should be on 1.0.2:

1614723220916.png

1614723145323.png


When you have a chance, would you mind checking the version window in your project to see if it says 1.0.0?

Thanks.
 

RizbIT

Member
I made bug report this is their reply:

We actually released an updated version of the Apple IAPs asset last week to fix this (and a few other smaller issues). Please download the update and replace the extension in your project with the newer version, then you should be fine.

You can read more here:
https://marketplace.yoyogames.com/assets/8594/apple-iaps

Thanks,
Dan
YoYo QA Department
It should be 1.0.2 maybe first delete the extension form your project, then clean it, then go to you projects extension folder using windows explorer and see its actually been removed.
Then update the extension on the marketplace library to 1.0.2, then add it back to your project
then check the version you have it should say 1.0.2
 

Elevory

Member
Thank you for sharing the bug report.

I think I figured out what's going on - I'm still using GameMaker 2.2.5 but the new extension is only available on GameMaker 2.3. You're on 2.3, I presume?

I'm trying to figure out what my best course of action is. My project relies on a number of extensions that haven't been updated for 2.3 yet, but I don't think I can get my game approved for iOS without the new extension... really frustrating.
 

RizbIT

Member
updated to 2.3 , unless maybe ask other extension authors to update theirs or send a support ticket to yoyo
 
Top