SmartDeviceLink (SDL) 是一套标准的协议和消息集,用于连接智能手机上的应用程序和车载主机。这种消息传递使消费者能够使用常见的车载界面(如触摸屏显示器、嵌入式语音识别、方向盘控制以及各种车辆旋钮和按钮)与其应用程序进行交互。SDL 生态系统由三个主要组件构成。
SDL 的移动库组件旨在最终用户的智能设备上运行,在启用 SDL 的应用程序内。该库允许应用程序通过蓝牙、USB 和 TCP 连接到启用 SDL 的主机和硬件。一旦库在智能设备和主机之间通过首选传输方法建立连接,这两个设备就能够使用 SDL 定义的协议进行通信。集成此库项目的应用程序随后能够通过文本、媒体和其他交互元素将其功能公开给主机。
您可以在 SmartDeviceLink 网站上找到有关如何使用此库的指南和文档。您可以在 SDL Evolution Github 上找到即将发布的版本路线图。
要将此库作为框架安装到您的应用程序中,请参阅安装指南。其中包含有关如何使用依赖管理器 Accio、Carthage、CocoaPods 和 Swift Package Manager 进行安装,以及如何手动安装库框架的说明。
我们的版本标记了一个动态框架文件,该文件可以拖放到应用程序中。iOS 8+ 支持动态框架。警告:您不能按原样将带有框架的应用程序提交到 App Store。您必须首先剥离框架的模拟器部分。首先剥离 x64 和 i386 部分,如下所示:
lipo -remove i386 -remove x86_64 -o SmartDeviceLink.framework/SmartDeviceLink SmartDeviceLink.framework/SmartDeviceLink
您可以像这样检查当前的架构
lipo -info SmartDeviceLink.framework/SmartDeviceLink
如果您有疑问,请首先查看我们在 SmartDeviceLink 网站上的指南。
如果您发现错误,请在相应的存储库上发布 issue。在继续之前,请参阅贡献指南。如果您需要一般帮助或有其他问题,您可以注册 SDL Slack 并与其他开发人员和项目的维护者聊天。
此库存储库包含两个示例应用程序:一个用 Objective-C 编写,另一个用 Swift 编写。如果您安装了 CocoaPods,则可以通过在终端中执行 pod try SmartDeviceLink
轻松运行其中一个示例应用程序。或者,您可以克隆或下载该项目,但在尝试构建和运行示例应用程序之前,您必须按照安装步骤进行操作。
在示例组织中提供了其他示例应用程序,这些应用程序需要 CocoaPods 来安装依赖项。
我们欢迎贡献者参与该项目,但这有助于了解有关项目组织方式的一些信息。
要为开发准备库,您需要执行几个步骤
在创建或更新 RPC 时,您将需要安装并使用 RPC 生成器。必须使用生成器以确保内容正确。要使用生成器,必须在 RPC spec 存储库上更新 RPC。
要运行测试,您将需要引导 Carthage 测试库。为此,首先安装 Carthage。
然后,从根项目目录中运行
carthage bootstrap --use-xcframeworks --platform ios
此时,您可以从 Xcode 运行测试,或者,如果您希望完全按照 CI 服务器上的运行方式运行测试,请参阅YAML 文档,其中描述了这些测试。您还可以查看先前运行的 CI 测试,以了解它们当前的运行方式。