librlottie + Xcode

CI Status Version License Platform Carthage compatible SwiftPM compatible

一个 rlottie 的封装 + Xcode 项目。这使得 Carthage && SwiftPM 支持成为可能。

这个仓库也包含了使用 rlottie 的 CocoaPods spec 文件。

要求

注意

Samsung 的 rlottie 现在发布了第一个 tag 版本,请参见:rlottie#159。此仓库主要匹配上游的相同版本 tag。

但是,如果由于 Apple 平台上的集成问题而出现严重的错误(rlottie 不提供官方的 iOS 支持),我们可能会发布补丁版本,该版本与上游不匹配,此处提供上游提交的 HASH 值

如果您遇到缓存问题。请按照以下步骤更新您的 Package Manager

对于 iOS 和模拟器

rlottie 源代码使用了 C++ Thread Local 功能。但是,iOS 使用系统提供的 ABI 来支持 C++ thread local,而不是语言层面,这仅在 iOS 9.0+ 上有效,并且不支持 32 位 i386 模拟器。

这就是为什么我们必须限制 iOS 上的最低部署目标版本的原因。在此了解更多信息:为什么 Apple clang 禁止 C++11 thread_local,而“官方”clang 支持它

安装

Carthage

librlottie 可通过 Carthage(通过此仓库)获得。

github "SDWebImage/librlottie-Xcode"

CocoaPods

librlottie 可通过 CocoaPods 获得。

pod 'librlottie'

SwiftPM

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

对于 C++ 用户

rlottie umbrella 头文件和 modulemap 不包含 C++ 头文件 rlottie.h,因为 Swift/Objective-C 无法导入 C++ 接口(Objective-C++ 可以,但需要禁用 clang module)。

如果您需要 C++ 接口,请使用公共头文件搜索路径 include,确保您也禁用了 module。

许可证

librlottie 在 LGPL 许可证 下可用。