基本的に、会社が取り組んでいる適切なアプリに実装する前に、テストアプリでアプリ購入を設定しようとしました。ストアキットのPDFやその他のスニペットを約1000回読みましたが、製品はまだ空として返されます。これが私がこれまでに行ったこととまったく同じです。
テストアプリのセットアップとアプリ内購入のテスト項目iPhoneDevCentre
にある会社の開発者ポータルで「TestAppOne」の新しいアプリIDを作成しました。プレフィックスはcom.mycompany.testappone
、アプリ内購入を構成できるようにするためのものであることを確認しました。[アプリID]セクションにとどまり、[アプリ内購入を有効にする]オプションをオンにしてアプリ購入を構成しました。
iTunesConnectで「TestAppOne」を作成し、通常の手順を完了しましたが、「後でバイナリをアップロード」を選択し、アプリが何もしないため、レビューのために送信しませんでした。確かに、これが機能するためにレビューするためにアプリを提出する必要はありませんか?!次に、[アプリの購入で管理]をクリックし、製品IDが「test1」の新しいアプリを作成して承認し、販売が許可されました。
コード
XCodeで新しいプロジェクトを設定しました。これTestAppOne
は、現在使用している2つのクラスのみです。
TestAppOneAppDelegate.h:
#import <UIKit/UIKit.h>
#import <StoreKit/StoreKit.h>
@interface TestAppOneAppDelegate : NSObject <UIApplicationDelegate, SKRequestDelegate, SKProductsRequestDelegate> {
UIWindow *window;
}
TestAppOneDelegate.m:
#import "TestAppOneAppDelegate.h"
static NSString *kMyFeatureIdentifier1 = @"com.mycompany.testappone.test1";
@implementation TestAppOneAppDelegate
@synthesize window;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
if([SKPaymentQueue canMakePayments]) {
NSLog(@"IN-APP:can make payments");
}
else {
NSLog(@"IN-APP:can't make payments");
}
[self requestProductData];
[window makeKeyAndVisible];
}
- (void)requestProductData {
NSLog(@"IN-APP:requestProductData");
SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObject:kMyFeatureIdentifier1]];
request.delegate = self;
[request start];
NSLog(@"IN-APP:requestProductData END");
}
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
NSLog(@"IN-APP:productsRequest");
NSArray *myProduct = response.products;
NSLog(@"IN-APP:array count: %i", [myProduct count]);
[request autorelease];
NSLog(@"IN-APP:productsRequest END");
}
- (void)dealloc {
[window release];
[super dealloc];
}
@end
デバイスでの
テストサンドボックステストアカウントを作成し、iPhoneでiTunesアカウントからログアウトしましたが、購入段階でプロンプトが表示されるまでこれを行わないようにドキュメントに記載されているため、テストアカウントでログインしませんでした。次に、アプリをビルドします。取得したログは次のとおりです。
IN-APP:can make payments
IN-APP:requestProductData
IN-APP:requestProductData END
IN-APP:productsRequest
IN-APP:array count: 0
IN-APP:productsRequest END
私がステージを省略したか、または私が間違っていることがあるかどうか誰かに教えてもらえますか?残念ながら、Apple製のサンプルアプリはないようです。