This article contains information about the Skillz binary upload process that every publisher must go through in order for their game to work in the Skillz production environment. This must be done before submitting your app to Apple, or else Skillz will not work properly.
What is a game binary?
When we say game binary, we are referring a .ipa file that runs on iOS devices, and which you will eventually submit to Apple. Skillz accepts .ipa files as valid game binaries; any other type of file will not be accepted.
Why do I need to give Skillz my game binary?
You must upload your game binary to Skillz in order for your game to work in Skillz production. This is a security measure that prevents fraud and users from taking advantage of the system.
How does uploading a game binary protect my game?
Each game binary contains a unique fingerprint ID inside of it. Any time your game sends a request to the Skillz production server, the game binary also sends its unique fingerprint to the server for authentication. Then we compare the incoming fingerprint to the fingerprints of any game binaries that have been uploaded to our server from your game. We will only serve the incoming request if the fingerprint it is signed with matches a fingerprint on our server.
This prevents other people from sending fake requests to our server pretending to be your game, which could allow people to cheat and steal other players money. Using game binaries ensures that only requests coming from your actual game will work with Skillz.
How do I make a game binary?
You can create binaries of your game through XCode.This can be done by first creating an archive by selecting Product -> Archive and then exporting with the Save for Ad Hoc Deployment option. Further documentation on .ipa creation can be found in Apple's documentation.
Does it matter how my game binary is signed?
No. How you sign your binary (with which provisioning profile, for ad hoc deployment or for app submission) does not affect the unique game binary fingerprint. Each archive that you create in XCode will have a unique fingerprint. Every .ipa that you generate from a particular XCode archive will have the same fingerprint, regardless of how it is signed.
When do I need to upload a game binary to Skillz?
You need to upload an initial binary to Skillz after your game is fully integrated with the Skillz SDK, you have switched to SkillzProduction mode, and are ready to test in production and submit to the app store. After that, any time you update your game and re-submit to the app store, you will also need to submit another binary to Skillz. You can upload any number of game binaries to Skillz; we will check each one you upload when validating requests sent to the Skillz server.
How do I test whether the binary I uploaded works?
In order to test whether your game works in production after uploading a binary to Skillz, just run the game and try to enter Skillz and play a game. If your game doesn't match any binaries you've uploaded, you will quickly see the error 'Skillz Activation Failed' for iOS and 'Invalid Client Serve Request' for Android. This means the request you sent to Skillz did not match any fingerprints we have.
For additional information please refer to the Activation Error Failed page..