Posts

Post not yet marked as solved
0 Replies
770 Views
I've got a Mac Mini running as a CI/CD server; it's a game project, and every time we push a change to the repo, the server creates a build & uploads it to TestFlight. I've noticed that after running the server for around a week or so, the main drive is getting filled to the point of the machine becoming unresponsive (and our builds failing). After some investigation, I've determined that /private/var/folders/ is getting filled up with... something, related to the Xcode build/archive. It seems like we absolutely do not need this information, so I've periodically run rm -rf /private/var/folders/* to clean it out – some folders are permission-protected, but regardless, I'm able to recover >100GB with this method. Although this workaround does suffice, I'm just wondering what kinds of files Xcode is creating here, and whether there's a cleaner/best-practice method to remove them.
Posted
by nrudzicz.
Last updated
.
Post not yet marked as solved
5 Replies
1.7k Views
Hi, I'm using the Unity plugins to access Game Center; there's a button in our UI that I want to use to open the Game Center dashboard on a particular leaderboard. The code for that is as follows, adapted from the GameKitSample.cs file: var leaderboard = leaderboards.First(l => l.BaseLeaderboardId == MY_LEADER_ID); var gameCenter = GKGameCenterViewController.Init(leaderboard, GKLeaderboard.PlayerScope.Global, GKLeaderboard.TimeScope.AllTime); await gameCenter.Present(); // game never returns from here Debug.Log("Back from Present()..."); gameCenter.Dispose(); I can play the game, hit the button, and view the Game Center dashboard, opened to the given leaderboard as expected. However, when I quit the dashboard (hitting the X in the top-right corner), the dashboard fades out, but the game is now unresponsive. I did notice that elsewhere in GameKitSample.cs, we have the following: var match = await GKMatchmakerViewController.Request(request); match.Delegate.DidFailWithError += OnRealtimeMatchDidFailWithError; Digging around for help with GKGameCenterViewController, I did notice that most solutions involve giving the viewcontroller a callback, but in the Unity plugin I see no Delegate listed for GKGameCenterViewController. Is this class missing the delegate, & therefore missing the callback that would dispose of the view?
Posted
by nrudzicz.
Last updated
.
Post not yet marked as solved
0 Replies
556 Views
I'm currently developing a game across all Apple platforms (iOS, macOS, & tvOS). External QA found an issue where one of our libraries does not work on iOS 13 devices; however, all my in-house devices are iOS 14 or later. Is there a way or a best practice to install a much older version of iOS on an iPad Mini 4? I know some images are hosted at IPSW dot me; but those require jailbreaking the device. There are also some images hosted on the Apple developer portal here, but they don't go far enough back to cover iOS 13; likewise, I cannot find iOS 13 listed in the full downloads listing. Is there really no (acceptable, legal) way for developers to install an older version of iOS on a device for testing? I've seen other threads asking the question, but no real acceptable answers...
Posted
by nrudzicz.
Last updated
.
Post not yet marked as solved
0 Replies
925 Views
So according to this doc, recurring leaderboards have the following limitations: Leaderboards have a minimum recurrence of five minutes, a maximum recurrence of 30 days, and are not allowed to overlap. Accordingly, when configuring our leaderboard, we can only set "Duration" & "Restarts Every..." values in terms of minutes/hours/days. Is there no way to get a monthly leaderboard that lines up with the start & end of each individual month? As in, 31 days in January, 28/29 in February, &c. &c.? Given the information above, I assume the only way would be to somehow... automate the process of reconfiguring the leaderboard's duration "on the fly" to match the current month, but I'm not even sure if that's possible when the boards are Live. Has anyone gotten their leaderboards to recur once every calendar month (matching variable number of days)? If so, how?
Posted
by nrudzicz.
Last updated
.
Post not yet marked as solved
0 Replies
969 Views
Both the App Store Connect Help page and the Game Center Programming Guide reference "combined" leaderboards, which can be a sort of filter built of multiple independent leaderboards. However, I can't find any documentation on how to actually create & configure combined leaderboards. I've created several individual leaderboards in our project, with identical unit types & sort options, but I've never seen the option to set up a new leaderboard as a combined one.
Posted
by nrudzicz.
Last updated
.
Post marked as solved
3 Replies
3.3k Views
We're building a game for macOS, but during testing have noticed that it takes a long time between double-clicking the icon, and the actual launch of the game. During that time, we can see that XprotectService and syspolicyd are both running at 100% CPU. It takes on the order of several minutes for the actual game to launch. I understand that this is due to the newly-introduced Gatekeeper system: since we haven't notarised the game, the system kicks in to verify the app when it's launched. However, the (up to 10) minutes-long delay is significantly impacting our internal testing process. Further, it seems a bit much to build the game, then run a series of command line tools to upload the build, wait for a response, download & staple the ticket to our app, and then distribute it to our own internal developers, simply in order to test minor functional changes to the app. Is there some way around notarisation and the launching delay introduced by Gatekeeper, if we're simply building an app to test internally? Similar to signing with a development certificate & profile?
Posted
by nrudzicz.
Last updated
.
Post not yet marked as solved
0 Replies
600 Views
I've recently started testing our game on macOS, and was hoping to send out code-signed builds so my coworkers can test some of the Apple services we're using (i.e., iCloud). I've registered all of my coworkers' various Macs through the developer portal, created a Development certificate, and created a provisioning profile that includes all those devices, and the appropriate certificate. I was having a problem, however: one of my coworkers was able to launch the game, while another wasn't – the app would crash, and the crash log would mention a code-signing error. Ultimately, we were able to solve this by having this latter user install the provisioning profile, which I'd used to build the app, on their machine. Once that was done, they could launch the game without issue. (The other tester was also actively developing the game, and thus already had the profile installed on their system as well). But this sort of goes against my understanding of the whole process of registering devices and creating certificates & profiles. As I understood it, so long as the user's device (its UUID) was registered on the dev portal, and included in the provisioning profile, this would be enough for them to run the game without any further work on their end. Is there some reason why the tester would have to install the provisioning profile in order to launch the game? I'll note that this is a game for Apple Arcade, in case that requires a bit of extra signing/provisioning.
Posted
by nrudzicz.
Last updated
.
Post marked as solved
1 Replies
632 Views
Heya,We came across an interesting gotcha while submitting a game for review on the Mac App Store. Basically, our sandboxed app was missing two entitlements: com.apple.security.device.bluetooth and com.apple.security.device.usb. Ultimately, this meant that testers on ASC couldn't use controllers to play the game.On our end, the build we delivered to ASC via Transporter couldn't be played (afaik): being signed and sandboxed, the game would crash out on launch. However, the debug builds we made – which weren't sandboxed – were completely playable, and controllers were working.This put us in a tricky spot: our debug builds ran fine, but we couldn't test the sandboxed app which was where the game was breaking, or verify our fix of the problem.Is there a documented way to test signed & sandboxed apps like this on macOS? I haven't been able to find the information searching these forums or elsewhere.
Posted
by nrudzicz.
Last updated
.