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.
Post
Replies
Boosts
Views
Activity
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?
Is there a better way to test expired matches using Game Center other than wait 7 days ( minimum expiration interval ) and see results? That is incredibly time consuming especially if you find bugs in your code. Does Apple provide anything to help with this?
I re-posted to fix format issues as neither edit nor remove seems to work. However I am not able to delete this post.
Please check the latest version of this post with the same title and also posted by playbrainiacs. Thanks.
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.
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?
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.
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?
The exact error reported is :
CGImageSourceGetStatus:4839: *** ERROR: invalid CGImageSourceRef (non-matching hint)
at runtime.
The app is using static images included in the bundle and loads image views. It works fine and has no image errors. Is this log noise?
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 :)
Hi
I tried to find this in Guideline review docs but was unable to.
If I have links in my App to non-shop pages such as an "About" page or "Privacy policy" page or "Ask Support" form etc. would those links be rejected in App Review for US distribution?
Thanks in advance!
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!!