iOS调用动态库运行报错dyld: Library not loaded

iOS报错「dyld: Library not loaded」:动态库加载路径与Bitcode编译的冲突解决 错误的本质是动态库加载路径配置与Bitcode编译冲突路径配置:通过和确保动态库可访问。Bitcode兼容:启用并合成多架构动态库。调试工具链:使用otoollipo和Xcode调试工具定位问题。最佳实践开发阶段:在模拟器和真机上分别测试动态库加载。集成阶段:通过CocoaPods/SPM管理依赖,确保库版本与主项目兼容。上架阶段:验证动态库签名和Bitcode支持,避免被App Store拒绝。通过系统性地应用上述方法,可显著降低动态库加载错误的发生率,提升iOS应用的稳定性和可维护性。 阅读详情
dyld: Library not loaded: @executable_path/testdylib.dylib
  Referenced from: /private/var/mobile/Containers/Bundle/Application/79BEC832-780C-4AFE-9018-04833F140108/TSArm.app/TSArm
  Reason: no suitable image found.  Did find:
/private/var/mobile/Containers/Bundle/Application/79BEC832-780C-4AFE-9018-04833F140108/TSArm.app/testdylib.dylib: mmap() error 1 at address=0x00178000, size=0x00001000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/79BEC832-780C-4AFE-9018-04833F140108/TSArm.app/testdylib.dylib
/private/var/mobile/Containers/Bundle/Application/79BEC832-780C-4AFE-9018-04833F140108/TSArm.app/testdylib.dylib: mmap() error 1 at address=0x0017B000, size=0x00001000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/79BEC832-780C-4AFE-9018-04833F140108/TSArm.app/testdylib.dylib


原因:dylib库文件不会在打包时签名,而iPhone6安全机制改变,强制检查动态库签名问题。
可以使用命令查看:

$ codesign -dvvv /xxx/xxxx

解决方案:
A、使用静态库
B、在Build Phase中添加如下签名的脚本



install_name_tool -change testdylib.dylib @loader_path/testdylib.dylib ${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}
echo
'path: ' ${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}

#this is the list of binaries we have to sign for beeing able to run un-jailbroken
LIST_BINARY_EXTENSIONS="dylib so 0 vis pvr"

export CODESIGN_ALLOCATE=`xcodebuild -find codesign_allocate`

GEN_ENTITLEMENTS=
"/Users/zhangjg/src/gen_entitlements.py"

if [ ! -f ${GEN_ENTITLEMENTS} ]; then
echo
"error: $GEN_ENTITLEMENTS not found. Codesign won't work."
exit -1
fi

if [
"${PLATFORM_NAME}" == "iphoneos" ]; then
${GEN_ENTITLEMENTS} 
"com.trustmobi.TSArm" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
codesign -v -f -s
"iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"

#if user has set a code_sign_identity different from iPhone Developer we do a real codesign (for deployment on non-jailbroken devices)
if ! [ -z "${CODE_SIGN_IDENTITY}" ] && [ "${CODE_SIGN_IDENTITY}" != "iPhone Developer" ] && [ "${CODE_SIGN_IDENTITY}" != "Don't Code Sign"  ]; then
echo Doing a full bundle sign using genuine identity
"${CODE_SIGN_IDENTITY}"
for binext in $LIST_BINARY_EXTENSIONS
do
codesign -fvvv -s
"${CODE_SIGN_IDENTITY}" -i com.trustmobi.TSArm `find ${CODESIGNING_FOLDER_PATH} -name "*.$binext" -type f` ${CODESIGNING_FOLDER_PATH}
done
echo In case your app crashes with SIG_SIGN check the variable LIST_BINARY_EXTENSIONS in tools/darwin/Support/Codesign.command
fi
fi


Xcode创建和使用iOS的dylib动态库 详情请参看 http://blog.youkuaiyun.com/hursing/article/details/8688861 立即下载

相关推荐

从星形到三角形:永磁同步电机FOC+SVPWM控制的相位偏移与扇区重构

