2

plist から App Store ID を取得し、それを Appirater で使用する際に問題が発生しています。ユーザーが「Rate Now」を押したときに使用されていた URLをNSLog取得しましたが、App Store ID は Info.plist で設定した App Store ID とは大きく異なります。これらの数字がどこから取得されているのかわかりません。毎回異なる 9 つの数字のセットです。これは本当に奇妙です。

App Store ID を取得してリンクで使用する Appirater.m のコードは次のようになります。NSString *const kAppiraterAppIdBundleKey = @"AppStoreId";

NSString *templateReviewURL = @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=APP_ID";

....

+ (NSString*)appStoreAppID {

    NSString* value = [[[NSBundle mainBundle] infoDictionary] objectForKey:kAppiraterAppIdBundleKey];

    NSAssert1(value, @"Error - you have not specified %@ property in your info.plist", kAppiraterAppIdBundleKey);

    return value;

}
//...

+ (void)rateApp {
    //...
    NSString *reviewURL = [templateReviewURL stringByReplacingOccurrencesOfString:@"APP_ID" withString:[NSString stringWithFormat:@"%d", [self appStoreAppID]]];
    //...
}

plist に「AppStoreId」というフィールドを追加し、9 桁のコードを入力しました。紐タイプにしました。さて、上記の iTunes リンクで「APP_ID」を実際の 9 桁のコードに置き換えると、コードは完全に実行されますが、APP_ID のままにしておくと、「iTunes Store に接続できません」というエラーが表示され、NSLog出力はリンク内の 9 つの乱数ですが、これらは毎回異なります。

これはおそらく簡単な修正ですが、理解できないようです。

4

1 に答える 1

6

乱数?あなたが使用している:

[NSString stringWithFormat:@"%d", [self appStoreAppID]]

はどこappStoreAppIDですかNSString

したがって、「APP_ID」を、NSStringの内容ではなく、へのポインターに置き換えていますNSString

%@の代わりに使用して%dください。

于 2012-03-07T19:29:24.407 に答える