iOS App Store Submission Guide
Before You Submit
1. Enroll with Apple as an Organization
For your iOS apps, please enroll as an organization (not as an individual) with the Apple Developer Program. Apple requires competition skill-based games to be submitted by organizations, only.
2. Get Production Tester Login
You need to provide Apple with a Skillz Production login so that they can test Skillz related features. This is to make sure Apple can test the functionality in your game. Without a login, your app may be rejected.
A test login you can provide them with is:
- Username:
Apple-tester
- Password: Contact us for the Apple tester credentials or reach out to your Skillz account manager
3. Name Your App
All Skillz based games must be skill-based. Please refer to our recommendations on naming your app so that your app will not be mistaken for a chance-based game.
4. Upload Binaries to Skillz
Within Xcode, click Product -> Archive
. Select your build and click Distribute App
.
Follow the prompts to upload to App Store Connect:
Select Export
as the destination:
Important: Make sure to deselect
Manage Version and Build Number
in the distribution options. Deselecting this prevents Xcode from overwriting your set version and build numbers in the main app and in framework dependencies.
An .ipa
file will be created in you local filesystem. Upload this build to the Skillz Developer Console. Additional information can be found on the Going Live with Skillz page.
Make sure the game binary you upload to Skillz is the same exact build as the one you upload to Apple. If you upload different binaries, Skillz Production will not work as a security precaution against unauthorized software.
Submit Your Game to the iOS App Store
1. Add a New App by Uploading to App Store Connect
Xcode now allows the New App creation to be done automatically by pushing your build up to App Store Connect. See Apple docs here on the simplified process of uploading your build and creating the New App if it doesn't already exist.
Within Xcode, click Product -> Archive
. Select your build and click Distribute App
.
Follow the prompts to upload to App Store Connect:
Select Upload
as the destination:
Important: Make sure to deselect
Manage Version and Build Number
in the distribution options. Deselecting this prevents Xcode from overwriting your set version and build numbers in the main app and in framework dependencies.
2. Enter and Edit App Information
Next, log into App Store Connect using your developer account to access more information about your app:
Fill out all required fields, which include the Name
, Subtitle
, Privacy Policy URL
, and Primary Category
. Again, hover over the ?
icon for more information about a specific field.
Click the Save
button after all required information has been entered.
3. Pricing and Availability
After saving your changes on the App Information
page, navigate to the Pricing and Availability
page if the website did not automatically load it. Set your price to $0
and make your app available in all territories, except for People's Republic of China (China), Republic of Korea (South Korea), and Islamic Republic of Iran (Iran).
As with previous pages, fill out all required information, and hovering over the ?
icon for more details about a particular field.
4. Prepare for Submission
Now, navigate to the "Prepare for Submission" page. This is where a number of items must be completed before being able to submit your app to await approval from Apple.
5. App Privacy Questionnaire
Apple has rolled out a new mandatory developer survey asking for information about what user data is collected by their app and what this data is used for. Responding to this survey is mandatory for all developers who have an app on the Apple AppStore.
To aid developers with games developed on the Skillz platform, Skillz has laid out sample responses to this survey based on the collection and usage of user data in the Skillz SDK.
DISCLAIMER:
The below responses are the Skillz-recommended declarations if your game uses the Skillz SDK alone and does not use any other 3rd-party SDKs aside from Skillz. If you do use additional 3rd party SDKs, you are responsible to understand how those SDKs collect and use user data in order to properly respond to the questionnaire.
Questionnaire Structure
There are two questionnaires that need to be filled out:
- The first questionnaire pertains to WHAT user data is collected.
- The second questionnaire pertains to HOW that data is used.
Responses to the First Questionnaire: WHAT user data is collected
Select Yes to data collection for the following fields for each category:
- Contact info: Select “Name”, “Email Address”, “Phone Number”, “Physical Address”
- Health: Select NONE
- Financial: Select Payment Info ONLY
- Location: Precise AND Coarse location
- Sensitive info: NONE
- Contacts: YES
- User content: Select “Photos or videos”, “Gameplay content”, AND “Customer support”
- Browsing history: NONE
- Search history: NONE
- Identifiers: Select “userID” AND “device ID”
- Purchases: YES
- Usage data: Select “Product interaction” AND “Other usage data”
- Diagnostics: Select ALL
- Other data: NO
Responses to the Second Questionnaire: HOW the data is used
See table below for responses
6. Upload App Previews and Screenshots
Be sure to upload app previews (re: videos) and screenshots for required platforms. Screenshots must conform to the exact dimensions listed for each specific platform. An easy way to meet these requirements is to run your app on the Simulator for a platform and selecting the New Screenshot
item from the File menu:
Here is an example of a screenshot uploaded for the an iPhone with 5.5" screen:
Refer to the App Store documentation for guidelines on how to produce compelling app previews and screenshots in order to create a strong listing for your app.
7. Set Age Rating
- Select
NONE
for all options on the first page:
- Select
No
to containing unrestricted web access andNo
to instances of gambling:
- Select a rating of
17+
and selectRestrict to 17+
. Note that you may see a warning that some countries will not be eligible to sell your app. SelectDone
to complete selections:
8. Version Release Section
It is recommended that the Manually release this version
option is selected in the Version Release section as pictured below:
By controlling when your app is released to the app store, you can ensure that your app's integration with the Skillz SDK has been fully tested, and better coordinate when to publish it on the Skillz Developer Console.
9. Fill Out Remaining Required Fields
Be sure to fill out all remaining required fields. Entering these details are fairly straightforward, so they will not be covered in-depth for this article. Hover over the "?" icons for more information about a specific field.
Below is a list of corresponding areas in App Store Connect for guidance.
App Information
- Name: (30 character limit)
- Subtitle: (30 character limit)
- Category:
- Main: Games
- Secondary: Sports, (plus a genre-specific category)
- Privacy Policy URL: Use your own URL if you have one. If not, use: https://corp.skillz.com/privacy-policy/
- Bundle ID: (unique ID set by the app developer for use in Xcode)
- SKU: (unique ID set by the app developer, not visible on the store)
- Apple ID: (automatically generated by Apple during ITC setup)
- Primary Language: (your app’s main language)
- License Agreement: (This will typically use Apple Standard agreement)
- Rating: (+17 for all Skillz games)
Version Information
- What’s New: (4,000 character limit, used for version updates)
- Promotional Text: (170 character limit)
- Keywords: (100 character limit)
- Description: (4,000 character limit)
- Support URL: Use your own URL if you have one, if not, use https://skillz.zendesk.com/hc/en-us
- Marketing URL: (your company website)
- Screenshots: (marketing images to promote your app)
General App Information
- Copyright: (For an original game, this would normally be your company and the first year it was published)
- Trade Representative Contact Information: (unchecked)
- Company Contact Information: (your own company information)
- Routing App Coverage File: (optional, allows the app developer to specify supported regions)
App Review Information Section
- Sign-in Information:
- Username:
Apple-tester
- Password: go here for obtaining the current credentials
- Username:
- Contact Information: (this contact will be notified of any review issues for follow-up)
- Notes:
- In accordance with Section 5.3.4, skill-gaming competitions (powered by Skillz) are geo-restricted to players located where competing for real money in skill-based games is legal. Because the game also includes free tournaments that do not have cash prizes, the app can be accessed from anywhere but users in prohibited jurisdictions are blocked from entering real money competitions.
- In accordance with Section 3, the game’s multiplayer functionality allows players to deposit money into an account for competing against other players for real prizes (where allowed by law). The deposited money is not a virtual good and cannot be used for the purchase of virtual goods.
- Attachment: (not usually needed)
10. Export Compliance Information
The Export Compliance Information question asks if your game uses cryptography. Choose Yes as the Skillz SDK leverages HTTPS for its traffic.
11. Submit for Review
Click the "Submit for Review" button. It typically takes 24-48 hours for an app to be reviewed. However, this could take longer if your submission has incomplete or missing information.
You can view the status of your app submission in the My Apps
section of the iTunes Connect site.
Please refer to the App Store Review Guidelines for more information, especially if your app submission was rejected.
12. Add App ID to Developer Console
Once your submission is approved, remember to enter your app's App ID
in the Skillz Developer Console for your app.
Handling Submission Rejections
In the event that your submission is rejected by Apple, please refer to this article on common App Store rejections, and recommended responses.
Note on Apple Silicon Macs
The Skillz SDK does not yet support running apps on the the Apple Silicon Macs. Apple makes your app available to this platform by default. In App Store Connect go to the General -> Pricing and Availability section and then un-check the “Make this app available” under the iPhone and iPad Apps on Apple Silicon Macs. Save the change with the button at the top right.