Discussion in 'GameMaker Studio 2 Community Tech Support' started by matharoo, Oct 1, 2019.
App Store Connect has sent me these warnings for my app:
How can I fix these with GameMaker?
I haven't yet done this because I'm waiting for full release before updating my app, but I believe you will need to (1) go into GMS2's File > Preferences > iOS and check "Suppress build and run", then (2) add the NSBluetoothAlwaysUsageDescription key to your project's [projectname]-info.plist in Xcode before building from Xcode.
You'll find the plist keys by clicking around your project in Xcode, but if you can't find it, check these docs:
I'm not at my mac or I'd provide step-by-step instructions. If you still have trouble, post again, and I'll take a closer look.
Edit: You should also submit a bug report to YYG to encourage them to figure out what's asking for bluetooth and to add functionality to GMS2 either to suppress that request (if possible) or at least to build usage descriptions into the IDE.
Instead of having to add the key to explain why the app uses Bluetooth (which it doesn't require), is there no way to disable Bluetooth for the app? My app doesn't use it, but it does use TCP networking. Could that be it?
Or maybe this is something that YYG needs to fix... I have no idea.
Edit: Well, it seems like the Info.plist file resets on each build. So editing that file itself isn't a solution, unless I want to edit it for each build... which I don't.
@matharoo I added the key (NSBluetoothAlwaysUsageDescription) and string value (explanation) to both my [app]-info.plist and info.plist, and I still got the warning. Either I did something wrong or there's a bug with Apple here (doubtful, since this has been in place for a while). Please let me know if you resolve it, even with a single build.
I don't believe there's a way to bluntly suppress asking for bluetooth permission. Are you using an extension for Google Ads / AdMob? I theorize that this is the functionality calling for bluetooth permission, but I'm not sure. If you are not using ads, that knowledge would be helpful to narrow this down.
And, as I said, please submit a bug report so YYG recognizes this as an issue.
Okay, I'll let you know the next time I try.
Nope, but I am using Google Analytics, if that matters. I also have the Google IAP and Google Licensing extensions (they're added by default with the GPS extension, I don't even use them). Maybe I could try removing them...
Now I wasn't even able to upload any builds because of the NSBluetooth error. So I went into Info.plist (and [app]-Info.plist) and added NSBluetoothAlwaysUsageDescription, along with NSBluetoothPeripheralUsageDescription (it showed up in the drop-down list). Now I can upload my builds.
Since I added both of these keys in my only test, I'm not sure which one did it. But since you said that adding NSBluetoothAlwaysUsageDescription did not work you, I suggest you try out NSBluetoothPeripheralUsageDescription.
NSBluetoothAlwaysUsageDescription did work for me. I'm not sure what I did wrong previously, but this time two different things were different: First, I added the key/value to both info.plist and [app-name]-info.plist. Second, when I added that key this time, the key name automatically turned into a plain-English description, "Privacy - somethingorother." Before, it didn't, it just stayed "NSBluetoothAlwaysUsageDescription." Maybe I had an extra space or something.
You probably had "Show Raw Keys/Values" disabled. You can toggle that through the right-click menu in a plist file. So, that doesn't really change anything, except for how the key names are displayed in Xcode.
Edit: Do you also get this error?
ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs . See https://developer.apple.com/documentation/uikit/uiwebview for more information.
Yes, I posted about it here. There were two other threads as well. I submitted a bug report to YYG with what I could find through my own research, but YYG does not seem to have created a bug for it.
Please submit a bug report so YYG recognizes it as a priority.