最近在海外蘋果商店發(fā)布新游戲,經(jīng)歷了一個(gè)操蛋的兩天:
? ? ? ?產(chǎn)品在提交testflight沙盒環(huán)境下是可以獲取到蘋果商品列表乖篷,并且測(cè)試支付可以拉起并到賬伤锚,等到我通過TF轉(zhuǎn)發(fā)布到正式環(huán)境后恨课,游戲點(diǎn)擊游戲內(nèi)商店獲取商品列表就為空惰说,更別提拉起支付了磨德。
? ? ? 最開始先檢查了蘋果開發(fā)者后臺(tái)的商品,看有沒有在Appstore里配置吆视,Bundle ID是否和后臺(tái)的一致典挑,通過常規(guī)的辦法都試過了,各項(xiàng)檢查都沒問題啦吧。
? ? ? 查看客戶端代碼搔弄,這里拿到的蘋果商店的商品列表信息為空,最初猜測(cè)是客戶端配置的問題丰滑,經(jīng)過排查也否定了這個(gè)猜測(cè)。
#pragma mark //SKProductsRequestDelegate
-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
? ? NSLog(@"Recived product results");
? ? if(response.products != nil && response.products.count > 0){
? ? ? ? NSDictionary *prizeNameMap = [[NSMutableDictionary alloc] init];
? ? ? ? for(SKProduct *product in response.products){
? ? ? ? ? ? [self.productMap setValue:product forKey:product.productIdentifier];
? ? ? ? ? ? ? ? NSString *localPrize =[IapCharge localizePrize: product];
? ? ? ? ? ? ? ? if(localPrize) {
? ? ? ? ? ? ? ? [prizeNameMap setValue:localPrize forKey:product.productIdentifier];
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? [[NSOperationQueue mainQueue]addOperationWithBlock:^{
? ? ? ? ? self.charge->onEvent(REQUEST_PRODUCTS_EVENT, [[IapCharge dicToJsonString:prizeNameMap] UTF8String]);
? ? ? ? ? ? [prizeNameMap release];
? ? ? ? }];
? ? }
? ? else{
? [[NSOperationQueue mainQueue]addOperationWithBlock:^{
self.charge->onEvent(REQUEST_PRODUCTS_EVENT, STATUS_FAILED);
? ? ? ? }];
? ? }
? // self.productRequest = nullptr;
? //ss? ChargeManager::getInstance()->onChargeEvent(self.charge, REQUEST_PRODUCTS_EVENT, SUCCESS);
}
后來(lái)懷疑是蘋果從沙盒環(huán)境到正式環(huán)境可能會(huì)同步蘋果商品信息,存在一定的延遲褒墨,就一致耐心等待炫刷,據(jù)說是1-2天,第一天等完了郁妈,大概到第二天下午三四點(diǎn)的樣子才同步完浑玛。?
所以如果上線后發(fā)現(xiàn)線上包請(qǐng)求不到商品信息,一般發(fā)生于首次提交APP或添加新商品噩咪,可能是蘋果緩存的BUG顾彰,當(dāng)你的APP通過審核以后,你發(fā)現(xiàn)在生產(chǎn)環(huán)境下獲取不到商品胃碾,這是因?yàn)锳pp雖然過審核了涨享,但是內(nèi)購(gòu)商品還沒有正式添加到蘋果的服務(wù)器里,耐心等待一段時(shí)間就可以啦仆百,或者去蘋果后臺(tái)刷新配置商品信息列表厕隧,然后等待1-2天左右時(shí)間大概就可以了.
? ? ? ?另外,如果你蘋果商店配置了很多商品俄周,這些商品可能不是同時(shí)生效的吁讨,總之大約等1-2天。
另外一種解決辦法:
之前有讀者反饋他已經(jīng)等了3填了峦朗,蘋果也沒給出答復(fù):
這里我給他的建議是先從蘋果后臺(tái)下架所有商品信息建丧,然后重新提交審核,這樣會(huì)觸發(fā)蘋果同步商品信息策略波势,到下午翎朱,他的商品信息就可以在游戲里拉起支付了。
? ? ? 那么如何應(yīng)對(duì)此類問題艰亮?? 一般是在首次提交APP的時(shí)候闭翩,先別著急開服,先發(fā)布迄埃,在服務(wù)器端給玩家公告疗韵,大概什么時(shí)候可以對(duì)外開放,同時(shí)給測(cè)試環(huán)境加白名單侄非,等商品信息可以拉起來(lái)了蕉汪,再選擇開服開放。