一个 rlottie 的封装 + Xcode 项目。这使得 Carthage && SwiftPM 支持成为可能。
这个仓库也包含了使用 rlottie 的 CocoaPods spec 文件。
Samsung 的 rlottie 现在发布了第一个 tag 版本,请参见:rlottie#159。此仓库主要匹配上游的相同版本 tag。
但是,如果由于 Apple 平台上的集成问题而出现严重的错误(rlottie 不提供官方的 iOS 支持),我们可能会发布补丁版本,该版本与上游不匹配,此处提供上游提交的 HASH 值
a717479
3cd0015
如果您遇到缓存问题。请按照以下步骤更新您的 Package Manager
pod cache clean librlottie
&& pod update
rm -rf ~/Library/Caches/org.carthage.CarthageKit
&& carthage update --cache-builds
Xcode Clean
rlottie 源代码使用了 C++ Thread Local 功能。但是,iOS 使用系统提供的 ABI 来支持 C++ thread local,而不是语言层面,这仅在 iOS 9.0+ 上有效,并且不支持 32 位 i386 模拟器。
这就是为什么我们必须限制 iOS 上的最低部署目标版本的原因。在此了解更多信息:为什么 Apple clang 禁止 C++11 thread_local,而“官方”clang 支持它
librlottie 可通过 Carthage(通过此仓库)获得。
github "SDWebImage/librlottie-Xcode"
librlottie 可通过 CocoaPods 获得。
pod 'librlottie'
librlottie 可通过 Swift Package Manager 获得。
let package = Package(
dependencies: [
.package(url: "https://github.com/SDWebImage/librlottie-Xcode", from: "0.2.0")
],
// ...
)
像往常一样使用 librlottie,这只是一个添加了 Xcode 项目的仓库。
对于 Swift Package Manager 用户,建议使用模块化导入而不是 C 头文件。
@import librlottie;
// or if you don't use module
#import <rlottie/rlottie_capi.h>
import librlottie
rlottie umbrella 头文件和 modulemap 不包含 C++ 头文件 rlottie.h
,因为 Swift/Objective-C 无法导入 C++ 接口(Objective-C++ 可以,但需要禁用 clang module)。
如果您需要 C++ 接口,请使用公共头文件搜索路径 include
,确保您也禁用了 module。
librlottie 在 LGPL 许可证 下可用。