Идентификатор App Store через Appirater отличается от идентификатора из plist и, по-видимому, случайный - PullRequest
2 голосов
/ 07 марта 2012

У меня проблема с извлечением идентификатора App Store из моего списка и использованием его с Appirater.Я NSLog выделил URL, который использовался, когда пользователь нажимает «Оценить сейчас», а идентификатор App Store сильно отличается от идентификатора App Store, который я установил в Info.plist.Понятия не имею, откуда взялись эти цифры - каждый раз это разные наборы из 9 чисел.Это действительно странно.

Код в Appirater.m, который занимается захватом идентификатора App Store и использованием его в ссылке, выглядит следующим образом: 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]]];
    //...
}

Я добавилполе в листе под названием "AppStoreId", и введен 9-значный код.Я сделал это строковым типом.Теперь код работает отлично, когда я заменяю «APP_ID» фактическим 9-значным кодом в той ссылке iTunes выше, но когда я сохраняю его как APP_ID, я получаю ошибку «Не удается подключиться к iTunes Store».* output содержит 9 случайных чисел в ссылке, и опять же, они каждый раз разные.

Возможно, это легко исправить, но я не могу понять это.

1 Ответ

6 голосов
/ 07 марта 2012

Случайные числа?Вы используете:

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

, где appStoreAppID - это NSString.

Таким образом, вы заменяете «APP_ID» указателем на NSString, а не содержимым NSString.

Просто используйте %@ вместо %d.

...