My application got rejected with the following reason -
Guideline 4 - Design
- Your app's permissions requests are written in Ukrainian while the app is set to the Romanian localization. To help users understand why your app is requesting access to a specific feature, your app's permission requests should be in the same language as your app's current localization.
The application is required to have both Romanian(Language A
) and Ukrainian(Language B
) localisation support. The application strings are localised in a usual way, nothing special - a Localizable.strings
file with 2 languages support - A and B
. It works well, no objections. When I change the app language from the iOS settings - all is good.
But, the issue arise(as Apple says) when I do an app permission alerts localisation. My application is using both camera and location(showing the embedded map view) permissions. To achieve this kind of localisation I'm using the all known approach of putting the InfoPlist.strings
file in my app where it's basically just localising those 2 permission to an A and B languages.
/* Camera permission usage description */
"NSCameraUsageDescription" = "...";
/* Location permission usage description */
"NSLocationWhenInUseUsageDescription" = "...";
So, the behaviour now is that the app is getting localised with the language that is set in iOS settings for the app while the app permission alerts are getting their language as the iOS system preferred language. Means if I have an iOS device running on language A
but set my application to run on language B
, the app will actually run language B
but those camera and location permission dialogs will be running on language A
.
And I see no problems with that, it's obvious that the iOS is showing you those system alert on your preferred language. But now my app gets constantly rejected with the demand that the app permission alerts should also be running on the language B
as the rest of the app.
So, how can I achieve this? Maybe I'm doing something wrong? Both localisation files seems to work since I'm able to reproduce the cases iOS - B, app - A and iOS - A, app - A
.
Or maybe I'm just too stupid and misunderstood what Apple is trying to say? I can share the message history here if needed, but basically they are just saying:
Upon further review, we continue to find that the app's location permission request is written in Ukrainian while the app is set to the Romanian localization. Please note that your app's permission requests should be in the same language as your app's current localization.
Update:
Apple review reply on 03.05: