借助我们基于 Metal 的渲染器,您现在可以在 SwiftUI 项目中嵌入原生 3D 内容。
这个原生渲染器使您能够将 Spline 中 3D 设计的所有交互性带到 Apple 设备上。它还充分利用 iPhone、iPad 或 Mac 等 Apple 设备的所有本机性能。
要求
请按照以下步骤进行设置,来使用 Spline iOS Runtime。
1. 注册Apple ID或加入Apple开发者计划
- 想要开始在您的设备上测试您的应用程序,您需要一个免费的 Apple ID。
- 想要在 App Store 上发布您的应用程序,您需要注册 Apple 开发者计划。
有关 Apple ID 和 Apple 开发者计划会员资格之间差异的更多信息,请参阅 Apple 关于选择会员资格的文档。
团队 ID
为了让您在 Xcode 中构建应用程序,您可能需要一个团队 ID。
了解如何在 Apple 文档中查找您的团队 ID:找到您的团队 ID。
2.下载并安装Xcode
要使用 Spline 本机嵌入,您需要将 Spline iOS 运行时集成到 Xcode 项目中。这意味着如果您想构建 iOS 应用程序,则必须安装 Xcode。 Xcode 仅适用于 macOS。
- 从 Mac App Store 下载最新版本的 Xcode。
- 从 Apple Developer 网站下载 Xcode 的最新版本或测试版。
入门
请按照以下步骤开始通过 Spline iOS Runtime在 Swift 项目中使用本机 3D 嵌入。
平台支持
Spline 正在使用最新技术在 Apple 平台上渲染 3D 内容。
设备 | OS最低要求 | 芯片最低要求 |
iPhone | iOS 16.0 及以上 | A13 及以上 |
iPad | iPadOS 16.0 及以上 | A13 及以上 |
Mac | macOS 13.0 及以上((通过 Mac Catalyst 或专为 iPad 设计) | Apple Silicon |
Vision Pro | 实验支持(开发中) | M2 |
Apple TV | 未支持 | - |
Apple Watch | 未支持 | - |
语言和库支持
Spline iOS 运行时使用 SwiftUI 和 Swift。
1. 将 Spline iOS Runtime的包添加到 Xcode
想要通过 Swift Package Manager 添加,请在 Xcode 中选择“文件”>“添加包依赖项”。
在包查找器中搜索 spline-ios
或输入完整的存储库 URL:https://github.com/splinetool/spline-ios
有关更多信息,请参阅 Apple 的有关向应用程序添加包依赖项的文档。
2.导入Spline iOS Runtime
要导入 Spline iOS Runtime,请确保始终将以下代码添加到使用 Spline Runtime的文件顶部。
import SplineRuntime
3. 使用Spline iOS Runtime
3.1 从Spline导出
- 在顶部工具栏中,按
导出
按钮打开导出面板; - 在“Apple 平台”下,选择“
Embed嵌入式
”选项。
请务必返回导出面板并按更新按钮以查看对应用程序中的场景进行的所有更新
。
要在本地加载Spline场景,您可以使用代码片段下方的下载
按钮。
要禁用Spline的logo,您需要有效的超级或超级团队订阅。
在“加载”选项下,您可以为场景选择加载程序的类型。
3.2 与您的 Xcode 项目集成
通过云端
- 复制代码片段并将其粘贴到您的 ContentView Swift 文件中;
import SplineRuntime
import SwiftUI
struct ContentView: View {
var body: some View {
// // fetching from local
// let url = Bundle.main.url(forResource: "scene", withExtension: "splineswift")!
// fetching from cloud
let url = URL(string: "https://build.spline.design/8DX7ysrAJ3oDSok9hNgs/scene.splineswift")!
try? SplineView(sceneFileURL: url).ignoresSafeArea(.all)
}
}
- 如果不使用本地文件,您可以保留
fetching from local
的注释或将其完全删除。 - 如果您想在没有标题栏的情况下全屏显示您的体验,请使用
.ignoresSafeArea(.all)
。 - 使用多个云嵌入时,您可以使用相同的代码片段并更改
string
后的 URL。
通过本地
- 使用代码片段下方的“下载”按钮以
.splineswift
文件形式获取Spline场景的本地副本; - 将
.splineswift
文件导入到 Xcode 项目的根文件夹中; - 复制代码片段并将其粘贴到
ContentView
上; - 注释掉
fetching from cloud
,取消注释从本地代码获取。
import SplineRuntime
import SwiftUI
struct ContentView: View {
var body: some View {
// fetching from local
let url = Bundle.main.url(forResource: "scene", withExtension: "splineswift")!
// fetching from cloud
// let url = URL(string: "https://build.spline.design/8DX7ysrAJ3oDSok9hNgs/scene.splineswift")!
try? SplineView(sceneFileURL: url).ignoresSafeArea(.all)
}
}
- 当使用多个本地文件时,您可以在
forResource
之后更改文件名。 - 如果文件名是
scene.splineswift
,代码应如此所示:forResource: "scene"
4.发布和分发您的应用程序
有关发布到 App Store 的更多信息,请参阅 Apple 关于分发应用程序进行 Beta 测试和发布的文档。
下载 Xcode Demo
通过使用云 iOS 嵌入下载 Xcode demo项目来了解其工作原理。
步骤:
- 在 Xcode 上,转到“文件”>“打开”并选择包含您的项目的解压文件夹;
- 选择您的构建设备 - 确保使用您的物理设备(iPhone、iPad、Mac),因为模拟器当前无法预览样条线场景;
- 按 ▶️ 构建您的项目。
在构建之前
您可能需要进入“签名和功能
”,在“签名
”下手动添加您的团队。
另外,请确保将捆绑包标识符
更改为唯一的标识符。
可能的警告
构建应用程序时,即使应用程序正确构建,嵌入中也可能会显示一些错误。请参阅下文以查看警告及其解释。
"Spline scene file is in an unknown format”
导出的文件太旧、运行时太旧或者文件可能已损坏。
"Spline scene file URL could not be reached”
当运行时无法从网络下载 .splineswift
文件时会显示它。这可能是因为 URL 无效,或者只是网络连接无法正常工作。
功能支持路线图
Metal 渲染 的所有 Spline 功能的全面覆盖预计将于 2024 年初准备就绪,以下是每个功能的当前状态列表。该列表将每周更新一次,直到一切都得到完全支持。
功能 | 状态 | 笔记 |
参数化二维形状 | ✅ | |
参数化三维形状 | ✅ | |
非参数化三维形状 | ⏰ | 3D 路径、车床、细分网格已烘焙(暂时)- 即将推出全面支持 |
材质图层 | ✅ | 视频层支持即将推出。
轮廓图层中的某些设置尚不支持。 |
状态 | ✅ | |
基础过渡 | ✅ | |
物理 | ✅ | |
游戏控件 | ✅ | |
高斯泼溅 | ✅ | |
变量 | ✅ | |
交互 | ✅ ⏰ | 触发区域和碰撞事件即将推出 |
动作 | ✅ ⏰ | 即将全面支持 |
后处理 | ✅ | |
点光源 | 🚧 | |
动画模型 | 🚧 | |
多场景 | 🚧 | 仅导出主要场景 |
生成应用程序
将 3D 内容导出到 iOS 等 Apple 平台的另一种方法是直接从 Spline 生成预构建的 Xcode 项目。