-1

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.

enter image description here

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.

enter image description here

/* 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:

enter image description here

  • Did you check some tricks from [here](https://stackoverflow.com/questions/30454382/nslocationwheninuseusagedescription-localization-using-strings-file-not-working/33423565#33423565) – Ptit Xav Apr 29 '22 at 20:31
  • @PtitXav I did but with now luck. Actually, there is a different problem described there - a localisation files are now affecting the app. This is not really my case, since both `Localizable.strings` and `InfoPlist.string` to affect an app, since the language on both app and permissions is changing once I switch the iOS language(changes permission alerts) or app language(changes app language). But I need the app language switch to affect both app and permissions (As Apple says) – Stepan Valchyshyn May 01 '22 at 18:16
  • 1
    Did you ask for help in your particular case to the review team : this may be a iOS bug. I tried with Apple Weather App : set it in English on French device :, message is in French. Saving setting app to corean language. I think you can try and explain them that . – Ptit Xav May 01 '22 at 18:30
  • 1
    I reported the problem to Apple Feedback Assistant : FB10003404 – Ptit Xav May 01 '22 at 18:43
  • @PtitXav OK, thank you for the initiative. I will reach out to them trying to explain that there is a potential bug on their side. Will keep you posted here. By the way, is there any way I can access your feedback? – Stepan Valchyshyn May 01 '22 at 19:05
  • Click [here](https://feedbackassistant.apple.com/feedback/10003404) . You will need to log on with your developer account. May be it will say not found : I do not know if feedback can be shared among developers. – Ptit Xav May 01 '22 at 19:08
  • @PtitXav "Feedback Not Found". But as I have just googled - "You cannot access another person's feedback on Apple Feedback Assistant". Probably I will just use the number in my apple review chat – Stepan Valchyshyn May 01 '22 at 19:10
  • 1
    I will keep you inform if I get any news about it. – Ptit Xav May 01 '22 at 19:13
  • @PtitXav I have received Apple review response and it's like talking to the wall. Seems like they don't see a problem why I cannot make permission modal alerts in app language, not iOS. I really feel myself like missing something obvious now. Also, I have tested on another app I was previously publishing and it has the same issue - alerts in system language... – Stepan Valchyshyn May 03 '22 at 19:05
  • Sorry they do not admit the problem as there is nothing you can do except find common wording between different languages. I still have no news from Apple about the feedback. – Ptit Xav May 03 '22 at 21:51
  • I saw same kind of problem on [apple dev forum](https://developer.apple.com/forums/thread/693080) the suggestion is to open [DTS tech support incident](https://developer.apple.com/support/technical/) to get support from apple tech guy specialised in internationalisation. – Ptit Xav May 03 '22 at 22:00
  • I’m voting to close this question because app store policies are off-topic – Zoe May 13 '22 at 15:02

1 Answers1

0

Spending even more time on investigation, trying and failing, we've managed to find a solution.

First of all, the Apple did a bad job explaining an issue fully. This is why it was leading me in a wrong directing. The issue supposed to be the following -

When you run an application in a language that is not present in your preferred languages list. In my case the app is in Romanian and device iOS language is set to English with no extra languages configured(Empty preferred languages list). This way the app will be in Romanian language and the camera permission alert is also in Romanian while location permission alert is in Ukrainian.

The fix was pretty easy with a single property in your Info.plist file that I'm seeing for the first time - CFBundleLocalizations where you basically just provide a list of languages your app supports.

enter image description here

Conclusion: The behaviour of system permission alert appearing in the iOS system preferred language is OK and works as supposed by Apple. But there might be a case when none of the app supported languages is present in the iOS system preferred languages list and it leads to multiple languages appearing in the app during runtime and this might be a potential Apple review reject reason.