title: Apple reject because of In app purchase not implement restore
body: <p>I got rejected by Apple with a message saying:</p>
  
  <blockquote>
    <p>... Additionally, we found that while your app offers In-App Purchase(s)
    that can be restored, it does not include the required "Restore"
    feature to allow users to restore the previously purchased In-App
    Purchase(s), as specified in Restoring Transactions section of the
    In-App Purchase Programming Guide:</p>
    
    <p>"...if your application supports product types that must be
    restorable, you must include an interface that allows users to restore
    these purchases. This interface allows a user to add the product to
    other devices or, if the original device was wiped, to restore the
    transaction on the original device."</p>
    
    <p>To restore previously purchased In-App Purchase products, it would be
    appropriate to provide a "Restore" button and initiate the restore
    process when the "Restore" button is tapped by the user.</p>
    
    <p>For more information about restoring transactions and verifying store
    receipt, please refer to the In-App Purchase Programming Guide.
    ...</p>
  </blockquote>
  
  <p>And I found this <a href="https://stackoverflow.com/questions/10975312/no-restore-button-for-in-app-purchase-causes-rejection">page</a>, and I followed the sample code , but after I called </p>
  
  <pre><code>- (void) checkPurchasedItems{
     [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
  }
  </code></pre>
  
  <p>another delegate was not fired!</p>
  
  <pre><code>- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
  </code></pre>
  
  <p>It only popups an alert view, to let you enter your Apple ID ... and nothing happened?</p>
  
  <p>I set a break point, but it wouldn't stop as the example said.</p>
  
  <p>Any ideas on what's wrong with my code?</p>