是否可以通过编程从iOS应用程序获取应用程序ID?
您可以使用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,
使用
NSString* appID = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"];
更新与评论答案通过@zaheer
NSBundle.mainBundle().infoDictionary?["CFBundleIdentifier"] as? NSString
** Swift **:'NSBundle.mainBundle()。infoDictionary?[“CFBundleIdentifier”] as? NSString' – Zaheer
伙计们你怎么能通过捆绑ID?!他问的是appstore应用程序ID! –
我高兴,因为这是我来这里发现的。不幸的是,OP的问题不是非常具体,并且(可能)意味着另一个问题。(哪个AFAIK不被称为App ID。) – livingtech
对于APPID只需要通过组件捆绑标识字符串分开,只是抓住最后一个组件。
NSString appId = [[[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"] componentsSeparatedByString:@"."] lastObject];
或者相应地处理完整的字符串,但它将具有整个包标识符。
[NSBundle mainBundle].bundleIdentifier
结果与您的应用ID匹配,使用更简单。
斯威夫特:
Bundle.main.bundleIdentifier
是的,它是。您无法离线获取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://*.com/a/11626157/3050403
有了链接制造商可以使链接到一些特定的应用程序。我问的是以编程方式从当前应用程序获取id(以避免手动为每个应用程序创建链接)。 – breakp01nt
我不认为可以通过编程来实现。您只需要为每个应用程序设置一次URL,因为每次提交更新时ID都保持不变。我接触到的所有解决方案都需要您手动指定App ID,所以我认为这不可能。 –
您也可以在应用程序中以编程方式HTTP链接制造商,并解析HTML结果。 – hotpaw2