我正在尝试开发与CarPlay兼容的iOS应用程序。
根据这篇文章Is iOS CarPlay API Public? How to Integrate CarPlay?,我必须注册Apple的MFi程序,但我注意到可以在Xcode中使用CarPlay模拟器:启动模拟器,然后硬件 - > 外部显示器 - > CarPlay (我使用Xcode 8)。 打开它后,您会看到消息应用程序正在CarPlay模拟器中工作,所以我想可以在没有注册MFi程序的情况下在此模拟器中尝试自定义应用程序。 我想知道是否有人试图在CarPlay模拟器上启动应用程序,如果得到肯定答复,他可以解释他是如何做的。
我还观看了WWDC 2016(https://developer.apple.com/videos/play/wwdc2016/722/用Safari打开它),它解释了CarPlay系统及其工作原理。在本演示文稿的最后,他们说您必须在 Info.plist中的 SupportExternalAccessoryProtocols 键中声明字符串协议名称(如 com.brand ) 文件,但我不明白如何获取字符串协议名称。
我也找不到有关模拟器的任何信息以及如何开发与之兼容的应用程序。
如果有人知道有关它的事情,那将是一个很大的帮助。
提前致谢。
答案 0 :(得分:12)
您无需为 SupportExternaalAccessoryProtocols 键添加任何内容,即可在模拟器中运行基本的CarPlay应用。这用于声明可能特定于特定主机单元集的功能协议。
您可能缺少的是可播放的内容权利。如果您没有权利文件,则需要为您的应用创建该文件; -
然后为com.apple.developer.playable-content
键
现在应该在模拟器中的CarPlay主屏幕上显示您的应用。在您提到的情况下,您无法在物理设备上运行该应用,除非您可以让Apple将该权利添加到您的帐户
答案 1 :(得分:6)
从iOS 12开始,基于导航的应用程序现在拥有com.apple.developer.carplay-maps
的权利,其工作方式与com.apple.developer.playable-content
相同,因此您可以在模拟器中测试您的应用程序。您可能需要使用终端命令defaults write com.apple.iphonesimulator CarPlay -bool YES
启用CarPlay模拟器才能使其显示。