首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >仅针对iPhone的应用程序

仅针对iPhone的应用程序
EN

Stack Overflow用户
提问于 2012-12-03 14:23:38
回答 1查看 1.4K关注 0票数 1

我的应用被拒绝了,因为它在iPad上崩溃。老实说,它应该会崩溃,因为它没有我的应用程序使用的SIM卡(用于发送消息)。我已经制作了设备: iphone,并在我的构建中部署目标iphone。然而,出于某种原因,苹果的人仍然试图在iPad上运行它。我怎么才能让我的应用程序只适用于iPhone?没有理由捕获异常并尝试在iPad或iPod touch上运行它,因为大多数应用程序功能都包含发送短信。我该怎么做?以及如何确保应用程序只在iPhone上运行,而不是在iPad或iPod touch上运行

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-03 14:31:12

我认为一种选择是在应用程序info.plist中提供UIRequiredDeviceCapabilities标志。你可以给Telephonysms,这样它就可以过滤掉没有SIM卡的设备。

来自iphone app programming guide

UIRequiredDeviceCapabilities -应用商店使用此密钥来确定应用程序的功能,并防止将其安装到不支持应用程序所需功能的设备上

如果你阅读上面pdf (第93页)中的应用程序相关资源部分,那应该会更好。

从上面的文档中,

如果您的应用程序需要特定设备功能的存在或不存在才能运行,则必须在应用程序的Info.plist文件中使用UIRequiredDeviceCapabilities键声明这些要求。在运行时,除非设备上存在声明的功能,否则iOS无法启动您的应用程序。此外,App Store需要此信息,以便它可以生成用户设备的要求列表,并防止用户下载他们无法运行的应用程序

它说,iOS在启动之前会检查所需的设备功能。所以我认为你不会有任何问题。关于模拟器,我不确定上面是否适用于他们,因为我们甚至可以在模拟器中模拟来电(你知道模拟器没有SIM卡)。所以我不确定模拟器在这种情况下对你有多大帮助。

还有一件事,如果这款应用在非sim设备上运行时崩溃,苹果只会拒绝它。苹果总是批准一个应用程序,在使用它之前优雅地检查设备功能是否存在。在使用短信功能之前,您可以检查设备是否可以发送短信。

代码语言:javascript
运行
复制
if([MFMessageComposeViewController canSendText]){
  // send sms
}

如果它不能发送短信,就会显示一个提示框。只有两行代码,但不那么头疼和紧张。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13678181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档