本文深入探讨了将FOC+SVPWM控制方案从星形接法永磁同步电机移植到三角形接法时遇到的核心挑战。文章重点解析了由绕组连接方式差异导致的30度相位偏移问题,并详细阐述了如何为此重构扇区判断逻辑、矢量作用时间计算以及电流采样变换,为工程师提供了从理论到实践的完整移植指南。

ujm5678901的博客 544

dyld: Library not loaded 动态库不能被加载

在项目中用到了很多的动态库.dylib,有些把它加进来就提示动态库不能被加载,很多都是在项目中没有调用到动态的库中的函数,简单的做法就是把它从项目剔出,如果有调用到库里的函数就要认真分析是什么原因导致动态库加载失败了。而非真正的image not found的原因。 dyld: Library not loaded: @executable_path/lib/libnetembryo

yuanya的专栏 3863

【Godot】构建可维护的游戏工程 —— 项目代码组织结构

本文系统梳理了Godot引擎项目组织原则与架构模式,提出场景中心化、命名规范一致性和资源隔离三大核心原则。推荐按功能模块划分目录结构(如scenes/、entities/、systems/),采用snake_case命名避免跨平台问题,并通过.gdignore优化资源管理。文章详细解析了自包含场景设计、信号驱动解耦等架构技巧,以及团队协作中的版本控制策略,强调通过模块化设计平衡一致性与实用性。最终目标构建清晰可维护的项目结构,使资源定位和功能扩展更加高效。(148字)

qq_40205510的博客 1173

报错dyld: Library not loaded原因:链接时和运行时都需要指定动态库路径(利用@rpath指定运行时动态库路径)

最近在mac上写了一个动态库,然后又写了一个可执行文件来链接它并使用该动态库。链接时一切正常,但是在执行生成的可执行文件时出现了下面的链接报错: dyld: Library not loaded: ./obj/libtest.dylib Referenced from: /Users/zeng/Workspace/practice_make/generate_lib/./test Reaso...

qq_41230365的博客 4943

cartographer从入门到精通(一):cartographer介绍

Cartographer的架构图我们可以看到白色框出来的三个区域,分别是Input Sensor Data(数据输入模块)Local SLAM(局部SLAM模块)Global SLAM (background thread)(全局SLAM模块)下面我们分别介绍一下这几个模块。

weixin_68094467的博客 1052

【SOFA】SOFA框架+Win10+VS2019 配置

SOFA (Simulation Open Framework Architecture)官网 SOFA 是一个开源的仿真框架,用于实时的物理仿真,而且主要针对医学上的仿真。主要用于研究人员开发新的算法,也可以作为一个有效的快速成型工具或是物理引擎。 官网中给出的配置方法写的很清晰,有着各个库或者软件的版本要求,仔细看按版本要求来 官网配置地址 官网给了两种方 1.通过脚本自动配置 2. 自己下载相关库通过CMake进行生成 第一种 没使用,不知道是否好使,因为如果其中有下载的东西,国内不一定能成功,大家可

GordonWei 5260

XCode6添加自定义framework运行时出现dyld: Library not loaded的解决方法

XCode6添加自定义framework运行时出现dyld Library not loaded的解决方法 XCode6添加自定义framework运行时出现dyld: Library not loaded的解决方法在使用自定义的framework运行时,会出现如下的错误:dyld: Library not loaded: @rpath/IpuMap.framework/IpuMap Refer

shelomi的专栏 6508

避开这5个坑!Tushare数据获取与清洗的常见问题解决方案

本文详细解析了使用Tushare进行金融数据分析时常见的5大问题,包括Token失效、数据缺失、频率限制等,并提供了Python实战解决方案。通过智能填充策略、队列化管理和分层存储设计,帮助开发者高效获取和清洗金融数据,提升量化分析效率。特别适合金融数据分析师和Python开发者参考。

f9g0h的博客 419

mac os python3 报错dyld: Library not loaded

