博客> Framework制作
Framework制作
2017-11-22 07:17 评论:0 阅读:323 chenjm
ios Xcode8

Framework制作

使用xcode8制作framework

第一步 创建一个framework

 new_framwork.png

第二步 把需要编译的文件放进工程

 add_files.png

第三步 把需要暴露出来的头文件移动到public

 public_header.png

第四步 配置Build Settings

首先,你需要提供一个目录名,表示你将把拷贝的公共头文件存放到哪里。这样确保当你使用静态库的时候可以定位到相关头文件的位置。

 where_public_header.png

现在你需要改变一些其他的设置,尤其是那些在二进制库中遗留下的设置,编译器提供给你一个选项,来消除无效代码:永远不会被执行的代码。当然你也可以移除掉一些debug用符号,例如某些函数名称或者其他跟debug相关的细节。

因为你正在创建framework供他人使用,最好禁掉这些功能(无效代码和debug用符号),让用户自己选择对自己的项目有利的部分使用。和之前一样,使用搜索框,改变下述设置:

  • Dead Code Stripping设置为NO
  • Strip Debug Symbol During Copy 全部设置为NO
  • Strip Style设置为Non-Global Symbols
  • Mach-O Type 设置Static Library

第五步 添加一个Aggregate

add_aggregate.png

第六步 添加一个脚本shell,通过它编译真机和虚拟机framework,并合并成一个通用的framework。

 # 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 "${SRCROOT}/Products/"

参考:

iOS开发——创建你自己的Framework

iOS中制作可复用的框架Framework

收藏
0
sina weixin mail 回到顶部