I figured it out. It seems that when all English strings are provided via NSLocalizedString's value argument, en.lproj is not created. In fact, when mixing localized strings with and without default values, only those that have no default value are included in the final app's en.lproj/Localizable.strings. Still, when running the app, the default value is correctly presented, so I guess since it's not in the strings file it is hard-coded in the executable.
Maybe I'm not supposed to use the value argument this way? Should I instead cut all the default values and insert them manually in the string catalog? I was already considering to move all English values for my other projects from the string catalog to the source code so that I directly know what a localized string's contents are, but I'm happy now I didn't do that yet.
I created FB21733395.
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags: