Why aren't new builds sent to App Store Connect reflecting my updated Info.plist?

I have a brand new macOS app (built with Mac Catalyst and based on a long existing iOS app) I've submitted to App Store Connect for review. It was rejected due to my Contacts purpose string not being deemed sufficient (despite being the same one the iOS version of the app has been using for years).

Anyway, I made a change to the privacy string and submitted a new build. The new build was rejected and a screenshot showed the About screen with the new build number as well as the privacy string from the original build, not the new build. So I verified that my archive did in fact have an Info.plist with the updated privacy string. So I resubmitted that build again for review and it was rejected again for the same reason. Despite the reviewer claiming, at my request, that a fresh install of the latest build was used.

So I changed the privacy string again and submitted a 3rd new build, again verifying the archive that I was sending through the Xcode Organizer did have the updated (now 3rd) privacy string.

And again the app has been rejected. Despite 2 new builds, the reviewers are still seeing the original privacy string.

Does anyone have any ideas on how to get this resolved?

Answered by RickMaddy in 756889022

tl;dr - I unknowingly had a localized Info.plist strings file in my project and the only string in it was the Contacts privacy string. Once the strings file was deleted, the proper privacy string began to appear as expected.

This issue was driving me crazy. No matter what I did to change the Info.plist, the reviewers were seeing the old privacy string. I finally broke down and pushed an updated build of my iOS app to Test Flight. On one of my iOS device I deleted the app and reset Location and Privacy settings. I installed the iOS app from Test Flight and to my shock, the old privacy string was appearing just like it did for the reviewers. Until the Mac version of the app was rejected a few days again, I hadn't updated any of the app's privacy strings in years. It was never an issue.

So then I deleted the app and reset Location and Privacy settings again but this time I did a plain development build from Xcode. And sure enough, the old privacy string appeared again. Why? The Info.plist clearly has the updated privacy string. I was dumbfounded. What is going on?

I finally did a deep search of the project for part of the message and there it was. InfoPlist.strings with just that one value in it. So no matter what I did to Info.plist, the value in Info.strings was being used. I have no idea how it was ever created or when. Looking at git it seems it was somehow created and added just 3 weeks ago. Very odd.

Anyway, if you ever have trouble with your privacy strings not updating, check for an InfoPlist.strings file in your project.

Accepted Answer

tl;dr - I unknowingly had a localized Info.plist strings file in my project and the only string in it was the Contacts privacy string. Once the strings file was deleted, the proper privacy string began to appear as expected.

This issue was driving me crazy. No matter what I did to change the Info.plist, the reviewers were seeing the old privacy string. I finally broke down and pushed an updated build of my iOS app to Test Flight. On one of my iOS device I deleted the app and reset Location and Privacy settings. I installed the iOS app from Test Flight and to my shock, the old privacy string was appearing just like it did for the reviewers. Until the Mac version of the app was rejected a few days again, I hadn't updated any of the app's privacy strings in years. It was never an issue.

So then I deleted the app and reset Location and Privacy settings again but this time I did a plain development build from Xcode. And sure enough, the old privacy string appeared again. Why? The Info.plist clearly has the updated privacy string. I was dumbfounded. What is going on?

I finally did a deep search of the project for part of the message and there it was. InfoPlist.strings with just that one value in it. So no matter what I did to Info.plist, the value in Info.strings was being used. I have no idea how it was ever created or when. Looking at git it seems it was somehow created and added just 3 weeks ago. Very odd.

Anyway, if you ever have trouble with your privacy strings not updating, check for an InfoPlist.strings file in your project.

Why aren't new builds sent to App Store Connect reflecting my updated Info.plist?
 
 
Q