Apple now requires you to specify the reason for requiring the use of some APIs. This is done through a PrivacyManifest tag which can be inserted through an extension (see: Code Injection in the GM Manual).
Note: This is only supported in GameMaker 2024.4 and above, when using Xcode 15 and above
To provide the reasons, create an extension asset in your project, and click on iOS under Platform Settings. Then add your reasons in the Code Injection text area inside the YYIosPrivacyManifest tag group:
<YYIosPrivacyManifest>
...
</YYIosPrivacyManifest>
For Tvos, use the YYTvosPrivacyManifest tag group:
<YYTvosPrivacyManifest>
...
</YYTvosPrivacyManifest>
Here is an example:
<YYIosPrivacyManifest> <key>NSPrivacyAccessedAPITypes</key> <array> <dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategoryDiskSpace</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>E174.1</string> </array> </dict> <dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategoryUserDefaults</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>CA92.1</string> </array> </dict> <dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategoryFileTimestamp</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>C617.1</string> </array> </dict> <dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategorySystemBootTime</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>8FFB.1</string> </array> </dict> </array>
</YYIosPrivacyManifest>
Note: You can use this website to generate a privacy manifest.
Let's look at the first <dict> block:
<dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategoryDiskSpace</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>E174.1</string> </array> </dict>
Under the key NSPrivacyAccessedAPIType we are specifying the API type we are using, which is NSPrivacyAccessedAPICategoryDiskSpace.
Under the key NSPrivacyAccessedAPITypeReasons we are providing the reason for using that API - E174.1 - which is described on this page.