2011-10-05 123 views

回答

3

您可以使用Apple iTunes Link Maker来搜索您的应用程序(或任何应用程序)并获取您的App Store URL。从那里你可以得到你的应用程序URL,它将保持你的应用程序的相同,并将其放入你的应用程序。当您使用itms://而不是http://时,它会直接在App Store应用程序中直接打开

例如,如果我想使用Twitter应用程序URL,链接制造商会告诉我URL是:

http://itunes.apple.com/us/app/twitter/id333903271?mt=8&uo=4 

现在做ITMS招:

itms://itunes.apple.com/us/app/twitter/id333903271?mt=8&uo=4 

,它会在App Store上直接打开比通过Safari然后重定向到App Store,

+1

有了链接制造商可以使链接到一些特定的应用程序。我问的是以编程方式从当前应用程序获取id(以避免手动为每个应用程序创建链接)。 – breakp01nt

+0

我不认为可以通过编程来实现。您只需要为每个应用程序设置一次URL,因为每次提交更新时ID都保持不变。我接触到的所有解决方案都需要您手动指定App ID,所以我认为这不可能。 –

+0

您也可以在应用程序中以编程方式HTTP链接制造商,并解析HTML结果。 – hotpaw2

19

使用

NSString* appID = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"]; 

更新与评论答案通过@zaheer

NSBundle.mainBundle().infoDictionary?["CFBundleIdentifier"] as? NSString 
+2

** Swift **:'NSBundle.mainBundle()。infoDictionary?[“CFBundleIdentifier”] as? NSString' – Zaheer

+6

伙计们你怎么能通过捆绑ID?!他问的是appstore应用程序ID! –

+0

我高兴,因为这是我来这里发现的。不幸的是,OP的问题不是非常具体,并且(可能)意味着另一个问题。(哪个AFAIK不被称为App ID。) – livingtech

2

对于APPID只需要通过组件捆绑标识字符串分开,只是抓住最后一个组件。

NSString appId = [[[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"] componentsSeparatedByString:@"."] lastObject]; 

或者相应地处理完整的字符串,但它将具有整个包标识符。

0

[NSBundle mainBundle].bundleIdentifier结果与您的应用ID匹配,使用更简单。

2

斯威夫特:

Bundle.main.bundleIdentifier 
7

是的,它是。您无法离线获取app store应用程序ID(在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

相关问题