静态库

作者: li_礼光 | 来源:发表于2016-11-20 19:44 被阅读19次

jverkoey大牛的ios静态库blog

https://github.com/jverkoey/iOS-Framework

扩展阅读

1.静态库:
Library vs Framework in iOS
2.资源包
http://blog.csdn.net/zhaoyya/article/details/50543881
3.自动打包
参考jverkoey的脚本
4.独立工程例子

静态库.a文件合成脚本

例:(我的项目的代码例子)

set -e

mkdir -p "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework/Versions/${FRAMEWORK_VERSION}/Headers"

# Link the "Current" version to "${FRAMEWORK_VERSION}"
# 简单粗暴的理解是,创建快捷方式
ln -sfh ${FRAMEWORK_VERSION} "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework/Versions/Current"
ln -sfh Versions/Current/Headers "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework/Headers"
ln -sfh "Versions/Current/${PRODUCT_NAME}" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework/${PRODUCT_NAME}"

# The -a ensures that the headers maintain the source modification date so that we don't constantly
# cause propagating rebuilds of files that import these headers.
# 拷贝头文件
cp -a "${TARGET_BUILD_DIR}/${PUBLIC_HEADERS_FOLDER_PATH}/" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework/Versions/${FRAMEWORK_VERSION}/Headers"

分析:

set -e

你写的每个脚本都应该在文件开头加上set -e,这句语句告诉bash如果任何语句的执行结果不是true则应该退出。这样的好处是防止错误像滚雪球般变大导致一个致命的错误,而这些错误本应该在之前就被处理掉。如果要增加可读性,可以使用set -o errexit,它的作用与set -e相同。

Unix/Linux 脚本中 “set -e” 的作用

http://blog.csdn.net/todd911/article/details/9954961


mkdir -p

如果要创建目录A并创建目录A的子目录B,没有用-p的情况下是mkdir 2次
如果用-p 可以直接创建2个目录 mkdir -p 目录A/子目录B就可以

ln -sfh

其实拆解来看就是 ln -s f h 三个命令功能
命令参数:
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程
(PS:这个例子是别人写的,执行是没有问题的,这里的h估计是help的意思,也可能多打了.理解前面的就可以了)

# 后面的都为注释

cp -a

Linux cp -a用法
对于cp -a最主要的用法是在保留原文件属性的前提下复制文件。

"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework/Versions/${FRAMEWORK_VERSION}/Headers"
路径地址:Users/llg/Library/Developer/Xcode/DerivedData/AcGameSDK-gghelwshltfitdgoubtwrhwblxwz/Build/Products/Debug-iphonesimulator/GamaterSDK.framework/Versions

${BUILT_PRODUCTS_DIR}  
Users/llg/Library/Developer/Xcode/DerivedData/AcGameSDK-gghelwshltfitdgoubtwrhwblxwz/Build/Products/Debug-iphonesimulator/
        
${PRODUCT_NAME}                     GamaterSDK            
${FRAMEWORK_VERSION}                     framework的版本
${TARGET_BUILD_DIR}                   目标路径
${PUBLIC_HEADERS_FOLDER_PATH}            头文件路径           
(应该是这么个意思)

相关文章

  • 目录一、库二、静态库、动态库、Framework三、打包静态库 1、.a静态库和.framework静态库的区别 ...

  • iOS静态库之间互调冲突问题

    研究目的 1. 在其他静态库(B静态库)中导入公共静态库(A静态库),想直接使用公共静态库(A静态库)中的方法和m...

  • iOS小知识 -- 静态库(一)

    静态库静态库的介绍.a静态库的制作以及测试静态库的架构问题.framework静态库的制作以及测试边开发边制作静态...

  • 静态库

    静态库 静态库动态库简介 .a 静态库:被编译好的二进制文件 静态库:.a, .framework 动态库: .d...

  • Ndk生成so和a库,然后主项目进行调用

    在 NDK 开发中引入第三方静态库和动态库 静态库和动态库 静态库 静态库文件后缀一般为 .a ,利用静态库编译成...

  • iOS 静态库和动态库的制作

    静态库和动态库 一、静态库和动态库的存在形式 静态库: .a 和 .framework 动态库: .dylib 和...

  • ios中静态库.a的制作

    在ios中制作静态库之前,先来了解关于静态库的一些概念。 八、静态库和动态库在使用上的区别。静态库:链接时,静态库...

  • ios中静态库.a的制作和使用

    在ios中制作静态库之前,先来了解关于静态库的一些概念。 八、静态库和动态库在使用上的区别。静态库:链接时,静态库...

  • iOS 静态库

    iOS 静态库 iOS 静态库

  • 静态库和动态库

    静态库和动态库的存在形式静态库:.a 和 .framework动态库:.dylib 和 .framework 静态...

网友评论

      本文标题:静态库

      本文链接:https://www.haomeiwen.com/subject/xseypttx.html