ResourcePackage 1.4.0

ResourcePackage 1.4.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2018年2月
SPM支持 SPM

Alfred Gao 维护。



 
依赖
SimpleEncrypter>= 0
TextFormater>= 0
DeviceKit>= 0
 

  • Alfred Gao

ResourcePackage

将 app 资源打包加密进行管理。

将资源打包到一个文件中,并通过文件名作为键来访问它们。

要求

  • iOS 9.0+, OSX 10.12+

安装

TextFormater 可通过 CocoaPods 安装:

ResourcePackage 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中

pod "ResourcePackage"

结构

Structure

用法

打包工具 - 打包工具

git clone https://github.com/1Fr3dG/ResourcePackage.git
cd ResourcePackage
cd packager
swift build -c release
.build/release/packager

可以使用此打包工具将资源目录打包成单个文件供应用程序使用。

该工具旨在将资源文件夹打包为一个文件,以便由应用程序使用。

注意: 此工具仅支持 gzip 作为压缩算法,您可以构建自己的工具以支持更多。

打开包

let _compress: SimpleEncrypter = EncrypterCompress(with: "gzip")
let _encrypt: SimpleEncrypter = EncrypterXor(with: "password12345")
let _pkgfile: String = "filename"
let pkg = ResourcePackage(with: _pkgfile, encrypter: _encrypt, compressor: _compress)

使用包读取器打开包

let pkgReader = ResourcePackageReader(
        withCache: false,
        useTwoStepLocating: false,
        autoDeviceCustomization: false,
        useKeyPrefix: false)
pkgReader.packages["pkg1"] = pkg

let themePkgReader = ResourcePackageReader(withTheme theme: String,
                            FromThemePackages respkg: ["themePkg1" : themePkg],
                            withBackwardTheme backward: "default")

读取数据

let stringValue = String(data:pkgReader[keyofString], encoding: .utf8)
let imageValue = UIImage(data:pkgReader[keyofImage])

资源优先级

  • 资源包的优先级是包键的逆序

  • pkgReader[key] 将按以下顺序查找资源:

    • [key+model+lang]
    • [key+model]
    • [key+devicetype+lang]
    • [key+devicetype]
    • [key+lang]
    • [key]

    ** 备注:它将只会搜索带有 [key] 资源的包 **

  • 对于两步定位,后缀不会应用于第二次搜索,但将包含所有包

使用 UIExtensions

uibutton.loadTheme(from: themePkgReader, key: "button1")
uilable.setText(from: themePkgReader, key: "labeltext")
uiimageview.setImage(from: themePkgReader, key: "image1")
  • uibutton.loadTheme
    • key.title -> uibutton.attributedTitle
    • key.image -> uibutton.image
    • key.bgimg -> uibutton.backgroundImage
    • key.disabled.above
    • key.highlighted.above
    • key.selected.above
    • key.focused.above

  • uilabel.setText
    • key -> uilabel.attributedText

  • uiimageview.setImage
    • key -> uiimageview.image
    • key.highlighted -> uiimageview.highlightedImage

声音

pkgReader.playSound(key: "asound", withVibrate: false)
pkgReader.playMusic("bgmusic.mp3", loops: 1, volume: 0.8)

作者

Alfred Gao[email protected]

许可证

ResourcePackage遵从MIT许可证。有关更多信息,请参阅LICENSE文件。