Ответ 1
Использование
NSString* appID = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"];
Обновление ответа с комментариями @zaheer
NSBundle.mainBundle().infoDictionary?["CFBundleIdentifier"] as? NSString
Есть ли способ получить идентификатор appstore из приложения iOS? (Чтобы просить пользователя оценить его и предоставить ссылку на appstore.)
Использование
NSString* appID = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"];
Обновление ответа с комментариями @zaheer
NSBundle.mainBundle().infoDictionary?["CFBundleIdentifier"] as? NSString
Да, это так. Вы не можете использовать app appore app id (называемый Apple ID в iTunes Connect) в автономном режиме, но вы можете запросить его, используя iTunes Search Api. Загрузите контекст следующей ссылки:
http://itunes.apple.com/lookup?bundleId=YOUR_APP_BUNDLE_ID
Вы получите ответ JSON, содержащий "trackId":YOUR_APP_ID
значение ключа. Попробуйте в своем браузере!
Мой ответ основан на ответе anotsher: fooobar.com/questions/207951/...
Вы можете использовать Apple iTunes Link Maker для поиска своего приложения (или любого приложения) и получить URL-адрес вашего App Store. Оттуда вы можете получить URL-адрес вашего приложения, который останется таким же для вашего приложения и поместит его в ваше приложение. Когда вы используете itms://вместо http://, он будет напрямую открываться в приложении App Store напрямую.
Например, если я хотел использовать URL-адрес приложения Twitter, производитель ссылок сообщает мне, что 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, чем перенаправляется через Safari, затем в App Store,
Для приложения только вам нужно отделить строку идентификатора пучка от компонентов и просто захватить последний компонент.
NSString appId = [[[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"] componentsSeparatedByString:@"."] lastObject];
Или обрабатывать полную строку соответственно, но она будет иметь весь идентификатор пакета.
Swift:
Bundle.main.bundleIdentifier
[NSBundle mainBundle].bundleIdentifier
результат соответствует вашему идентификатору приложения и проще использовать.