美文网首页
IOS_Framework制作(单独,面向Xcode10)

IOS_Framework制作(单独,面向Xcode10)

作者: 冰冰凉3 | 来源:发表于2018-12-09 22:09 被阅读0次

Framework

创建FrameWork

image.png

配置Framework

  • Build Settings >> Dead Code Stripping >> 设置为NO
  • Build Settings >> Strip Debug Symbol During Copy >> 全部设置为NO
  • Build Settings >> Strip Style >> 设置为Non-Global Symbols
  • Build Settings >> Link With Standard Libraries >> 设置为 NO
  • Build Settings >> Mach-O Type >> Static Library
  • 对于Mach-O Type:选择 Static Library 打包得到的是静态库

添加Aggregate

image.png
image.png

添加编译脚本

image.png

···

更新后的代码

FMK_NAME=${PROJECT_NAME}
INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework
WRK_DIR=build

DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework
SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework

xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphoneos clean build
#Xcode10此次clean会把当前目录删除然后,重新编译生成新的(即上一步真机生成)。
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator 
#clean build

if [ -d "${INSTALL_DIR}" ]
then
rm -rf "${INSTALL_DIR}"
fi
mkdir -p "${INSTALL_DIR}"
cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"

lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/${FMK_NAME}"
rm -r "${WRK_DIR}"
open "${SRCROOT}/Products/"



编译

image.png

编译成功后会自动跳出一个finder,保存这个.framework,这就是我们需要的framework。


image.png

使用FrameWork

如果是动态库:需要单独将framework嵌入到ipa安装包中,因为动态库的特点就是运行时加载,所以app的可执行程序中并不会链接其使用的动态库,需要将动态库和可执行程序同时放在安装包中:


image.png

此工程编译打包出来的app文件中,如下图所示,会增加一个Frameworks文件夹,里面存放的正式嵌入的动态库:


image.png

另外

如果Frmawork文件包含category,那么引用该动态库的文件应该设置

other linker flakes 为-all_load

相关文章

  • IOS_Framework制作(单独,面向Xcode10)

    Framework 创建FrameWork 配置Framework Build Settings >> Dead ...

  • IOS_Framework 经验

    Part01 :头文件 概述:所有.h文件引用的文件均应包含在PublicHeader中; 所有的协议文件 基础类...

  • 公告

    本软件由小山单独制作,制作得不好,勿喷! 作者QQ:2339223097 QQ群:665033375

  • 函数和方法区别

    面向对象的语言叫方法,面向过程的语言叫函数。函数是大家的函数,方法是类的方法。 函数是单独存在的,也就是面向过程部...

  • Xcode10填坑 library not found for

    1、缺失lstdc++.6.0.9 直接手动从Xocde9复制到Xcode10会有问题,提供制作好的替身文件:下载...

  • Xcode10 之 Bundle 的制作

    先创建Bundle项目 创建一个项目[1]:Xcode -> File -> New -> Project 点击m...

  • java基础学习之面向对象

    面向对象是一种技术的开发模式,但是最早的时候所使用的模式是面向过程 1):面向过程:指的是针对于某一个问题单独提出...

  • iOS自定义代码块(快速开发)

    更新提示:以下创建方法适用于xcode10以下版本,内容介绍不受影响,xcode10创建方法请参考xcode10代...

  • 1 游戏制作方法 基础篇

    译文: 《游戏制作方法 基础篇》这篇文章,是面向初学者而写的游戏制作讲座,或者说是游戏制作入门。有人想要制作游戏,...

  • xcode10编译报错记录总结

    昨天xcode10正式版发布了,为了适配新系统和新机型所以果断把xcode升级到了xcode10。xcode10最...

网友评论

      本文标题:IOS_Framework制作(单独,面向Xcode10)

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