Можно ли программно использовать приложение id из приложения iOS?

Есть ли способ получить идентификатор appstore из приложения iOS? (Чтобы просить пользователя оценить его и предоставить ссылку на appstore.)

Ответы

Ответ 1

Использование

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

Обновление ответа с комментариями @zaheer

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

Ответ 2

Да, это так. Вы не можете использовать 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/...

Ответ 3

Вы можете использовать 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,

Ответ 4

Для приложения только вам нужно отделить строку идентификатора пучка от компонентов и просто захватить последний компонент.

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

Или обрабатывать полную строку соответственно, но она будет иметь весь идентификатор пакета.

Ответ 5

Swift:

Bundle.main.bundleIdentifier

Ответ 6

[NSBundle mainBundle].bundleIdentifier результат соответствует вашему идентификатору приложения и проще использовать.