ios 自制framework遇到 "_OBJC_CLASS_$_XXX", referenced from:

栏目: Objective-C · 发布时间: 6年前

内容简介:Undefined symbols for architecture x86_64:"_OBJC_CLASS_$_XXX", referenced from:objc-class-ref in XXX.o这个问题在维护老代码,使用第三方framework的时候经常出现,网上解决方案不尽相同,但和作者遇到的情况不一样。如果你和作者原因不一样,出门左转。

目录

  • 该错误解决方案
  • 合成framework的脚本

错误信息

Undefined symbols for architecture x86_64:"_OBJC_CLASS_$_XXX", referenced from:objc-class-ref in XXX.o

前情提要

这个问题在维护老代码,使用第三方framework的时候经常出现,网上解决方案不尽相同,但和作者遇到的情况不一样。

如果你和作者原因不一样,出门左转。

出现场景

作者是在制作自己的framework的时候,并应用到工程中,使用真机编译时遇到这个问题。

解决过程

因为编译出错信息出现x86字眼,作者误认为是制作出来的framework不支持x86,多次查看了工程配置,最终通过 lipo -info xxx.framework 命令验证,是支持x86的。

后来在网上检阅,回想起来,我并没有合成真机和模拟器的framework,最终猜想大概率是没有正确合成framework。

说起没有合成framework,看了网上分享的合成步骤比较烦,然后用了错误的脚本输出为空的framework,就没管了,后来又一度怀疑配置问题,结果造成悲剧。

正确姿势

需要将真机和模拟器环境编译出来的framework合并,并将所属目录下的两个文件进行合并。

脚本问题

网上以前的脚本不适用当前xcode版本。

脚本访问的真机和模拟器的路径有误,

所以最终合成出来的是空的framework。

ios 自制framework遇到

正确脚本:

FMK_NAME=${PROJECT_NAME}
if [ "${ACTION}" = "build" ]
then
INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework
DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${FMK_NAME}.framework
SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${FMK_NAME}.framework

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}"
#这个是合并完成后打开对应的文件夹,你就可以直接看到文件了
open "${SRCROOT}/Products"

最后

TABAnimated原生骨架库 交流群:304543771

可以讨论各种技术问题,欢迎您的加入。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C语言程序设计

C语言程序设计

K. N. King / 吕秀锋、黄倩 / 人民邮电出版社 / 2010-4 / 79.00元

时至今日, C语言仍然是计算机领域的通用语言之一,但今天的 C语言已经和最初的时候大不相同了。本书最主要的一个目的就是通过一种“现代方法”来介绍 C语言,书中强调标准 C,强调软件工程,不再强调“手工优化”。这一版中紧密结合了 C99标准,并与 C89标准进行对照,补充了 C99中的最新特性。本书分为 C语言的基础特性、 C语言的高级特性、 C语言标准库和参考资料 4个部分。每章末尾都有一个“问与......一起来看看 《C语言程序设计》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具