我在iphone上开发了一个应用程序。 我已经在应用商店中加载了精简版。 现在我不能从应用程序本身加载完整版本,它是如何完成的。 我知道这是可能的,但如何做到这一点。关于inapp购买
2
A
回答
0
您需要为完整版本创建单独的捆绑ID。因为这是两种不同的应用。
1
你可以用两种方法做到这一点。您已将精简版和完整版作为两个独立的应用程序,或者您可以进行应用程序内升级。根据您如何实施Lite的限制,其中一个或另一个可能是更好的选择。
在两个应用场景中,你开发完全作为一个单独的包,一个独立的包ID。 Xcode目标和条件编译可能会派上用场。在Lite版本中,您想要在App Store中硬编码链接到完整版本。通过从iTunes Connect复制粘贴找出链接。
在第二种情形中,全/精简版是一个运行时间设定,升级包是一个应用程序内购买。实施StoreKit API,提供硬编码的应用内产品ID。一旦发现升级购买(这是一个异步过程),将设置翻转为完整。
我推荐第二种方法。首先,所有的评论都会在Lite版本下进行,而不是在Lite和Full之间进行分割。另外,如果您的应用程序具有设置或数据文件,升级时不会丢失。
编辑:这里是实现应用内购买的可能是什么样子等。某处在应用程序有一个升级按钮(链接,图片等等)这是这样的:
if(![SKPaymentQueue canMakePayments])
{
//Display the "cannot pay here" message
return;
}
@try
{
[[SKPaymentQueue defaultQueue]
addPayment:[SKPayment paymentWithProductIdentifier: @"com.mydomain.myproduct.full"]];
}
@catch (NSException * e)
{
//Sorry...
}
同时,你需要在你的应用程序,处理StoreKit通知的类。我提到它是异步的;好吧,它仍然是。就我而言,我用的AppDelegate为:
@interface MyAppDelegate : NSObject <..., SKPaymentTransactionObserver>
而且您指定的应用程序委托作为一个:
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
//...
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
}
- (void)applicationWillTerminate:(UIApplication *)application
{
[[SKPaymentQueue defaultQueue] removeTransactionObserver:self];
}
然后你实现事务处理方法:
- (void)paymentQueue:(SKPaymentQueue *)q updatedTransactions:(NSArray *)tr
{
int i, n = [tr count];
for(i=0;i<n;i++)
{
SKPaymentTransaction *t = [tr objectAtIndex:i];
if(t.transactionState == SKPaymentTransactionStatePurchased)
[self ProcessPurchase: t.payment.productIdentifier];
//Support for restored transactions
if(t.transactionState == SKPaymentTransactionStateRestored)
[self ProcessPurchase: t.originalTransaction.payment.productIdentifier];
//Failed/purchased/restored
if(t.transactionState != SKPaymentTransactionStatePurchasing)
[q finishTransaction:t];
}
-(void)ProcessPurchase:(NSString*)ProgID
{
if([ProgID compare:@"com.mydomain.myproduct.full"] == 0)
{
//It's an upgrade! Change the settings, enable hidden content, and stuff...
}
}
像这样的东西。
相关问题
- 1. Apple inapp购买
- 2. Apple InApp购买
- 3. Android inapp购买V3
- 4. InApp购买单AppleId
- 5. InApp购买实施
- 6. InApp购买电话1.4.1
- 7. iPhone中的Inapp购买
- 8. InApp购买verifyReceipt(错误-42351)
- 9. 错误:soomla inApp购买时点击购买按钮
- 10. InApp购买付款是否已完成
- 11. iOS - Inapp购买 - 处理崩溃
- 12. inApp购买,下载免费产品
- 13. 如何在Android中恢复inApp购买?
- 14. Unity跨平台InApp购买服务
- 15. 检查是否购买了InApp
- 16. InAPP购买存储在哪里?
- 17. 易耗品inapp购买问题
- 18. Windows 8 Metro Inapp购买傻瓜
- 19. iOS InApp购买内容集成
- 20. inApp购买Android中的产品ID
- 21. InApp在慢速网络上购买
- 22. inapp购买的每周订阅付款
- 23. 使用inApp购买的用户的UDID
- 24. iPhone inApp购买队列不会清除
- 25. inapp购买物品的兑现代码
- 26. inApp购买产品名称更改
- 27. InApp从另一个nsobject购买
- 28. inapp购买服务器设置
- 29. 检查InApp购买是否受限制
- 30. 关于应用内购买
是的,谢谢你的建议,我也在想同样的事情,但我不知道这是如何工作的。 cna你建议我一步一步来。非常感谢 – 2011-03-30 09:28:57
@Gopal Rathod:请参阅编辑。 – 2011-03-30 13:04:12
谢谢..现在我有回应计数0什么是解决方案。我已经创建了新的应用程序在iTunes帐户的应用程序购买,但我得到0,你能帮我 – 2011-03-31 06:35:05