SmartDeviceLink 7.6.1

SmartDeviceLink 7.6.1

测试已测试
Lang语言 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 议案,请参考 本文件

SDL iOS App Library

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网站

如果您发现了bug,请在相应的仓库中发布一个issue。在继续之前,请参阅贡献指南。如果您需要一般性帮助或有其他问题,您可以通过 注册 加入SDL Slack,与其他开发者以及项目的维护者进行聊天。

示例应用

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

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

为项目做贡献

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

  1. 所有的Pull Requests 必须修复一个问题。在创建用于bug或功能的PR之前,确保已经存在一个相关的开放issue。如果没有,请打开一个!
  2. 我们建议您告知项目维护者您打算为该issue贡献一个PR。这允许我们内部跟踪将要贡献的PR,并为审查您的PR安排时间。此外,我们可能因为各种原因要求您不要为该issue的PR工作(见下文)。
  3. 我们欢迎提交修复bug的PR!如果有已确认的bug问题,我们欢迎提交修复。PR合并前需要项目维护者进行审查。
  4. 功能的PR需要额外的规划。在可以创建问题之前,功能必须使用Evolution过程得到SDLC的批准。此外,在可以打开PR之前,功能必须在SDLC批准后开始开发。最后,如果有底层功能需要在多个项目中具有或应该具有一致性,直到所有这些项目的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 测试,以了解它们当前如何运行。