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 つの乱数ですが、これらは毎回異なります。
これはおそらく簡単な修正ですが、理解できないようです。