通过Appirater的App Store ID与plist的ID不同,显然是随机的

Hen*_*y F 2 cocoa objective-c ios mac-app-store appirater

我遇到了从我的plist中获取App Store ID并将其与Appirater一起使用的问题.我记录NSLog了当用户按"立即评分"时使用的URL,并且App Store ID与我在Info.plist中设置的App Store ID不同.不知道从哪里得到这些数字 - 它们每次都是一组不同的9个数字.这真的很奇怪.

Appirater.m中处理App Store ID并在链接中使用它的代码如下所示: 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]]];
    //...
}
Run Code Online (Sandbox Code Playgroud)

我在plist中添加了一个名为"AppStoreId"的字段,并输入了9位数的代码.我把它变成了一个字符串类型.现在,当我将"APP_ID"替换为上面iTunes链接中的实际9位数代码时,代码运行完美,但当我将其保留为APP_ID时,我收到错误"无法连接到iTunes Store.",并且NSLog输出具有链接中有9个随机数,而且每次都是不同的.

这可能是一个简单的解决方案,但我似乎无法弄明白.

Fil*_*ina 6

随机数?你正在使用:

[NSString stringWithFormat:@"%d", [self appStoreAppID]]
Run Code Online (Sandbox Code Playgroud)

这里appStoreAppID是一个NSString.

所以你用指针替换"APP_ID" NSString,而不是指向内容NSString.

只需使用%@而不是%d.