玩转 iOS 开发:Aggregate 脚本版本《模拟器与真机静态 Framework 合成教程》

做者感言

为了写这篇文章, 我翻查了许多资料, 都没有找到详细点的可参考资料, 外国的文章就不用说了, 光是看鸡肠就头晕了, 因此我本身总结了一些经验, 整理了一番, 决定分享出来, 但愿你们喜欢html

最后: 若是你有更好的建议或者对这篇文章有不满的地方, 请联系我, 我会参考大家的意见再进行修改, 联系我时, 请备注Aggregate-Framework若是以为好的话, 但愿你们也能够打赏一下~嘻嘻~祝你们学习愉快~谢谢~git


简介

以前我写了一个关于非Aggregate版本的模拟器与真机静态Framework合成教程, 但那个实在是太麻烦的, 因此我又出墙翻了一些歪果仁写的博客, 果真是世上无难事只怕有心人, 终于被我找到合适的Shell脚本了github


建立静态包工程

新建一个Workpace文件shell

0 | center | 1080x0

新建Cocoa Touch Framework工程iphone

1 | center | 1080x0

2 | center | 1080x0

3 | center | 1080x0

4 | center | 1080x0


添加测试类

添加一个测试类TestTwoClass学习

5 | center | 1080x0


配置静态包工程

6 | center | 1080x0

7 | center | 1080x0

8 | center | 1080x0

9 | center | 1080x0

10 | center | 1080x0

11 | center | 1080x0

12 | center | 1080x0


分别生成真机与模拟器的静态包

13 | center | 1080x0

14 | center | 1080x0


建立脚本选项

15 | center | 1080x0

16 | center | 1080x0

17 | center | 1080x0


配置脚本选项

18 | center | 1080x0

打开Run Script以后, 输入如下的脚本, 就能够自动合成通用的Framework库了测试

PS: 脚本是我在Google上搜到的, 详细是谁写的, 我也不清楚, 很感谢这个做者提供的脚本ui

if [ "${ACTION}" = "build" ]
then
INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.framework

DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework

SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework


if [ -d "${INSTALL_DIR}" ]
then
rm -rf "${INSTALL_DIR}"
fi

mkdir -p "${INSTALL_DIR}"

cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"
#ditto "${DEVICE_DIR}/Headers" "${INSTALL_DIR}/Headers"

lipo -create "${DEVICE_DIR}/${PROJECT_NAME}" "${SIMULATOR_DIR}/${PROJECT_NAME}" -output "${INSTALL_DIR}/${PROJECT_NAME}"

#open "${DEVICE_DIR}"
#open "${SRCROOT}/Products"
fi复制代码

19 | center | 1080x0

20 | center | 1080x0

这里逮到一个错误, 不要慌, 由于咱们以前是用Release模式的, 只要把Aggregate切换到Release模式, 再运行就能够了spa

21 | center | 1080x0

22 | center | 1080x0

23 | center | 1080x0

24 | center | 1080x0


检测静态包

25 | center | 1080x0

26 | center | 1080x0

27 | center | 1080x0


测试静态包

测试的方法和模拟器与真机静态Framework合成教程这里面的测试方法同样, 这样就很少作解释了3d

可是这里还有一点须要注意一些, 因为咱们刚刚在打包的时候, 是把TestTwoClass.h是丢到Private里面去的, 哪怕咱们已经把头文件丢到TestTwo.h中, 而后再引用TestTwo.h, 依旧是没办法去调用TestTwoClass内部的任何东西, 怎么办呢?

咱们只要去改改导入的头文件就能够了, 好比:

28 | center | 1080x0

PS: 这种方式只是咱们来玩玩而已, 基本上咱们都会吧.h文件放到public


工程地址

项目地址: github.com/CainRun/Cre…


结束语

好啦, 教程到这里就结束了, 谢谢你们的耐心观看

相关文章
相关标签/搜索