12

我正在尝试开发与 CarPlay 兼容的 iOS 应用程序。

根据这篇文章iOS CarPlay API 是公开的吗?如何集成 CarPlay?,我必须注册 Apple 的 MFi 程序,但我注意到可以使用带有 Xcode 的 CarPlay 模拟器:启动模拟器,然后启动硬件->外部显示器-> CarPlay(我使用 Xcode 8)。打开它后,您会看到 Message App 正在 CarPlay 模拟器中运行,因此我想有可能在此模拟器中尝试自定义应用程序,而无需注册 MFi 程序。我想知道是否有人尝试在 CarPlay 模拟器上启动应用程序,如果得到肯定回答,他可以解释他是如何做到的。

我还观看了 WWDC 2016(https://developer.apple.com/videos/play/wwdc2016/722/用 Safari 打开),它解释了 CarPlay 系统及其工作原理。在本演示文稿的最后,他们说您必须在Info.plist文件的SupportExternalAccessoryProtocols键中声明一个字符串协议名称(如com.brand),但我不明白如何获取字符串协议名称。

我也没有找到关于模拟器以及如何开发与之兼容的应用程序的任何信息。

如果有人知道一些关于它的事情,那将是一个很大的帮助。

提前致谢。

4

2 回答 2

17

您无需为SupportExternalAccessoryProtocols密钥添加任何内容即可在模拟器中运行基本的 CarPlay 应用程序。这是为了声明可能特定于一组特定主机单元的功能协议。

您可能缺少的是可播放的内容权利。如果您没有权利文件,则需要为您的应用创建它;-

xcode 导航器

com.apple.developer.playable-content然后为键添加一个布尔值 YES

权利文件

这应该会在模拟器的 CarPlay 主屏幕上显示您的应用程序。正如您所提到的,除非您可以让 Apple 将该权利添加到您的帐户,否则您将无法在物理设备上运行该应用程序

于 2017-03-13T11:50:26.487 回答
9

从 iOS 12 开始,现在有com.apple.developer.carplay-maps基于导航的应用程序的权利,其工作方式与com.apple.developer.playable-content您可以在模拟器中测试您的应用程序相同。您可能需要使用终端命令启用 CarPlay 模拟器以defaults write com.apple.iphonesimulator CarPlay -bool YES使其显示。

于 2018-07-19T01:49:19.683 回答