美文网首页
构建Framework静态库

构建Framework静态库

作者: yangjiayu | 来源:发表于2016-08-12 16:21 被阅读31次

iOS创建静态库

纯笔记。
类似于各类SDK,只暴露bundle文件,和Framework文件。
可以将本地文件(高内聚,低耦合之类)文件放到pod中。HERE
也可以放在Framework中,实现模块化,功能化,不过这样看不到源文件,只有.h文件,自己用的时候好装B的说。

xcode: 7.3.1

bundle文件

bundle是只是包含资源文件。

新建bundle

  1. 新建一个工程。选择


    Paste_Image.png
  2. 将文件拖到工程中,然后点击Run一下,bundle文件就生成了。右键showinFinder就可以找到文件,加入到所需项目中即可使用。


    Paste_Image.png
  3. 如图
Paste_Image.png

Framework是静态文件

Framework在ios中可以是静态库也可以是动态库。但是只有Apple官方可以创建。
看下说明:

静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。

动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。

说白了,就是静态库只有你写的app可以用,动态库是可以即使app在挂起的时候,各个app也可以公用的文件。

创建Framework文件

  1. 新建工程


    Paste_Image.png
  2. 设置状态为


    Paste_Image.png
  3. 如何不暴露出来文件


    Paste_Image.png
  4. 会有一个问题,做出来的Framework可能没法兼容真机和模拟器,然后做兼容。 Paste_Image.png
  5. 然后 Paste_Image.png
    Paste_Image.png

# Sets the target folders and the final framework product.
# 如果工程名称和Framework的Target名称不一样的话,要自定义FMKNAME
# 例如: FMK_NAME = "MyFramework"
FMK_NAME=${PROJECT_NAME}
# Install dir will be the final output to the framework.
# The following line create it in the root folder of the current project.
INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework
# Working dir will be deleted after the framework creation.
WRK_DIR=build
DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework
SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework
# -configuration ${CONFIGURATION}
# Clean and Building both architectures.
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphoneos clean build
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator clean build
# Cleaning the oldest.
if [ -d "${INSTALL_DIR}" ]
then
rm -rf "${INSTALL_DIR}"
fi
mkdir -p "${INSTALL_DIR}"
cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"
# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7) into one Universal final product.
lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/${FMK_NAME}"
rm -r "${WRK_DIR}"
open "${INSTALL_DIR}"

  1. Run一下这个test schema。成功之后会open当前的文件,Framework库就完成了。拖到工程中即可使用。


    Paste_Image.png

相关文章

  • 构建Framework静态库

    iOS创建静态库 纯笔记。类似于各类SDK,只暴露bundle文件,和Framework文件。可以将本地文件(高内...

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

  • 静态库和动态库

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

  • 静态库和动态库

    静态库:.a 和 .framework动态库:.tbd(.dylib) 和 .framework静态库:链接时会...

  • iOS架构之路09 -- .a与.framework静态库之间的

    .a静态库依赖于.framework静态库 首先创建.framework静态库工程,命名为FColorSDK,工程...

  • iOS-SDK从无到有

    A、关于静态库和动态库 静态库:.a和.framework ,动态库:.dylib和.framework。.fra...

  • 自定义三方SDK静态库、.framework

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

  • iOS 制作静态库

    制作静态库 动态库:.dylib .framework 静态库:.a .framework 两者区别*:动态库时在...

  • 学习笔试--静态库和动态库

    静态库和动态库的存在形式 静态库:.a和.framework 动态库:.dylib和.framework 创建自己...

  • iOS里的动态库和静态库

    介绍 动态库形式:.dylib和.framework 静态库形式:.a和.framework 动态库和静态库的区别...

网友评论

      本文标题:构建Framework静态库

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