dyld: Library not loaded: @executable_path/…/.Python Referenced from: /Users/gaox/work/env/bin/python Reason: image not found 因为最近用brew upgrade更新东西,导致brew里面的env的环境软链接被清空了, 所以得重新清空python里面的env软链接,再新建一个...

demo 8241

【制作100个unity游戏之22】3DRPG游戏开发01——项目的设置和导入及渲染管线的安装修复

如果你现在存在一些疑惑unity导入素材为什么是粉紫色的?表示他没有适配我们的URP通用渲染管线,要如何适配呢?素材渲染错误丢失要如何解决?如果你有上面3个任意的问题,那这篇文章同样适合你,我将手把手教你如何安装修复渲染管线,看完你就了解了!在Unity中,他们都是渲染管线,它们的主要区别在于性能和功能。LWRP是早期版本的URP,它专门为移动设备和低端PC设计,旨在提供更高的性能。它使用基于顶点的光照和简化的后处理效果,可以在更低的硬件要求下运行。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2428

【K8S系列】Kubernetes 中 Service 的流量不均匀问题【已解决】

在 Kubernetes 中,Service 是一种抽象,用于定义一组 Pod 的访问策略。当某些 Pod 接收的流量过多,而其他 Pod 的流量较少时,可能会导致负载不均衡。这种情况不仅影响性能,还可能导致某些 Pod 过载,影响应用的可用性。本文将详细分析此问题的原因及其解决方案。

颜淡慕潇 8737

python3错误:dyld: Library not loaded: @executable_path/../.Python

dyld: Library not loaded: @executable_path/../.Python Referenced from: /usr/local/bin/python3 Reason: image not found [1] 888 abort python3 查看/usr/local/bin/python3 路径上是有python3的软链接的 网上找...

stven_king的专栏 1万+

QT C++ AI棉花智能变量灌溉工上位机(信创完整版)

北斗履带灌溉机器人/田间分区电磁阀基站 → 多层土壤温湿度/盐分EC传感器实时采集墒情 → 双目AI视觉扫描棉田长势、病苗分布 → AI融合**生育期+土壤墒情+盐分+棉株长势**计算变量灌溉定额、水肥配比、灌溉时长 → 分区电磁阀/变频水泵变量供水,病弱苗地块减量、干旱地块增量;墒情、盐分、长势多因子闭环修正灌水量;多层土壤含水率(0–10/20–40/40–80cm)、土壤EC盐分、土壤温度、空气温湿度、蒸发量、北斗地块坐标、管道水压、水肥罐液位、分区流量计、水泵电机负载、滴灌带压力反馈。

寒寒豆豆软件公司的博客 184

iOS 解决报错 dyld: Library not loaded: @rpath/xxx.framework Reason: image not found

最近在做接入大华平台的 SDK 的时候遇到了一个问题,我按照接入文档导入了大华的 SDK,运行直接奔溃了,无语了 奔溃报错信息如下: XCODE 控制台打印信息如下: dyld: Library not loaded: @rpath/DHMediaPlayFramework.framework/DHMediaPlayFramework Referenced from: /priva...

俊而不逊的博客 7328

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【iOS开发】Xcode使用CocoaPods时真机运行报错:dyld: Library not loaded: @rpath/AFNetworking.framework/AFNetworking

Library not loaded: @rpath/FBLPromises.framework/FBLPromises iOS 13.3.1 [duplicate]

qq_18864907的博客 1952

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

使用第三方动态库出现dyld: Library not loaded Reason: image not found

使用第三方动态库出现如下错误: dyld: Library not loaded: @rpath/AipOcrSdk.framework/AipOcrSdk Referenced from: /var/containers/Bundle/Application/C3E607DA-217A-4432-A035-F14FE1C79D45/MyTest.app/MyTestApp Reason: image not found 第一种解决方法: 1、在Xcode中的Build Phases中的Copy

C 2942

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

ios开发——日常之dyld: Library not loaded: @rpath/MySDK.framework/MySDK 错误解决

