SmartDeviceLink-iOS 7.6.1

SmartDeviceLink-iOS 7.6.1

测试已测试
语言语言 Obj-CObjective C
许可证 BSD-3-Clause
发布上次发布2023年6月

Joel FischerFrancois EliasJacob Rau 维护。



  • SmartDeviceLink 团队

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

什么是 SmartDeviceLink (SDL)

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

  • 核心 组件是车辆制造商 (OEM) 在其车辆主机单元中实现的软件。根据一组指导和模板集将该组件集成到主机单元和 HMI 中,可访问各种智能手机应用程序。
  • 可选的 SDL 服务器 可由车辆 OEM 用于更新应用程序策略并收集连接应用程序的使用信息。
  • iOSAndroid / Java SuiteJavaScript 库由应用程序开发者在他们的应用程序中实现,以启用通过连接的主机单元进行命令和控制。
  • 要为 SDL 建议新功能,包括 iOS 库,请访问 SDL Evolution github 项目。
  • 要了解是否将贡献作为 iOS Pull Request 或 Issue 或 SDL Evolution Proposal 提交,请参阅 此文档

SDL的手机库组件旨在在SDL启用应用的端用户智能设备上运行。该库允许应用通过蓝牙、USB和TCP连接到SDL启用的车载单元和硬件。一旦库通过首选的传输方式在智能设备和车载单元之间建立连接,这两台设备就能够使用SDL定义的协议进行通信。然后,集成此库项目的应用可以通过文本、媒体和其他交互式元素将其功能暴露给车载单元。

您可以在SmartDeviceLink网站上找到如何使用此库的指南和文档。您可以在SDL Evolution Github上找到即将发布的路线图。

要将此库作为框架安装到您的应用中,请参阅安装指南。其中提供了有关使用Accio、Carthage、CocoaPods和Swift Package Manager安装的说明,以及如何手动安装库框架。

我们的发行版附带一个动态框架文件,可以将其拖放到应用程序中。iOS 8+支持动态框架。**警告:您不能以当前形式提交包含框架的应用到应用商店。您必须首先删除框架中的模拟器部分。先删除x64和i386部分,如下所示:**

lipo -remove i386 -remove x86_64 -o SmartDeviceLink.framework/SmartDeviceLink SmartDeviceLink.framework/SmartDeviceLink

您可以通过以下方式检查当前架构

lipo -info SmartDeviceLink.framework/SmartDeviceLink

获取帮助

如果您有任何问题,请首先查看我们对 SmartDeviceLink 网站的指南

如果您看到一个错误,请在相应的仓库中发布一个问题。在继续之前,请查看 贡献指南。如果您需要一般性帮助或还有其他问题,您可以在 SDL Slack 上注册,并与其他开发者以及项目的维护者聊天。

示例应用

此库仓库包含两个示例应用:一个用 Objective-C 编写,一个用 Swift 编写。如果您已安装 CocoaPods,可以通过在终端中执行 pod try SmartDeviceLink 来轻松运行其中一个示例应用。或者,您可以克隆或下载项目,但在尝试构建和运行示例应用之前,您必须遵循 安装步骤

在示例组织 中还有其他示例应用,这些需要 CocoaPods 来安装依赖项。

向项目贡献力量

我们欢迎对项目做出贡献,但了解项目的组织方式会有所帮助。

  1. 所有 Pull Requests 必须 解决一个问题。在为错误或功能创建 Pull Request 之前,请确保对此问题有一个已开放的 issue。如果没有,请打开一个 issue!
  2. 我们建议您告知项目负责人您打算为该问题提交一个_PULL REQUEST_(PR)。这使我们能够跟踪将要提交的PR,并规划时间来审查您的PR。此外,由于各种原因,我们可能会要求您不要为该问题工作(请参见下文)。
  3. 欢迎提交改进bug的PR!如果已经确认了某个软件缺陷问题,我们将欢迎您的修复。在合并之前,修改后的代码需要项目负责人进行审查。
  4. 功能PR需要额外的规划。在提交一个问题时,功能必须通过SDLC使用进化的流程进行批准。此外,只有在SDLC批准以发布版本开发的功能后,才能为PR打开。最后,如果在所有相关项目的PR都已准备好审查之前,底层功能需要或应跨多个项目进行对齐,则PR无法合并。

为开发做准备

为了准备开发该库,您需要进行以下步骤

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

创建或更新RPC

在创建或更新RPC时,您需要安装并使用RPC生成器。必须使用生成器来确保内容的正确性。要使用生成器,必须更新RPC规范仓库中的RPC。

运行测试

要运行测试,您需要启动Carthage测试库。首先,您需要安装Carthage

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

carthage bootstrap --use-xcframeworks --platform ios

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