是否有可能通过编程从iOS应用程序获取应用程序ID?
有没有什么办法让运行iOS应用程序的appstore id? (要求用户评分并提供链接到appstore。)
使用
NSString* appID = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"];
通过@zaheer的评论更新答案
NSBundle.mainBundle().infoDictionary?["CFBundleIdentifier"] as? NSString
是的。 您无法离线获取app store应用程序标识(在iTunes Connect中称为Apple ID),但是您可以使用iTunes Search Api来请求它。 下载以下链接的上下文:
http://itunes.apple.com/lookup?bundleId=YOUR_APP_BUNDLE_ID
您将得到一个JSON响应,其中包含"trackId":YOUR_APP_ID
键值。 在浏览器中试试!
我的答案是基于anotsher的答案: https ://stackoverflow.com/a/11626157/3050403
您可以使用Apple iTunes Link Maker来search您的应用程序(或任何应用程序)并获取您的App Store URL。 从那里你可以得到你的应用程序的URL,将保持不变,为您的应用程序,并将其放入您的应用程序。 当您使用itms://而不是http://时,它将直接在App Store应用程序中直接打开
例如,如果我想使用Twitter的应用程序的URL,链接制造商告诉我的URL是:
http://itunes.apple.com/us/app/twitter/id333903271?mt=8&uo=4
现在做它的窍门:
itms://itunes.apple.com/us/app/twitter/id333903271?mt=8&uo=4
它将直接在App Store中打开,而不是通过Safariredirect到App Store,
对于appId,只需要将组件标识符string分开,只需抓取最后一个组件即可。
NSString appId = [[[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"] componentsSeparatedByString:@"."] lastObject];
或者相应地处理完整的string,但它将具有整个包标识符。
迅速:
Bundle.main.bundleIdentifier
[NSBundle mainBundle].bundleIdentifier
结果与您的应用程序ID匹配,使用起来更简单。