chirpy
Member
I'm branching from the official 2.3.1 release thread to not dilute other issues and discussions.
https://forum.yoyogames.com/index.php?threads/gms2-version-2-3-1-beta-release.79757/post-477098
@clee2005
First thing, yes the iOS_IAPs extension's code should be modified as well; otherwise it can be checking wrong class.
Other than that, in other extensions (that implement app delegate protocol), what are affected depend on which methods are implemented / shadowed when it should be properly inherited and overriden.
If the extension implemented any UIApplicationDelegate methods, but does not invoke the superclass' implementation, then the aforementioned snippet should probably be added within its UIApplicationDelegate method bodies:
Here's Apple's doc on UIApplicationDelegate protocol (objC's thing similar to interface if I understand correctly).
Most commonly GMS extensions care about are those listed under:
- "Initializing the App"
- "Responding to App Life-Cycle Events"
You can check your extensions' app delegate files to see which methods are implemented, and ensure it is not shadowing the whole inheritance chain unintentionally.
All said, it's surely the extension author's responsibility to maintain it properly.
https://forum.yoyogames.com/index.php?threads/gms2-version-2-3-1-beta-release.79757/post-477098
@clee2005
First thing, yes the iOS_IAPs extension's code should be modified as well; otherwise it can be checking wrong class.
Other than that, in other extensions (that implement app delegate protocol), what are affected depend on which methods are implemented / shadowed when it should be properly inherited and overriden.
If the extension implemented any UIApplicationDelegate methods, but does not invoke the superclass' implementation, then the aforementioned snippet should probably be added within its UIApplicationDelegate method bodies:
Code:
// if the base class also implemented this method
if ([${YYExtAppDelegateBaseClass} class] instancesRespondToSelector @selector(theMethodSignature))
{
// invoke it (just like calling event_inherited() in inherited gml events)
[super application:application willFinishLaunchingWithOptions:launchOptions]; //match the method signature
}
Most commonly GMS extensions care about are those listed under:
- "Initializing the App"
- "Responding to App Life-Cycle Events"
You can check your extensions' app delegate files to see which methods are implemented, and ensure it is not shadowing the whole inheritance chain unintentionally.
All said, it's surely the extension author's responsibility to maintain it properly.