静态库的资源(图像和 plist)捆绑

Posted

技术标签:

【中文标题】静态库的资源(图像和 plist)捆绑【英文标题】:Resource (Images & plists) bundling for Static library 【发布时间】:2011-03-29 04:38:43 【问题描述】:

我为我的应用程序创建了一个静态库。现在,我的应用程序使用了我在我的应用程序中引用的 plists 和图像之类的资源。

我如何捆绑这些图像并将它们与静态库一起交付,以及我需要在源加载代码中进行哪些更改才能从该捆绑包中加载它。

现在我使用 [UIImage imageNamed:"my.png"] 来加载图像。

【问题讨论】:

【参考方案1】:

图书馆不能有“资源”。库只会提供一些算法或逻辑来完成工作。因此,您不能在库中包含任何资源。除了您的图书馆,您还必须分发资源。否则,使用该库的应用程序必须具有与您硬编码的名称相同的资源。

【讨论】:

确实如此。如何创建资源包。有什么想法吗? 不知道。我从来没有遇到过这么典型的场景。【参考方案2】:

这正是创建框架的原因 - 在您拥有的框架中:

一个静态库(带有用于 模拟器和手机融合在一起) 包含框架用户的文件 需要 框架需要的资源,其中 可以是任何东西,包括 .plist 文件、图像或 xib。

编辑:

删除了已失效的链接。您不再需要知道如何为 ios 构建框架,因为从 iOS8 开始您可以让 Xcode 创建一个 iOS 框架项目。

事实上这也是一个很好的方法,因为框架可以很容易地导入到 Playgrounds 中进行调用。

【讨论】:

感谢您的注意,修复了反映 Xcode 更新的答案。使用框架的原因保持不变;这样做比以往任何时候都容易!

以上是关于静态库的资源(图像和 plist)捆绑的主要内容,如果未能解决你的问题,请参考以下文章

访问捆绑包上的资源[重复]

如何使用静态库传输资源文件(如何将资源包装在包中)?

使用来自 Xcode 4 子项目的静态库和捆绑产品

静态库中的 VC++ 资源

静态库的临时构建(Testflight)

单例模式 静态库和动态库的区别