Accio compatible Carthage compatible CocoaPods Version Swift Package Manager compatible License SmartDeviceLink Tests codecov Documentation Slack Status

什么是 SmartDeviceLink (SDL)

SmartDeviceLink (SDL) 是一套标准的协议和消息集,用于连接智能手机上的应用程序和车载主机。这种消息传递使消费者能够使用常见的车载界面(如触摸屏显示器、嵌入式语音识别、方向盘控制以及各种车辆旋钮和按钮)与其应用程序进行交互。SDL 生态系统由三个主要组件构成。

SDL iOS 应用程序库

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 来安装依赖项。

为项目做贡献

我们欢迎贡献者参与该项目,但这有助于了解有关项目组织方式的一些信息。

  1. 所有 Pull Request 必须 修复一个 issue。在为错误或功能创建 PR 之前,请确保已为此打开一个 issue。如果没有,请打开一个!
  2. 我们建议告知项目维护者您打算为某个 issue 贡献 PR。这使我们能够在内部跟踪将要贡献哪些 PR,并计划时间来审查您的 PR。此外,由于各种原因,我们可能会要求您不要处理该 issue 的 PR(见下文)。
  3. 我们欢迎针对错误修复的 PR!如果存在已确认的错误 issue,我们将欢迎错误修复。PR 在合并之前需要项目维护者的审查。
  4. 针对功能的 PR 需要额外的计划。功能必须通过 SDLC 使用Evolution Process 批准后才能打开 issue。此外,功能必须获得 SDLC 的批准才能为某个版本开发,然后才能打开 PR。最后,如果底层功能需要或应该跨多个项目进行对齐,则在所有这些项目的 PR 都准备好进行审查之前,PR 无法合并。

准备开发

要为开发准备库,您需要执行几个步骤

  1. 克隆此存储库。
  2. 使用 git submodule initgit submodule update 安装子模块。
  3. 安装测试依赖项
  4. 确保您可以运行示例测试应用程序

创建或更新 RPC

在创建或更新 RPC 时,您将需要安装并使用 RPC 生成器。必须使用生成器以确保内容正确。要使用生成器,必须在 RPC spec 存储库上更新 RPC。

运行测试

要运行测试,您将需要引导 Carthage 测试库。为此,首先安装 Carthage

然后,从根项目目录中运行

carthage bootstrap --use-xcframeworks --platform ios

此时,您可以从 Xcode 运行测试,或者,如果您希望完全按照 CI 服务器上的运行方式运行测试,请参阅YAML 文档,其中描述了这些测试。您还可以查看先前运行的 CI 测试,以了解它们当前的运行方式。