摘要:本文将带你了解IOS开发入门iOS 封装含有静态库的动态库Framework,希望本文对大家学IOS有所帮助。
本文将带你了解IOS开发入门iOS 封装含有静态库的动态库Framework,希望本文对大家学IOS有所帮助。
项目中静态库出现了冲突,所以我采用动态库方式封装静态库解决这个问题;
以环信SDK为例:
建立动态库:
CMD+Shift+N
导入SDK
使用:你需要自己声明一个类调用这些头文件中方法,即我们自己转接实现一下。值得注意的是,如果你引用了动态库中文件,那么该文件所Import的文件也应该为public,如此类推。<喎?"https://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxpbWcgYWx0PQ=="这里写图片描述" src="https://www.2cto.com/uploadfile/Collfiles/20160916/201609160942311619.png" title="\" />
然后我们将这个文件的.h文件设为public,即可在外部引用包含在动态库中的该文件。
此外静态库所需要的依赖库,你在你的framework工程中也必须导入
此外导入UI文件(xib,view,VC等),其实就是一个项目的文件,放在动态库中封装
注意图片和xib资源最好不要放入动态库中,因为动态库中导入图片需要设置为动态库的路径,最好合成一个bundle,或者文件夹,与动态库一起放入所需工程中。
最好是图片和xib与动态库分开,作为资源文件。即将用到的xib全部打包,和动态库一起给用户
静态库bitcode不支持,设置动态库项目bitcode为NO
然后选择项目编译
1.如果出现Undefine symbol to arm7s 类似问题,检查下你的依赖库全部导入没有;
2.见图
出现这个问题,修改下other linker flag 为 -read_only_relocs suppress
然后可以编译模拟器真机版本,然后来合并各CPU类型版本
选中项目:
Other - >Aggregate
拷贝下面脚本:
# 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}/"
cp -R "${SIMULATOR_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}"
然后选择运行
然后会弹出合并后的framework 即最终版本;
使用
将framework与资源文件导入所需工程中
提示:
选择工程 -> build phases -> embed frameworks
(没有的话 ,去general里面有)
添加你的framework,然后再运行即可;
然后你就可以开始调用动态库的代码了;
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号