Update:
I've recognized that this is occurring because the .lproj directories in Armchair are not contained in a .bundle file. This was previously brought up 5 years ago in issue https://github.com/UrbanApps/Armchair/issues/67 .
Situation:
I've used Armchair for quite a while without issues. Recently I learned that I could improve startup performance of my app by replacing "use_frameworks!" in my podfile with "use_frameworks! :linkage => :static".
Expected behavior:
My project and all pods work exactly as they did before.
Actual behavior:
I archived my app and submitted it to the app store, and all of armchair's ~30 supported languages were listed as languages that my app supported, even though they are not selected as such in my Project settings.
This is bad, because if a user whose device was set to (for instance) Arabic, the app would attempt to display in Arabic, and look awful because I haven't localized anything in arabic.
I dug into my app's archive (Show Package Contents) in the Xcode organizer, and found that all of Armchair's .lproj directories (and their corresponding ArmchairLocalizable.strings files) were being copied into my app's Resources folder at build time. Thus, Armchair's localizations were being interpreted as my app's localizations by App Store Connect.
Here are a series of screenshots showing what Xcode's Build Phases shows with Static Linkages enabled and static linkages disabled.
Static linkages enabled:
Static linkages disabled:
"Show package contents" on my app's Archive when static linkages are enabled, showing armchair's .lproj directories commingled with my own lproj directories
Update: I've recognized that this is occurring because the .lproj directories in Armchair are not contained in a .bundle file. This was previously brought up 5 years ago in issue https://github.com/UrbanApps/Armchair/issues/67 .
Situation: I've used Armchair for quite a while without issues. Recently I learned that I could improve startup performance of my app by replacing "use_frameworks!" in my podfile with "use_frameworks! :linkage => :static".
See this link for details: https://firebase.google.com/docs/ios/link-firebase-static-dynamic
Expected behavior: My project and all pods work exactly as they did before.
Actual behavior: I archived my app and submitted it to the app store, and all of armchair's ~30 supported languages were listed as languages that my app supported, even though they are not selected as such in my Project settings.
This is bad, because if a user whose device was set to (for instance) Arabic, the app would attempt to display in Arabic, and look awful because I haven't localized anything in arabic.
I dug into my app's archive (Show Package Contents) in the Xcode organizer, and found that all of Armchair's .lproj directories (and their corresponding ArmchairLocalizable.strings files) were being copied into my app's Resources folder at build time. Thus, Armchair's localizations were being interpreted as my app's localizations by App Store Connect.
No other pod with localized strings exhibits this behavior (Siren, for instance https://github.com/ArtSabintsev/Siren )
Here are a series of screenshots showing what Xcode's Build Phases shows with Static Linkages enabled and static linkages disabled.
Static linkages enabled:
Static linkages disabled:
"Show package contents" on my app's Archive when static linkages are enabled, showing armchair's .lproj directories commingled with my own lproj directories