Xcode生成静态库和bundle

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xcode生成静态库和bundle相关的知识,希望对你有一定的参考价值。

参考技术A 编码完成后,暴露api接口

选择真机或者模拟器编译项目,去Finder中查看导出的静态包。
打包时注意区分生产和测试

1、如果静态库本身有引入framework,对应的framework需要导入项目中
2、静态库无法打包图片资源,所以图片需要以bundle的形式导出

看这篇文章
https://www.jianshu.com/p/44aacd5b8adb

参考链接:
https://www.jianshu.com/p/662832e16625
https://www.jianshu.com/p/2723efc8b1d2

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

【中文标题】使用来自 Xcode 4 子项目的静态库和捆绑产品【英文标题】:Using static library and bundle products from Xcode 4 subproject 【发布时间】:2011-12-06 16:40:35 【问题描述】:

我有一个包含 2 个项目的工作区:

    一个有 2 个产品的项目:一个静态库和一个资源包 构建 iOS 应用的项目。

第一个项目已添加为第二个项目下的子项目引用。我的静态库构建良好,它链接到应用程序,一切都很好。但是,我似乎无法在应用程序中包含资源包。

捆绑包已添加到应用的“构建”方案中。

我尝试将 Resources.bundle 拖入应用的“复制构建资源”阶段,但这会导致构建时出现此错误:

.../DerivedData/MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator/Resources.bundle: No such file or directory

所以我查看了派生数据目录,我在

中看到了 Resources.bundle
MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug 

不是

MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator.  

我认为这是因为捆绑包不是特定于平台的。所以我尝试添加一个构建阶段以将捆绑包复制到产品目录。导致此构建错误:

.../DerivedData/MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator/Resources.bundle depends on itself.  This target might include its own product.

但是没有 Debug-iphonesimulator/Resources.bundle 文件,所以我看不出这个依赖来自哪里。任何建议将不胜感激。

【问题讨论】:

【参考方案1】:

我想通了。问题是(如上所述)捆绑不是特定于平台的,因此它输出到 Products/Debug 目录,而应用程序输出到 Products/Debug-iphonesimulator 目录。我必须添加一个运行脚本阶段才能将资源复制到应用程序包中:

SRC="$BUILD_DIR/$CONFIGURATION/Resources.bundle"
DEST="$BUILD_DIR/$CONFIGURATION$EFFECTIVE_PLATFORM_NAME/$FULL_PRODUCT_NAME"
cp -R "$SRC" "$DEST"

【讨论】:

你能解释一下如何添加这个运行脚本吗? 这真是太棒了。实际上,我正在尝试将我的 SRC 定位到“~/Xcode/DerivedData/MyTarget-blydmmnwjukedcdoelnbylneztfd/Build/Products/Debug-iphonesimulator”,但在这里它给出了“~/Xcode/DerivedData/MyTarget-blydmmnwjukedcdoelnbylneztfd/Build/Products/Debug”。你能帮我解决这个问题吗?

以上是关于Xcode生成静态库和bundle的主要内容,如果未能解决你的问题,请参考以下文章

iOS, Xcode11,项目提示第三方库报错无法运行 bundle format unrecognized, invalid, or unsuitable

iOS 动态库+静态库

Xcode for iPhone 中静态库和动态库的区别

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

静态库和 Swift

Xcode7 制作通用的framework,静态库和动态库