librlottie + Xcode
rlottie + Xcode 项目的包装器。这 enables Carthage && SwiftPM 支持。
此仓库还包括 CocoaPods 的 spec 文件以使用 rlottie。
需求
- iOS 9
- macOS 10.10
- tvOS 9.0
- watchOS 2.0
注意
三星的 rlottie 现已发布第一个标签版本,请参阅:rlottie#159。本仓库主要匹配相同的版本标签。
但是,如果由于苹果平台(rlottie 不提供官方 iOS 支持)的集成问题存在严重错误,我们可能会发布补丁版本,该版本与上游版本不匹配,这里提供了上游提交哈希值
- 0.1.0:
a717479
- 0.2.1:
3cd0015
如果您遇到缓存问题,请按照以下步骤更新您的包管理者
- CocoaPods:
pod cache clean librlottie
&&pod update
- Carthage:
rm -rf ~/Library/Caches/org.carthage.CarthageKit
&&carthage update --cache-builds
- SwiftPM:
Xcode Clean
适用于 iOS 和模拟器
rlottie 的源代码使用了 C++ 线程局部特性。然而,iOS 使用系统提供的 ABI 来支持 C++ 线程局部,但不是语言层面,只能在 iOS 9.0+ 上运行,不支持 32 位 i386 模拟器。
这就是为什么我们必须限制 iOS 上的最小部署目标版本。更多请参考此处:为什么苹果的 clang 不允许 C++11 的 thread_local,尽管官方的 clang 支持
安装
Carthage
librlottie 通过 Carthage 提供。
github "SDWebImage/librlottie-Xcode"
CocoaPods
librlottie 通过 CocoaPods 提供。
pod 'librlottie'
SwiftPM
librlottie 通过 Swift 包管理器 提供。
let package = Package(
dependencies: [
.package(url: "https://github.com/SDWebImage/librlottie-Xcode", from: "0.2.0")
],
// ...
)
使用
如常使用 librlottie,此仓库仅添加了一个 Xcode proj。
对于 Swift 包管理器用户,建议使用模块导入而非 C 头文件。
- Objective-C
@import librlottie;
// or if you don't use module
#import <rlottie/rlottie_capi.h>
- Swift
import librlottie
适用于C++用户
rlottie 公共头文件和模块映射不包含 C++ 头文件 rlottie.h
,因为 Swift/Objective-C 无法导入 C++ 接口(Objective-C++ 可以,但需要禁用 clang 模块)。
如果您需要 C++ 接口,请使用公共头文件搜索路径 include
,并确保已禁用模块。
许可
librlottie 在 LGPL 许可证 下提供。