2013-07-26 132 views
1

IAM在我project.Currently東西用在應用程序內購買正在購買從sandbox.But正在發生,我發現關於identifiers.Now IAM硬編碼像下面的產品標識的產品的一個問題。 AM存儲在plist中產品標識符(ProductId.plist)手動(請參照圖像)無法從應用程序購買中的iTunes Connect獲取產品標識符?

#import "RageIAPHelper.h" 

@implementation RageIAPHelper 

+ (RageIAPHelper *)sharedInstance { 
    static dispatch_once_t once; 
    static RageIAPHelper * sharedInstance; 
    dispatch_once(&once, ^{ 
     NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"ProductId" ofType:@"plist"]; 

     NSArray * contentArray = [NSArray arrayWithContentsOfFile:plistPath]; 
     NSLog(@"content aray:%@",contentArray); 
     NSSet * productIdentifiers= [NSSet setWithArray:contentArray]; 
     sharedInstance = [[self alloc] initWithProductIdentifiers:productIdentifiers]; 
    }); 
    return sharedInstance; 
} 

@end 

//代碼RAY WENDERLICH IN APP PURCHASE TUTTORIAL

ProductId.PLIST

問題是現在不能夠從iTunes Store動態獲取產品標識符。那麼我怎麼能從iTunes存儲中獲取產品ID而不是在plist中進行硬編碼? 請幫助

回答

-1

您可以在應用程序內購買檢查教程一步下面的鏈接步驟進行。

它會告訴你如何在應用程序內購買,以在項目中使用,它會引導你到動態擷取產品ID。

Use this Link

希望它可以幫助你。

2

你可以做以下來獲得產品數據。

NSSet *productIdentifiers = [NSSet setWithObject:@"com.****.******"]; 
self.productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers]; 
self.productsRequest.delegate = self; 
[self.productsRequest start]; 

此委託將得到調用將獲得產品信息,您需要

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response 
+0

此方法僅用於獲取現有產品ID的信息,而不用於從iTunes連接中獲取產品ID。 – quabug

0

不能從AppStore上獲得的產品ID程式, 但你可以自動生成產品ID的plist中。

下面是步驟:

  1. 使用transportermetadata.xml

    iTMSTransporter -m lookupMetadata \ 
    -u [username] \ 
    -p [password] \ 
    -vendor_id [vendor id] \ 
    -subitemtype InAppPurchase \ 
    -destination [local destination] 
    
  2. 變換metadata.xmlproduct_ids.plist

    # /usr/bin/sh 
    # usage: [this script] [path/to/metadata.xml] > [path/to/product_ids.plist] 
    
    echo '<?xml version="1.0" encoding="UTF-8"?>' 
    echo '<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"' 
    echo ' "http://www.apple.com/DTDs/PropertyList-1.0.dtd">' 
    echo '<plist version="1.0">' 
    echo '<array>' 
    
    sed -n 's/.*<product_id>\(.*\)<.*/ \<string\>\1\<\/string\>/p' $1 
    
    echo '</array>' 
    echo '</plist>' 
    

您可以將這些shell腳本集成到您的生產部署腳本中,也可以根據此概念編寫自己的腳本。

相關問題