moko-permissions
moko-permissions copied to clipboard
AppStore connect rejects due to undescribed permissions
We've just been denied publishing to App Store Connect due to missing descriptions of permissions we do not use. We only use the location and coarse location permissions in the application. However we are asked to add description for NSContactsUsageDescription, NSMotionUsageDescription and NSBluetoothAlwaysUsageDescription.
Apple says this: "While your app might not use these APIs a purpose string is still required."
One way to fix this is by adding the values in info.plist, but doing this the app description will include permissions it does not use in the AppStore.
in our apps we just add mock description inside Info.plist and all ok.
someday library will be splitted by each permission, but now you can do same that we do.
it will not accept in review app
@the-best-is-best we have multiple apps that successful pass review.
Well, what do you add to the string description for permissions in the plist information that you don't need?
@theHonzic
Are u adding it but the string is empty or what ?
@the-best-is-best feel free to use my fork with contacts, motion and bluetooth removed: https://github.com/MeLlamoPablo/moko-permissions
You can import it as a git submodule, and then on settings.gradle.kts
add:
includeBuild("./external/moko-permissions") // path to your submodule
Then, you give it a different version name, like 0.18.0-slow
in my case, and use it in your libs.versions.toml
. Note that you may need to update some build settings from moko-permissions to make it work with your local gradle build. In my case I had to use the same version of Android Gradle Plugin, update to Gradle 8 and add jvmTarget = "1.8"
to both moko-permissions
and moko-permissions-compose
.
@Alex009 if you're willing to accept PRs, I'm happy to help with the package splitting. I assume we would want to create different packages for each iOS permission controller, and then have a way of "installing" them on factory.createPermissionsController
. Otherwise, please let me know an alternative approach and I'll be glad to code something!