已知App的
bundleID
, 怎样查询应用信息.
使用AppStore官方的接口, 即 iTunes Search API, 具体是 http://itunes.apple.com/lookup, 虽然官方已不推荐使用 bundleId 参数, 但目前(2023.04.04)依旧有效. 以iOS预置应用"电话"为例, 请求如下:
// 请求
http://itunes.apple.com/lookup?bundleId=com.apple.mobilephone&country=CN
{
"resultCount": 1,
"results": [
{
"features": [],
"isGameCenterEnabled": false,
"advisories": [],
"supportedDevices": [
"iPhone5-iPhone5",
"iPhone5c-iPhone5c",
"iPhone5s-iPhone5s",
"iPhone6-iPhone6",
"iPhone6Plus-iPhone6Plus",
"iPhone6s-iPhone6s",
"iPhone6sPlus-iPhone6sPlus",
"iPhoneSE-iPhoneSE",
"iPhone7-iPhone7",
"iPhone7Plus-iPhone7Plus",
"iPhone8-iPhone8",
"iPhone8Plus-iPhone8Plus",
"iPhoneX-iPhoneX",
"iPhoneXS-iPhoneXS",
"iPhoneXSMax-iPhoneXSMax",
"iPhoneXR-iPhoneXR",
"Watch4-Watch4",
"iPhone11-iPhone11",
"iPhone11Pro-iPhone11Pro",
"iPhone11ProMax-iPhone11ProMax",
"iPhoneSESecondGen-iPhoneSESecondGen",
"iPhone12Mini-iPhone12Mini",
"iPhone12-iPhone12",
"iPhone12Pro-iPhone12Pro",
"iPhone12ProMax-iPhone12ProMax",
"iPhone13Pro-iPhone13Pro",
"iPhone13ProMax-iPhone13ProMax",
"iPhone13Mini-iPhone13Mini",
"iPhone13-iPhone13",
"iPhoneSEThirdGen-iPhoneSEThirdGen",
"iPhone14-iPhone14",
"iPhone14Plus-iPhone14Plus",
"iPhone14Pro-iPhone14Pro",
"iPhone14ProMax-iPhone14ProMax"
],
"ipadScreenshotUrls": [],
"appletvScreenshotUrls": [],
"artworkUrl60": "https://is4-ssl.mzstatic.com/image/thumb/Purple126/v4/4a/a7/06/4aa70602-bf5f-3e17-d33c-7a0cd91bfee6/AppIcon-0-0-1x_U007emarketing-0-0-0-10-0-0-sRGB-0-0-0-GLES2_U002c0-512MB-85-220-0-0.png/60x60bb.jpg",
"artworkUrl512": "https://is4-ssl.mzstatic.com/image/thumb/Purple126/v4/4a/a7/06/4aa70602-bf5f-3e17-d33c-7a0cd91bfee6/AppIcon-0-0-1x_U007emarketing-0-0-0-10-0-0-sRGB-0-0-0-GLES2_U002c0-512MB-85-220-0-0.png/512x512bb.jpg",
"artworkUrl100": "https://is4-ssl.mzstatic.com/image/thumb/Purple126/v4/4a/a7/06/4aa70602-bf5f-3e17-d33c-7a0cd91bfee6/AppIcon-0-0-1x_U007emarketing-0-0-0-10-0-0-sRGB-0-0-0-GLES2_U002c0-512MB-85-220-0-0.png/100x100bb.jpg",
"artistViewUrl": "https://apps.apple.com/cn/developer/apple/id284417353?mt=12&uo=4",
"screenshotUrls": [
"https://is3-ssl.mzstatic.com/image/thumb/PurpleSource115/v4/bb/2d/99/bb2d990d-96e4-feb0-1e11-b445d86cdcad/2e91e072-7287-4443-a057-8e5aaa3daff1_iPhone_6s_Plus___InCall@3x.png/392x696bb.png",
"https://is1-ssl.mzstatic.com/image/thumb/PurpleSource115/v4/d9/3f/1b/d93f1bed-8bcb-46f9-bc8e-0ac8efae33dc/a13e7222-c50c-4a95-9da9-0f2c8e81ccc0_iPhone_6s_Plus___Favorites@3x.png/392x696bb.png"
],
"kind": "software",
"isVppDeviceBasedLicensingEnabled": true,
"releaseNotes": "Bug Fixes and Feature Enhancements",
"description": "使用“电话” App 拨打和接听电话。\n\n• 电话、FaceTime 音频通话和 FaceTime 视频通话汇于一处。\n• “个人收藏”提供轻点一下即可给最重要的联系人打电话和发信息的快捷方式。\n• “最近通话”显示最近来去电和未接来电。\n• “通讯录”可让您访问联系信息,涵盖电话号码、电子邮件地址以及生日和纪念日。\n• 即使您跳转到其他 App,通话也会保持接通状态,因此处理多任务变得十分轻松。\n• 最多可与 5 人进行电话会议。*\n• Visual Voicemail 提供语音留言的转写文字。将 Visual Voicemail 信息存储为备忘录、语音备忘录,或者使用“信息”、“邮件”或“隔空投送”进行共享。*\n• 自定语音信箱应答语。\n• 信息回复让您在无法接电话时轻点一下即可轻松发送回复。可使用建议回复,或者创建您自定的信息回复。\n• 如果此时无法接听电话,“稍后提醒我”可帮您记住回电。\n• 让 Siri 拨打电话、回电以及检查语音信箱。\n• “静音未知来电”为您提供将未知号码的来电自动发送到语音信箱的选项。您的电话只有在通讯录、最近去电以及“Siri 建议”中的对象来电时才会响铃。\n• 已阻止的联系人可让您识别不想要的来电者,并屏蔽来自这些号码的电话和 FaceTime 通话。\n• 各式各样的铃声和振动可让您为特定联系人选取不同提醒。 \n• “无线局域网通话”可让您通过无线局域网连接拨打或接听电话,以便您可以在蜂窝网络未覆盖或覆盖较差的区域与他人保持联系。*\n• iPhone 12 系列及后续机型支持 5G 蜂窝网络服务。**\n• “来电播报”为您提供来电时听取来电者姓名或电话号码的选项,即使您未在查看设备也可听取。\n• “拨号助理”会在拨号时自动确定正确的国际或本地电话前缀。\n• “呼叫等待”可允许他人在您正进行另一个通话时呼叫您。*\n• “呼叫转移”将呼叫您号码的来电转接到您指定的另一个号码。*\n• 通话中继为您提供在 iPad、iPod touch 和 Mac 上拨打和接听电话的选项。\n• 外部音频支持为您提供在设备扬声器和蓝牙耳机或附近扬声器(如 HomePod)之间切换的选项。从 HomePod 发起通话或者通过 HomePod 转移现有通话的音频。\n\nApple Watch 功能:\n• 直接从手腕上拨打和接听电话。 \n• 听到来电铃声或感觉到来电振动时,将来电发送到语音信箱、使用 iPhone 接听来电,或者发送信息。\n• 在通话期间调整通话音量、使用数字小键盘或甚至是将通话切换到 iPhone。\n• 听取语音留言。\n• 让 Siri 呼叫通讯录中的联系人。\n\n* 需要运营商支持\n** 需要运营商支持和 5G 套餐",
"sellerName": "Apple Distribution International",
"genreIds": [
"6002"
],
"releaseDate": "2021-10-25T07:00:00Z",
"currency": "CNY",
"trackId": 1146562108,
"trackName": "电话",
"primaryGenreName": "Utilities",
"primaryGenreId": 6002,
"bundleId": "com.apple.mobilephone",
"currentVersionReleaseDate": "2021-12-14T23:29:12Z",
"minimumOsVersion": "10.0",
"trackCensoredName": "电话",
"languageCodesISO2A": [
"AR",
"CA",
"HR",
"CS",
"DA",
"NL",
"EN",
"FI",
"FR",
"DE",
"EL",
"HE",
"HI",
"HU",
"ID",
"IT",
"JA",
"KO",
"MS",
"NB",
"PL",
"PT",
"RO",
"RU",
"ZH",
"SK",
"ES",
"SV",
"TH",
"ZH",
"TR",
"UK",
"VI"
],
"fileSizeBytes": "2104320",
"formattedPrice": "免费",
"contentAdvisoryRating": "4+",
"averageUserRatingForCurrentVersion": 3.079959999999999809006112627685070037841796875,
"userRatingCountForCurrentVersion": 1801,
"averageUserRating": 3.079959999999999809006112627685070037841796875,
"trackViewUrl": "https://apps.apple.com/cn/app/%E7%94%B5%E8%AF%9D/id1146562108?uo=4",
"trackContentRating": "4+",
"version": "2.1",
"wrapperType": "software",
"price": 0.00,
"artistId": 284417353,
"artistName": "Apple",
"genres": [
"工具"
],
"userRatingCount": 1801
}
]
}
country参数是必要的(Required), 格式是ISO-2A country code
, 官方的注释如下:
The two-letter country code for the store you want to search. The search uses the default store front for the specified country. For example: US. The default is US. See http://en.wikipedia.org/wiki/ ISO_3166-1_alpha-2 for a list of ISO Country Codes.
lang被标记为非必要参数, 可以用来指定 language, 我非常不推荐使用它, 因为它很可能在某个地区给你带来bug, 官方注释如下:
The language, English or Japanese, you want to use when returning search results. Specify the language using the five-letter codename. For example: en_us. The default is en_us (English).
官方给出的示例是: en_us, ja_jp, 但实际上是有问题的 !
// AR是阿根廷, es_AR是西班牙语(阿根廷), 通过 *UserDefaults.standard.object(forKey: "AppleLanguages")* 返回
http://itunes.apple.com/lookup?bundleId=com.apple.mobilephone&country=AR&lang=es_AR
es_AR是通过 UserDefaults.standard.object(forKey: “AppleLanguages”) 返回.{
"errorMessage": "Invalid value(s) for key(s): [language]",
"queryParameters": {
"output": "json",
"callback": "A javascript function to handle your search results",
"country": "ISO-2A country code",
"limit": "The number of search results to return",
"term": "A search string",
"lang": "ISO-2A language code"
}
}
此时, 将 es_AR 改为 es, 即可正常返回 json 数据, 与 Apple 官方描述相茅盾 !