是否有可能通过编程从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匹配,使用起来更简单。