Post

Replies

Boosts

Views

Activity

Reply to Tab Bar Controller Not Using Safe Area
The attached image shows the safe area highlighted with the view "Playview". However, when I run the code in debugger, I can see that both CGRect frame1 = self.view.frame; CGRect frame = self.view.safeAreaLayoutGuide.layoutFrame; give the same frame. This is not the case with a different tab view that has subviews added programmatically as opposed to this one that has them in IB.
Topic: UI Frameworks SubTopic: UIKit
Apr ’25
Reply to TN3187: Migrating to the UIKit scene-based life cycle
So, the problem really came down to the fact that my projects were created a LOOOOONG time ago (2010), so they didn't have the needed plist items above. For anyone interested in supporting UIKIT scene-based life cycle, my recommendation is to generate at new project that is an "app" from the templates and copy over the SceneDelegate files into your project, copy the contents of the AppDelegate into your existing app delegate, and add the Application Scene Manifest plist item (+ sign) and edit them to match what the sample project has.
Jun ’25
Reply to UIScene Storyboard - Main and Main_iphone
So, I've made progress on this [Xcode 16.3]. In my SceneDelegate I use: - (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions API_AVAILABLE(ios(13.0)){ NSLog(@"SceneDelegate received willConnectToSession\n"); if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { NSLog(@"Main_iphone Storyboard"); UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iphone" bundle:nil]; UISceneConfiguration *configuration = [session configuration]; [configuration setStoryboard:storyboard]; } else { NSLog(@"Main Storyboard"); } } And I have two configurations in the plist: I also put this in the appDelegate, though it doesn't seem to get called: - (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options API_AVAILABLE(ios(13.0)){ NSLog(@"AppDelegate received configurationForConnectingSceneSession\n"); // Called when a new scene session is being created. // Use this method to select a configuration to create the new scene with. if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { NSLog(@"Main_iphone Storyboard"); return [[UISceneConfiguration alloc] initWithName:@"iPhone Configuration" sessionRole:connectingSceneSession.role]; } else { NSLog(@"Main Storyboard"); return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role]; } } Everything works fine, except when running the simulator for iPhone 16 Pro Max 18.2 where I get these errors: AX Safe category class 'SLHighlightDisambiguationPillViewAccessibility' was not found! Class CKBrowserSwitcherViewController overrides the -traitCollection getter, which is not supported. If you're trying to override traits, you must use the appropriate API. And no scene appears.
Jun ’25
Reply to endTurnWithNextParticipants is not triggering notifications.
Bringing this thread back to life after 9 years - I'm having this exact problem - game state updates but no push notifications (no banners when not running; no received notifications when running). My bundle ID was created in prehistoric times, so way before sandbox and production Game Center stuff was merged. Just adding the TBM feature to an existing game.
Topic: Graphics & Games SubTopic: GameKit Tags:
Dec ’25
Reply to Apple’s age rating deadline: will apps be blocked after 31 Jan 2026?
I've been fighting this very issue and getting the runaround from various dev support team people. I had no problem updating age requirements for released builds, just for a pending release wherein I created a new version in AppStoreConnect, but it's not ready for release - it's mid-development. I can't save my answers to the age questions unless my app "is in an editable state" according to dev support. It's not if you don't have a build uploaded for a version you created in AppStoreConnect. They say I can just upload a duplicate version with new build numbers but my codebase is in the middle of development and I can't do that.
Dec ’25
Reply to Game Center and Push Notifications
There sure area lot more questions posted than helpful replies in these forums. No response even by Apple. I submitted a request for help and they asked for screenshots! Of what? The lack of a banner notification? Upshot of it all, if you're having this problem, move your app to Test Flight - that uses the production notification system, whereas Xcode and the simulator do not and are very low priority. After moving my app to Test Flight, I got all the notifications expected.
Jan ’26
Reply to How does the automatch feature work in Game Kit?
I'm no expert on this, but the logical way for it to work is that PersonA requests an automatch. If no one else has an active request for an automatch, PersonA starts the game and takes their turn. They are then waiting for an automatch. PersonB requests an automatch and GameCenter sees that PersonA has started an automatch game, so hands the turn to PersonB. PersonB plays and, for a two player game, GameCenter hands the turn to PersonA. Extrapolating this to additional players is left as an exercise to the reader.
Topic: Graphics & Games SubTopic: GameKit Tags:
Jan ’26
Reply to Tab Bar Controller Not Using Safe Area
The attached image shows the safe area highlighted with the view "Playview". However, when I run the code in debugger, I can see that both CGRect frame1 = self.view.frame; CGRect frame = self.view.safeAreaLayoutGuide.layoutFrame; give the same frame. This is not the case with a different tab view that has subviews added programmatically as opposed to this one that has them in IB.
Topic: UI Frameworks SubTopic: UIKit
Replies
Boosts
Views
Activity
Apr ’25
Reply to Tab Bar Controller Not Using Safe Area
I believe I found the issue - the safeAreaLayoutGuide isn't the correct value until viewDidLayoutSubviews is called.
Topic: UI Frameworks SubTopic: UIKit
Replies
Boosts
Views
Activity
Apr ’25
Reply to Gamekit Achievements Won't Unhide
Not sure if it was just a delay or what, but now it's showing after multiple launches on both device and simulator
Replies
Boosts
Views
Activity
May ’25
Reply to Testing Achievements - Apple Documentation out of Date
Upgraded to XCode 16.3 Nope, still no "GameKit" under Debug in Xcode 16.3.
Replies
Boosts
Views
Activity
May ’25
Reply to TN3187: Migrating to the UIKit scene-based life cycle
That's not what my Xcode shows - no option for the Application Scene Manifest. Clearly, the TN needs to be updated.
Replies
Boosts
Views
Activity
Jun ’25
Reply to TN3187: Migrating to the UIKit scene-based life cycle
So, the problem really came down to the fact that my projects were created a LOOOOONG time ago (2010), so they didn't have the needed plist items above. For anyone interested in supporting UIKIT scene-based life cycle, my recommendation is to generate at new project that is an "app" from the templates and copy over the SceneDelegate files into your project, copy the contents of the AppDelegate into your existing app delegate, and add the Application Scene Manifest plist item (+ sign) and edit them to match what the sample project has.
Replies
Boosts
Views
Activity
Jun ’25
Reply to UIScene Storyboard - Main and Main_iphone
So, I've made progress on this [Xcode 16.3]. In my SceneDelegate I use: - (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions API_AVAILABLE(ios(13.0)){ NSLog(@"SceneDelegate received willConnectToSession\n"); if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { NSLog(@"Main_iphone Storyboard"); UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iphone" bundle:nil]; UISceneConfiguration *configuration = [session configuration]; [configuration setStoryboard:storyboard]; } else { NSLog(@"Main Storyboard"); } } And I have two configurations in the plist: I also put this in the appDelegate, though it doesn't seem to get called: - (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options API_AVAILABLE(ios(13.0)){ NSLog(@"AppDelegate received configurationForConnectingSceneSession\n"); // Called when a new scene session is being created. // Use this method to select a configuration to create the new scene with. if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { NSLog(@"Main_iphone Storyboard"); return [[UISceneConfiguration alloc] initWithName:@"iPhone Configuration" sessionRole:connectingSceneSession.role]; } else { NSLog(@"Main Storyboard"); return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role]; } } Everything works fine, except when running the simulator for iPhone 16 Pro Max 18.2 where I get these errors: AX Safe category class 'SLHighlightDisambiguationPillViewAccessibility' was not found! Class CKBrowserSwitcherViewController overrides the -traitCollection getter, which is not supported. If you're trying to override traits, you must use the appropriate API. And no scene appears.
Replies
Boosts
Views
Activity
Jun ’25
Reply to UIScene Storyboard - Main and Main_iphone
Update 2: I changed the Enable Multiple Windows to NO (I thought I might need it to be YES based on the thread here) and now AppDelegatge receives the configurationForConnectingSceneSession call and iPhone 16 Pro Max 18.2 works fine.
Replies
Boosts
Views
Activity
Jun ’25
Reply to endTurnWithNextParticipants is not triggering notifications.
Bringing this thread back to life after 9 years - I'm having this exact problem - game state updates but no push notifications (no banners when not running; no received notifications when running). My bundle ID was created in prehistoric times, so way before sandbox and production Game Center stuff was merged. Just adding the TBM feature to an existing game.
Topic: Graphics & Games SubTopic: GameKit Tags:
Replies
Boosts
Views
Activity
Dec ’25
Reply to Apple’s age rating deadline: will apps be blocked after 31 Jan 2026?
I've been fighting this very issue and getting the runaround from various dev support team people. I had no problem updating age requirements for released builds, just for a pending release wherein I created a new version in AppStoreConnect, but it's not ready for release - it's mid-development. I can't save my answers to the age questions unless my app "is in an editable state" according to dev support. It's not if you don't have a build uploaded for a version you created in AppStoreConnect. They say I can just upload a duplicate version with new build numbers but my codebase is in the middle of development and I can't do that.
Replies
Boosts
Views
Activity
Dec ’25
Reply to Game Center and Push Notifications
There sure area lot more questions posted than helpful replies in these forums. No response even by Apple. I submitted a request for help and they asked for screenshots! Of what? The lack of a banner notification? Upshot of it all, if you're having this problem, move your app to Test Flight - that uses the production notification system, whereas Xcode and the simulator do not and are very low priority. After moving my app to Test Flight, I got all the notifications expected.
Replies
Boosts
Views
Activity
Jan ’26
Reply to How does the automatch feature work in Game Kit?
I'm no expert on this, but the logical way for it to work is that PersonA requests an automatch. If no one else has an active request for an automatch, PersonA starts the game and takes their turn. They are then waiting for an automatch. PersonB requests an automatch and GameCenter sees that PersonA has started an automatch game, so hands the turn to PersonB. PersonB plays and, for a two player game, GameCenter hands the turn to PersonA. Extrapolating this to additional players is left as an exercise to the reader.
Topic: Graphics & Games SubTopic: GameKit Tags:
Replies
Boosts
Views
Activity
Jan ’26
Reply to GameKit Turn Based Matches Push Notifications
There is something called the MatchMaker ViewController. Your app should open this up - that's where your list of open matches lives.
Topic: Graphics & Games SubTopic: GameKit Tags:
Replies
Boosts
Views
Activity
Jan ’26
Reply to GameKit Turn Based Matches Push Notifications
I believe that if the recipient of the invitation doesn't have the game installed, the invitation comes via iMessage and it sends them to the app store to download the app. When they download the app - there should be a "Match" option/menu that opens the MMVC.
Topic: Graphics & Games SubTopic: GameKit Tags:
Replies
Boosts
Views
Activity
Jan ’26
Reply to MatchMaker VC not showing existing matches after upgrade.
I've released the app in to the app store and the user still has the same problem on his iPad Air 4th generation running iOS 26.2 - he can create turn-based-matches and take his turn, but they do not appear when the MatchMaker ViewController is opened.
Replies
Boosts
Views
Activity
Jan ’26