Question: If I offer an in-app Non-consumable purchase (say a book, or a song) within my app and then 2-3 months after it has been released I realize that there is something wrong with my digital content, Can I do an update of the digital content? So if I had a digital article as an in-app purchases for $1.99 and sold 1,000 copies, then I realized that I have a spelling error on page 3. Would I be able to upload an updated article that would go out to all the people who bought the article and prevent people from downloading the old copy? If not, how is this situation handled in the real world? I have looked in apples doc, but cannot find an answer. 

Edit: Assume I am using the new io6 feature of hosting the content through apple.

Answer: 
Yes, as a matter of fact, provided that you do a few steps, you can keep track and systematically, efficiently keep track of what is downloaded.

> 1.Yes it's possible. Provided you keep a track of who has bought what pack (ie. keep a bool value as an NSUserDefault), then they will still have access to it (even if you add more stuff/levels to it).
>   
>   
> 
> 2.It depends what you mean by notified; they will know if they read the update comments when they install the update. Also you could just choose to alert them when the load the app after the update - your call.
>   
>   
> 
> 3.If you're submitting the code Apple will review it. Just think of it like any other update to an app. 

This is taken directly from here: [Update in-app purchase content for iOS app?](https://stackoverflow.com/questions/7780133/update-in-app-purchase-content-for-ios-app)

After you have updated your content for the app store, you can allow your users to **Restore Purchases** and obtain the updated content!

Overall, have a mechanism to keep track of the version of the in-App purchases' version and then update when needed!

There is always, apple's own documentation: 
[Here you go! :)](http://developer.apple.com/library/ios/#documentation/StoreKit/Reference/SKDownload_Ref/Introduction/Introduction.html#//apple_ref/doc/uid/TP40011851) 

I hope this is clear and helpful!

EDIT:
After checking the user's content version number and finding that it's outdated, you would call the method (by the way, you would probably implement this checking mechanism in your app delegate.

```
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

```

This would restore the transactions, but make sure you also need to include the rest of the implementation code!

I assume you know the code to restore in app purchases, but if not, here are a couple good links!

[Restore already bought in-app-purchases on iPhone?](https://stackoverflow.com/questions/7761556/restore-already-bought-in-app-purchases-on-iphone)

<http://www.iosdeveloperguide.com/in-app-purchase-heads-up-to-avoid-app-rejection/>

<http://appotography.com/2011/07/06/restoring-purchases-on-iphone-and-ipad/>
For the above problem:
please have a look at the following urls for separate things:

**Following link is the link to the SKDownload API:**
<http://developer.apple.com/library/ios/#documentation/StoreKit/Reference/SKDownload_Ref/Introduction/Introduction.html#//apple_ref/doc/uid/TP40011851>

**Following link is the link to a great post which explains the working of SKDownload API:**
[How to download In-App hosted content?](https://stackoverflow.com/questions/12994550/how-to-download-in-app-hosted-content)

Now in your position we can follow the following steps:

1. Push another package on the Apple Account which is to be hosted (with corrections).
2. Push an update the app on the App store with the following changes: (**This handles any new download from the new users.**)
 a. Update your code of the InAppPurchase with the new identifier of the file
3. Now we have to handle the old users, we can consider the following two approaches:
 a. We can show the user a **restore** button, by tapping which the user would be downloading the article again.

b. In iOS for things to go automatically to all existing users we do have a mechanism of push notifications, on the receiving of this the user would be triggering the event to again download the data from the Apple Hosting.