Skip to content

Commit 241f07b

Browse files
Added section about API descriptions and tidy up some of sections.
1 parent 5200121 commit 241f07b

File tree

1 file changed

+40
-33
lines changed
  • articles/tutorials/advanced/MobileDeployment/06_publishing_ios

1 file changed

+40
-33
lines changed

articles/tutorials/advanced/MobileDeployment/06_publishing_ios/index.md

Lines changed: 40 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ Versioning of game:
109109

110110
Typical settings for a game:
111111

112-
```
112+
```xml
113113
<key>UIRequiresFullScreen</key>
114114
<true/>
115115
<key>UIStatusBarHidden</key>
@@ -118,36 +118,37 @@ Typical settings for a game:
118118

119119
API descriptions:
120120

121-
```
122-
<key>NSBluetoothAlwaysUsageDescription</key>
123-
<string>This permission is not used by the app.</string>
121+
If your game uses any additional API's or API's are pulled in from libraries, then the following descriptions need to be added to define your usage. If you're not using them, then you need to identify the library being added and determine if you need this.
124122

125-
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
126-
<string>This permission is not used by the app.</string>
123+
```xml
124+
<key>NSBluetoothAlwaysUsageDescription</key>
125+
<string>This game uses bluetooth because...</string>
127126

128-
<key>NSLocationWhenInUseUsageDescription</key>
129-
<string>This permission is not used by the app.</string>
127+
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
128+
<string>This game is location information because...</string>
130129

131-
<key>NSCalendarsUsageDescription</key>
132-
<string>This permission is not used by the app.</string>
130+
<key>NSLocationWhenInUseUsageDescription</key>
131+
<string>This game is location information because...</string>
133132

134-
<key>NSSiriUsageDescription</key>
135-
<string>This permission is not used by the app.</string>
133+
<key>NSCalendarsUsageDescription</key>
134+
<string>This game uses calendar information because...</string>
136135

137-
<key>NSMicrophoneUsageDescription</key>
138-
<string>This permission is not used by the app.</string>
136+
<key>NSSiriUsageDescription</key>
137+
<string>This game uses Siri because...</string>
139138

140-
<key>NSContactsUsageDescription</key>
141-
<string>This permission is not used by the app.</string>
139+
<key>NSMicrophoneUsageDescription</key>
140+
<string>This game uses the microphone because.</string>
142141

143-
<key>NSAppleMusicUsageDescription</key>
144-
<string>This permission is not used by the app.</string></dict>
145-
```
142+
<key>NSContactsUsageDescription</key>
143+
<string>This game uses contacts because...</string>
146144

145+
<key>NSAppleMusicUsageDescription</key>
146+
<string>This game uses Apple Music because...</string></dict>
147+
```
147148

148149
## Asset Compilation Target
149150

150-
Ensure your iOS project includes the asset compilation target:
151+
Ensure your iOS project includes the asset compilation target. This is currently required for MonoGame projects to get the AppIcons and assets included in the bundle.
151152

152153
```xml
153154
<Target Name="CompileAssets" BeforeTargets="_CompileAppManifest" Condition="$([MSBuild]::IsOSPlatform('OSX'))">
@@ -158,13 +159,16 @@ Ensure your iOS project includes the asset compilation target:
158159

159160
## Creating Game at App Store Connect
160161

162+
Once you're ready to publish your game to TestFlight or the AppStore, following these steps:
163+
161164
1. **Log into App Store Connect** at [appstoreconnect.apple.com](https://appstoreconnect.apple.com)
165+
162166
2. **Create New App:**
163-
- Platform: iOS
164-
- Name: Your app's marketing name
167+
- Platform: **iOS**
168+
- Name: _Your app's marketing name_
165169
- Primary Language: English (or your primary market)
166-
- Bundle ID: Must match your project's `BundleIdentifier`
167-
- SKU: Unique identifier for your records
170+
- Bundle ID: Must match the `BundleIdentifier` of your game.
171+
- SKU: Unique identifier if you were to create a series of games.
168172

169173
## Screenshots and Media
170174

@@ -180,25 +184,26 @@ You need screenshots for each of the following devices:
180184

181185
### App Preview Videos (Optional)
182186

183-
Although optional a video to demo your game will certainly appeal to the audience.
187+
Although optional, a video to demo your game will certainly appeal to the audience.
184188

185-
- 30 seconds maximum
186-
- Same dimensions as screenshots
187-
- Shows actual app gameplay
189+
- Create a 30 seconds video showing features and market your game.
190+
- Try and show actual gameplay and advertise features and any unique play.
188191

189192
## Building and Uploading using Terminal
190193

191-
The creation of an IPA file can be achieved on the terminal. Currently, Rider does **not** support this part of the process.
194+
The creation of an IPA file can be achieved using the **Terminal** app. Currently, Rider does __not__ support this part of the process.
192195

193196
```sh
194197
dotnet clean
195198
rm -rf bin/ obj/
196199
dotnet publish -c Release -f net8.0-ios -r ios-arm64 -p:ArchiveOnBuild=true
197200
```
198201

202+
This will create an IPA file in your publish folder which you can upload to the AppStore.
203+
199204
## Upload Method using Transporter
200205

201-
- Standalone upload tool from Apple can be found in the **Applications** folder.
206+
You can use the **Transporter** tool to upload your IPA file and that can be found in the **Applications** folder.
202207

203208
| ![Figure 4-1: Transporter](images/ios/transporter.png) |
204209
| :----------------------------------------------------------------------------------------------------------------------------------------: |
@@ -226,13 +231,15 @@ The process can take a few moments to happen, but switching to the AppStore to w
226231
| :----------------------------------------------------------------------------------------------------------------------------------------: |
227232
| **Figure 4-5 Encryption Dialog** |
228233

229-
**Tip:** If you want to skip the Encryption dialog box altogether because you do not use encryption in your game, simply add this to the **info.plist** file.
234+
**Tip:** If you want to skip the "Encryption" dialog box altogether and streamline the process and because you do not use encryption in your game, simply add this section to your **info.plist** file.
230235

231236
```xml
232-
<key>ITSAppUsesNonExemptEncryption</key>
233-
<false/>
237+
<key>ITSAppUsesNonExemptEncryption</key>
238+
<false/>
234239
```
235240

241+
Finally, add your testers and test information and they will receive your updated game (via Testflight or Store).
242+
236243
| ![Figure 4-6: Assign Testers](images/ios/testflight-build-assign-testers.png) |
237244
| :----------------------------------------------------------------------------------------------------------------------------------------: |
238245
| **Figure 4-6: Assign Testers** |

0 commit comments

Comments
 (0)