我最近在学习封装Framework库,在学习过程中遇到要了如题问题: 当我使用封好的系统默认的动态库时,报如下错误:     dyld: Library not loaded: @rpath/MySDK.framework/MySDK   Referenced from: /var/mobile/Applications/08B6D2C2-5028-4A64-93F5-1252B0B0BCA

zzzzzdddddxxxxx的专栏 9156

dyld: library not loaded: 错误解决

dyld: Library not loaded: @rpath/PageController.framework/PageController Referenced from: /var/mobile/Applications/E19A46C2-C0EC-4DC4-A9CE-DC84811DD7E8/ Reason: image not found 这个错误原因很是坑,

海阔天空的专栏 1075

dyld: Library not loaded: @rpath/IDLFaceSDK.framework/SDK错误问题

项目中嵌套了百度离线人脸信息采集sdk,里面有个IDLFaceSDK.framework。还没有到appdelegate里面代理就开始报错dyld: Library not loaded: @rpath/SDK.framework 但是下载的demo里面运行 正常,发现需要手动 这么设置: 单独把第三方的这个动态库加进去;以上步骤之后,重新启动运行xcode,即可成功运行。 ...

ios_xumin的专栏 2139

使用第三方动态库出现dyld: Library not loaded

使用第三方动态库出现如下错误:dyld: Library not loaded: @rpath……第一种解决方法:1、在Xcode中的Build Phases中的Copy Files项中,将你要引用的framework拖到“LinkedFrameworks and Libraries“中【如果已经添加了,跳过这一步】2、把Build Phases 里Social.framework后边的选项修改成...

倚栏静望的博客 1万+

iOS 开发解决dyld: Library not loaded: @rpath/xxx.framework/

程序编译成功,但是运行就报错: dyld: Library not loaded: @rpath/Neptune.framework/NeptuneReferenced from: /Users/anmo/Library/Developer/CoreSimulator/Devices/F7FBB9B2-35E9-4088-A699-F5E3BFD1356A/data/Containers/Bundle/Application/6F865895-4B3B-4DF5-B7C1-ECB7081B5F97/Plat

甜吖~的博客 916

iOS 报错 : dyld: Library not loaded: @rpath/

今天用阿里短视频点播短视频服务按照上边引导导入sdk后编译报错: dyld: Library not loaded: @rpath/ 整了半天 结果是目前iOS的短视频SDK输出的都是动态库,需要以动态库的方式添加. 需要在MyApp的工程中做如下配置 转载于:https://www.cnblogs.com/wxlmss/p/8022026.html...

weixin_30715523的博客 264

终极解决方案:解决Legacy-iOS-Kit中的DYLIB动态库加载难题

Legacy-iOS-Kit是一款集成降级/恢复、SHSH blobs备份和越狱功能的一体化工具,专为老旧iOS设备用户提供全面解决方案。在使用过程中,DYLIB动态库加载问题是常见的技术障碍,本文将提供简单有效的解决方法,帮助用户顺利完成设备维护操作。 ## 为什么DYLIB加载失败会影响Legacy-iOS-Kit使用? 动态库(DYLIB)是iOS系统中不可或缺的组件,负责提供应用程序运

gitblog_07999的博客 458

dyld: Library not loaded: @rpath/****.framework/***

错误: dyld: Library not loaded: @rpath/****.framework/**** Referenced from: /Users/***/Library/Developer/CoreSimulator/Devices/167421B8-6B78-4F72-A226-240737DB7961/data/Containers/Bundle/Application/EDEF2AEB-790F-4AB7-9D98-CD387DA67B30/****.app/**** Re

u012938194的专栏 1080

ios Framework 制作 的一个坑 Reason: image not found dyld: Library not loaded:

为什么会这样的?因为我们做的是动态库,在使用的时候需要额外加一个步骤,要把Framework同时添加到‘Embedded Binaries’中 ... 详情 请见  http://www.cocoachina.com/ios/20141126/10322.html

Ydc__的专栏 1万+
上一篇: 自定义一个Framework包 dyld: Library not loaded
下一篇: 越狱手机运行程序退出: Killed: 9
坚果-大发
博客等级 码龄20年 90粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值