KeyboardKit / KeyboardKitPro

KeyboardKit Pro helps you create custom keyboards for iOS and iPadOS.
https://keyboardkit.com
Other
110 stars 8 forks source link

Appstore upload issue: ITMS-90683 issue: NSSpeechRecognitionUsageDescription #3

Closed evilutioner closed 1 year ago

evilutioner commented 1 year ago

I was unable to upload to Appstore my application with new version of KeyboardKitPro.

The affected versions: 7.4.1 and 7.5.0 No affected versions: 7.1.3 and 7.2.2

You can’t upload the application to Appstore/Testflight, I get a refusal with the following Appstore message:

We identified one or more issues with a recent delivery for your app, [App Name]. Please correct the following issues, then upload again.

ITMS-90683: Missing purpose string in Info.plist - Your app's code references one or more APIs that access sensitive user data, or the app has one or more entitlements that permit such access. The Info.plist file for the "[app name]" bundle should contain a NSSpeechRecognitionUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. For details, visit: https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources.

I am not using speech recognition in my app and not want to add to declare it.

danielsaidi commented 1 year ago

Hi @evilutioner

Oh, this is because I added dictation to the library. I didn't realize it would give this warning. I will try to redesign this so those keys aren't needed.

danielsaidi commented 1 year ago

Hi again @evilutioner

This is strange. I tried removing the required Info.plist keys before uploading the app I'm working with, and this still works:

image

However, I later received notifications that the binaries are invalid. Was this what happened to you too? In that case, I will try making the permission block configurable so that you have to provide the function yourself.

danielsaidi commented 1 year ago

Ok, I have a solution now, where I have extracted the Speech framework stuff from the dictation service, in a way that lets me take it out of the library and remove these invalid binary warnings.

Any ideas where I could best place this Speech-specific thing would be greatly appreciated.

danielsaidi commented 1 year ago

I have tried using the updated design in my upcoming keyboard app, and can now submit to the App Store without the keys. 👍

I will publish this as a first 7.6 release candidate, which will let you try out the updated behavior. I will however add more stuff to this release before it goes live.

danielsaidi commented 1 year ago

KeyboardKit Pro 7.6 is out now, and fixes this problem. Sorry for the inconvenience!

evilutioner commented 1 year ago

@danielsaidi Awesome, thanks for sorting it out so quickly! Cheers for getting on top of this.

danielsaidi commented 1 year ago

@evilutioner Thank you for letting me know about this problem 🙏