Originally Posted by Malakai
Ok, ive dug a bit deeper into the rabbit hole, it turns out that Itunes Sync and remove metadata in installous is causing this issue, basically your itunes acc has a unique identifying number, so when App Store finds an update it knows which account its attatched to. If you have iFile installed go to /var/root/Library/Lockdown and open data_ark.plist in property viewer, if you scroll down to known accounts you should see there are your accounts in there.
Now, go to /var/mobile/Library/Caches and view com.apple.mobile.installation.plist in property viewer and click user and click on any app, at the top ApplicationDSID there is a number, thats the account that app is tied to. Now, if you only have one itunes account this wont happen but if you have two for some reason enabling remove metadata and enabling itunes sync in installous it overwrites the ApplicationDSID for ALL apps listed in com.apple.mobile.installation.plist with one of the accounts. For most this isnt a problem as it associates them all with the correct account but for some like me its associated all my apps with my US account so App Store updates autmatically assumes they are from that account when I come to update them. This issue effects all apps, bought, free or installed via installous. The only way to prevent it is to disable remove metadata and disable Itunes Sync.
There are a few ways to reset these files but they are VERY hit and miss, and do this ONLY IF YOU HAVE A RECENT BACKUP. I cant be held responsible for anything you do.
In iFile, copy com.apple.mobile.installation.plist to Documents or another folder, rename it to com.apple.mobile.installation.plist% so it doesnt get changed by iOS. Delete the file and restart your device. It will restart with only default apps, dont panic yet, give it a minute, it should reload all your apps and your com.apple.mobile.installation.plist file shoud be restored. This will change the ApplicationDSID back to whatever the app is set at. For me this works every time on my iphone 4. However on Ipad 2 the apps never reappear and it rebuilds the com.apple.mobile.installation.plist file without populating it. To fix this you just have to plug into PC or MAC and in iTunes right click on your device and restore from backup. let it restore from a backup. after its restored everything should be reset. If after a restore it hasnt restored apps, in ifile rename the com.apple.mobile.installation.plist back to original name, copy and paste it back into /var/mobile/library/caches and rename the backed up file back to com.apple.mobile.installation.plist%
Restore from backup again.
Basically this process forces itunes to repopulate the com.apple.mobile.installation.plist with all your apps original ApplicationDSID data, which in turn allows App Store to update them correctly. Just keep Sync with itunes and remove metadata disabled in installous to prevent this happening again. Just until i can get hold of someone from the installous team, or possibly this has something to do with appsync. Just need to find the file that stores the ApplicationDSID for installous or appsync to be able to edit it to the correct account.
Hope this helps.
Malakai was so CLOSE and I wouldn't have figured this out without the above post. However, deleting the file is NOT the way I have fixed this issue. The FIX is actually far simpler and is simply to put the correct DSPersonID into the ApplicationDSID field. See below for how to do this.
First, use iFile to navigate to /var/root/Library/Lockdown. Scroll down to data_ark.plist and Open With... Property List Viewer.
Turn iPhone sideways/landscape to show enough of the field so you can find the Array named com.apple.mobile.iTunes.store-KnownAccounts. Clicking it will show the accounts you've used in the App store. Click each one so you can see the AppleID, then you will know which DSPersonID you will need in the next step. The DSPersonID is a long number like 1,234,567,890. Write down the AppleID and the DSPersonID for each account you have purchased apps with. You will need the DSPersonID again in a moment.
Say that your iOS device is now always asking for the password for account 0 in the KnownAccounts, even though you've already purchased those apps with account 1's AppleID. You would write down the DSPersonID for account 1.
Ok, click DONE so you close the data_ark.plis file.
Now navigate to /var/mobile/Library/Caches. Turn iPhone sideways/landscape to show enough of the name so you can scroll down and find com.apple.mobile.installation.plist and Open With... Property List Viewer.
Click User Dictionary>
Here is where finding your App can get tricky. Even though you think the app is called, say, Dead Space, you might find it listed as com.ea.deadspace.inc. There is no rhyme or reason to it and I've found at least one app that had a completely different name here than it was called. Alright so you find the app by its bizarre name, and then you click it. The field you want now is ApplicationDSID. It probably has the big long number from account 0 above. You want to change ApplicationDSID to the big long number you wrote down for the account 1 or 2 or whatever that matches the AppleID you used to purchase the app. HOWEVER, DO NOT TYPE the commas
. In other words, don't type 1,234,567,890 in the ApplicationDSID field, type 1234567890. This is the reason I said to write it down rather than try to Copy and now Paste it. If you type it with the commas, it will immediately change it to 0 and that won't work. If you type it without the commas, it will display with the commas after you click Done and go look again.
That's it, really. It was that simple. Make sure you clicked Done so the file is saved, then go to App Store and click Update All again. I DO NOT recommend you ever click UPDATE on a single app, because it can PURCHASE it for your account 0 if the app has account 0's ApplicationDSID number. Before I discovered this FIX, I always made sure I never clicked Update on an app unless I knew the 10 or 15 minute timer had expired since I last typed the password, so that if the wrong account came up I would be able to cancel without buying the app again on the wrong account. If you always use the Update All button, the worst that will happen is you will get a bunch of popups that make you click Cancel or Buy, to which you can click Cancel. If you followed my directions correctly, it will finally ask for the password for the correct account and then update the app you paid for on your other iTunes account.
This isn't hacking and this isn't stealing software. Jailbreak is legal and this process only helps someone who has legitimately purchased apps but now cannot update them due to one of the jailbreak apps overwriting the ApplicationDSID for all of apps with the default account 0's. I'm not sure the reason for that but this is how to FIX it. Try it first on an app that is Free so you put yourself at no risk of buying something just because I say this works. Yes, there are FREE apps that still won't UPDATE if you didn't originally "buy" them with the default account 0. Share and enjoy!