Post

Replies

Boosts

Views

Activity

GameKit - Turn based matches, "matchEnded" notification does not include up-to-date matchData
Wondering if anyone has come across this one. I could not find the expected behavior listed on any documentation anywhere. I do need to understand the expected behavior first though. Thanks in advance.  I can work-around it but I prefer to know what the expected functionality is supposed to be. Steps to reproduce: Set up a GKTurnBasedMatch for two player turn based games Players  use the GKTurnBasedMatchMakerViewController view (Apple's native functionality) to manage their matches as I have not invested in a custom UI for that at this time. This is why I need to make sure all available functionality is interpreted correctly for my game players. 3.  Player1 decides to remove ( by sliding right on the match and choosing remove)  a current match  Player2 correctly receives the player(_ player: GKPlayer, matchEnded match: GKTurnBasedMatch) notification . However the matchData is incorrect/incomplete. The match data is providing some elements of the match data ( custom to the match) but missing on the turn information provided via matchData at each turn. Making it seem as though Player1 quit on the very 1st turn instead of whichever turn they actually removed the match.  I can attach debug logs and code snippets to show how matchData is parsed ( simple character separators and predefined tags in string form) however, the same code works for every other scenario ( initiate match, accept invite, take turns, win/lose/draw etc.)  the turn right before the remove shows correct matchData I checked for initialized structs etc, but the code is simply parsing matchData string first and printing it out. This where I notice the miss. Thanks in advance.
0
0
896
Nov ’22
Removing open match using Game Center functionality - why?
Per Apple documentation "remove match" functionality is for removing ended matches from Game Center to reduce clutter. Forfeit helps a player resign a match gracefully. Why is "Remove" match and/ slide left to remove match functionality enabled on Game Center for open/ not ended matches ? If I choose to not customize Game Center functionality for my game, it can confuse players. Any thoughts?
2
1
1.1k
Jan ’23
GKLocalPlayer.local.isMultiplayerGamingRestricted not representing all relevant scenarios?
I need clarification on the GKLocalPlayer.local.isMultiplayerGamingRestricted behavior which check's user's device capability (whether it is set up to allow or disallow multiplayer) I am referring to this from Apple documentation at : https://developer.apple.com/documentation/gamekit/authenticating_a_player if GKLocalPlayer.local.isMultiplayerGamingRestricted { // Disable multiplayer game features. } The issue is that this is a boolean (true/false value ) However I have noticed that iOS ( latest version and preceding versions) allow people to have the following options: ( you can set these under screen time -> content restrictions -> Multiplayer games ) Disallow all multiplayer games - presumably your API returns a false for this. Allow multiplayer with friends only -???? what does GKLocalPlayer.local.isMultiplayerGamingRestricted return here?? if True, how is the Friends only restriction handled? Are we supposed to do something to force it? Note: So far I am relying on Apple's Game Center native experience and have not added wrappers to do additional filtering etc. I hope that I shall be able to keep doing so. Allow all multiplayer games - presumably your API returns a false for this. You can see how there are three choices but this is modeled as a boolean. Choice number 2. is not addressed. Has anyone come across this? Note: This is very different from checking for underage users. No matter what I do, in my post above, it won't set the correct numbers for numbered bullet -points. I call them 1, 2, 3 it posts 1,1,2 or 1.,2,1 etc. ( side nit ) Apologies if this isn't as readable as it should be.
1
0
1.4k
Mar ’24
Problems post factory reset of Mac ( Xcode )
Hi I have had severe malware issues recently and need to factory reset my Mac. I may have to reinstall the OS as well in case it has a root-kit. This means I cannot use any standard backups ( Time Machine etc.) and will manually recreate my user setup on the Mac. Will reinstalling Xcode and downloaded signing certificates from my developer account work ? Are there other things to consider ? I will recreate my user ( assuming the uid will be the same as well ) Has anyone tried this before? What is your experience with it?
3
0
926
Mar ’24
Game Center Notifications do not include GKMessageImage.png
Hello, Asking the following as, I was unable to find answers via search on the forum and in the documentation: Invitations sent via iMessage seem to work correctly with my custom image ( GKMessageImage.png ) however, notifications sent to Game Center Friends via invites generated in Game Center do not include the custom image ( GKMessageImage.png ). Questions: Is this expected behavior? Is there a different way to customize the image in the notification? Note the Game Center notification includes the App name correctly. I also noted in the WWDC session in 2016 ( saw video recently ) that there was some mention of no longer adding friends via Game Center. Is that currently true? Thanks in advance.
1
0
528
Jul ’24
On Log Noise - Debugging
I came across several "errors" being reported when I run my app, however my app seems to function correctly. I believe they fall in the category listed on this ( now locked ) thread https://developer.apple.com/forums/thread/115461 However, I wanted to post the ones I found to clarify ( close to submission) just in case any of these end up being more than just log noise later. PLEASE let me know if you've come across these before and whether they impacted anything or if you can confirm they are just log noise. Thanks in advance! -[RTIInputSystemClient remoteTextInputSessionWithID:performInputOperation:] perform input operation requires a valid sessionID. inputModality = Keyboard, inputOperation = , customInfoType = UIEmojiSearchOperations AVAudioSession_iOS.mm:2,223 Server returned an error from destroySession:. Error Domain=NSCocoaErrorDomain Code=4099 “The connection to service with pid 102 named com.apple.audio.AudioSession was invalidated from this process.” UserInfo={NSDebugDescription=The connection to service with pid 102 named com.apple.audio.AudioSession was invalidated from this process. CAReportingClient.mm:532 Attempted to remove a reporter not created by this client { careporter_id=408,331,130,765,320 } load_eligibility_plist: Failed to open //private/var/db/os_eligibility/eligibility.plist: Operation not permitted(1) - I verified and this file is indeed in non read mode on my Mac for the user. However it affects nothing. The following 2 pop up - although I have no explicit code or 3P code ( nor Ads) that require impressions - each time I click on the Game Center Access Point post authentication. Cannot add impressions because no tracker is specified by the metrics fields context. Did you forget to set one from your view controller or data source? Cannot add page fields because none are specified by the metrics fields context. Did you forget to add an PageMetricsPresenter to the object graph used for actions?
1
0
470
Aug ’24
Inexplicable Fence Hang
Hello, My App is getting a Fence hang right after install in a specific scenario. Issue1: I attempted to follow the directions, tried to symbolicate the file etc. however did not have much luck. I was able to pinpoint the lines of code where the hang seems to occur. I did this using simple print and comment out/uncomment blocks of code related to the specific scenario. I was able to do so as, not much is happening on the Main thread in this scenario . Issue 2: The following lines of code ( modified var etc. ) seem to cause the hang. Commenting them out gets rid of the hang across devices, while online/offline etc. I am not sure if I need to use a framework other than AVFoundation. Note: The file extension is mpg The music files are static ( included in the Bundle ) and not accessed from user's playlist etc. import var plyr : AVAudioPlayer? let pth = Bundle.main.path(forResource: "MusicFileName", ofType: "mpg")! let url = URL(fileURLWithPath: pth) do [{](https://www.example.com/) plyr = try AVAudioPlayer(contentsOf: url) plyr?.prepareToPlay() plyr?.play() } catch { // print error etc. } Thanks in advance. I would appreciate some help! Close to submission :)
6
0
463
Sep ’24
Build options in Xcode
I have a few questions on build options. Deployment post processing - is this for Mac apps? Or is it a setting for Xcode ? Does "Symbols hidden by default" set to yes enable symbolicated crash dumps? Can "Product name" and "Product module name" be different from bundleID component? Generate_Info_Plist is set to no. Will the Application Category value be reflected if there is no Info_plist file generated? I notice in my tests that the category is always wrong and defaults to team name. Privacy - GameKit Friend List Usage Description should this be yes or no if I am using Apple suggested privacy preserving scoped identifier gamePlayerID? Install Group/Permissions/Owner are these referring to setting in Dev environment or are these Mac App Only settings? ( I was not sure if iOS like Unix, has system users exposed at this high level anyway ) How do I export copy of existing build settings to a xconfig file? There was talk of a tool not sure if it is still available. For my TestFlight build for stress testing , what options would you recommend to help debug and trace easily ? Note I have tested the build with various Address Sanitizer, Memory Sanitizer, Guard malloc etc. options enabled to prep but haven't turned any of those on for the test build. Should I be enabling some? ( Some do not work together ) Alternately, if there is a document or video that addresses all of the above please let me know! Thanks in advance!!
2
0
196
Oct ’24
Performance 2.3.3 Metadata reason for App review error
I am trying to understand the 2.3.3 section as it was cited as an issue with my submission for an iOS App. "2.3.3 Screenshots should show the app in use, and not merely the title art, login page, or splash screen. They may also include text and image overlays (e.g. to demonstrate input mechanisms, such as an animated touch point or Apple Pencil) and show extended functionality on device, such as Touch Bar." I have provided some iOS screens for showing a stage of one game being played. However my App includes 5 games and 4 modes of play. Should I include similar screenshots for each game? I fear I may run out of screenshots. Could using videos help? I believe we are restricted to 3. Do I need to show screenshots for the App on iPad ( it is not Universal ) ? The input mechanism is a text field next to a submit button. Do I have to highlight/overlay the same? If I do the above, is it okay/recommended to skip the info page, Home Screen which neatly shows all modes and the next screen which compactly shows all the games, example of dark mode , achievements and leaderboards? Is there some other thing I should consider here? I was asked to check on Support Forum first. I am in the midst of an App Review. Please advise!! Thanks in advance.
2
0
165
2w