UrbanApps/Armchair

All Armchair .lproj files are included with cocoapods "use_frameworks! :linkage => :static"

Opened this issue · 0 comments

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 #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 )

Armchair's  lproj files copied into my archive

Here are a series of screenshots showing what Xcode's Build Phases shows with Static Linkages enabled and static linkages disabled.

Static linkages enabled:
copy pods resources with static linkages enabled

Static linkages disabled:
embed pods frameworks with 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
Armchair's  lproj files copied into my archive