title: In-App-Purchase (iOS) not working for some local stores
body: <p>We have released our iOS game "democracy" / "демократия" one year ago (10 Dec 2011). Since launch and by now I receive claims from users of this application from Ukraine and Belarus that they cannot make any In App Purchases in our application. In the same time users from Russia, USA, UK, France, Kazakhstan and so on can make purchases with no problems.
  In other apps they can make purchases (e.g. Candy Crush Saga). 
  I read Apple documentation about iAPs again and again, and cannot find reason why all iaps not working for Ukraine and Belarus. I have Belarus (Belarussian) account and also cannot buy iAP from my own game )) But when I do the same thing with Russian account - it's working!</p>
  
  <p>All my purchases returned as "Invalid Product ID". </p>
  
  <p>Link to game (don't worry, it's free) - <a href="https://itunes.apple.com/us/app/demokratia/id484436490?mt=8" rel="nofollow">https://itunes.apple.com/us/app/demokratia/id484436490?mt=8</a></p>
  
  <p>I also can reproduce this issue with independent code. I found sample project on this page <a href="http://www.raywenderlich.com/2797/introduction-to-in-app-purchases" rel="nofollow">http://www.raywenderlich.com/2797/introduction-to-in-app-purchases</a> and downloaded it, launched on device - I see the same problem: I succesfully retrieve list of IAPs for USA,Russia, but list is empty for Belarus, Ukraine</p>
  
  <p>STEPS TO REPRODUCE
  I can reproduce issue with real accounts, and with iTunes test accounts too. I use iPad, iPhone with iOS 5.1, 6.0 - looks like it doesnt't matter what device to use. I'm using iOS 6 SDK, xCode 4.5.2</p>
  
  <ol>
  <li><p>All what I need to reproduce this issue is to switch App Store on device (e.g. iPad) to Belarus or Ukraine. You can do it by logging in with Belarus or Ukraine account.</p></li>
  <li><p>Download "Democracy" ("Демократия", com.neskinsoft.Democracy)</p></li>
  <li><p>Then launch application, click "play", then close help window (click at button at top right corner)
  3.1 Click at button with cart icon (you can find it on the top part of UI)
  3.2 Shop dialog will be shown. Click at button at the bottom right (button with pig and coin)
  3.3. Need Money "Нужны Деньги" dialog will be shown. Click at button in the row "60 000", "$1.99". This button calls IAP.</p></li>
  </ol>
  
  <p>After 3.3 - even dialog to ask user password will NOT shown in Ukraine/Belarus iTunes accounts. But for all other countries (e.g. Russia, USA, UK and so on) it works fine!</p>
  
  <p>I checked and debugged my code, debugged problem.</p>
  
  <p>Code is really simple, I followed all instructions from Apple documentation.</p>
  
  <p>This method I call to buy 60 000 Gold in my code:</p>
  
  <pre><code>- (void)loadStoreAndBuy60000Gold
  {
      // restarts any purchases if they were interrupted last time the app was open
      [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
  
      // get the product description (defined in early sections)
      [self requestProductData: kInAppPurchase_60000GOLD]; // PLEASE NOTE kInAppPurchase_60000GOLD = "013", I didn't use reverse DNS and it's working
  }
  </code></pre>
  
  <p>I ask product IDs:</p>
  
  <pre><code>- (void)requestProductData: (NSString*) objectID
  {
      NSSet *productIdentifiers = [NSSet setWithObject: productID]; // In this case productID = "013"
      productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers];
      productsRequest.delegate = self;
      [productsRequest start];
  </code></pre>
  
  <p>And in this method I found problem:</p>
  
  <pre><code>- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
  {
  
      if ([self canMakePurchases]) // Returns TRUE
    {
          NSArray *products = response.products; // Here I receive product list, but for Ukraininan/Belarussian accounts it's EMPTY. So, no dialogs will appear since no product found. But for Russian/USA and so on accounts it returns me product!
  
        //.....
        // then I check invalidProductID
      for (NSString *invalidProductId in response.invalidProductIdentifiers)
      {
          NSLog("Invalid product id: %@" , invalidProductId); // And I found my product "013" is in invalid product ids!
  
      }
    }
  </code></pre>
  
  <p>Could you help me please to resolve this issue? Why I didn't receive for some markets product list? </p>