首页 > 其他分享 >Mac OS中测试App出现libcrypto1.0.0.dylib 无法找到的错误 “Image Not Found“ “Code 1 Library missing“

Mac OS中测试App出现libcrypto1.0.0.dylib 无法找到的错误 “Image Not Found“ “Code 1 Library missing“

时间:2025-01-21 19:58:37浏览次数:3  
标签:Code name missing 0.0 libcrypto.1 install dylib OS tool

最近在升级App时,本地测试没有问题,在其他机器上测试时,出现了,"libcrypto.1.0.0.dylib"  Image Not Found, "Library missing"的问题。

XCode出现“Image Not Found”的错误,可能有以下几个原因:

1. libcrpto.1.0.0.dylib,文件没有copy到程序包里面。需要检查程序包里是否有改文件

2. libcrpto.1.0.0.dylib , 文件的调用路径不正确。

3. libcrpto.1.0.0.dylib , 的install name是绝对路径,而不是@rpath, @executable_path等相对路径。

经过排查,只可能是原因3, 需要用到 install_name_tool 来修改libcrypto.1.0.0.dylib的install_name

1. 什么是install name?

每一个dylib都有一个install_name , 可以用 otool -L 来查看dylib的install name, 如下图红框部分所示,整个路径就是libcrypto.1.0.0.dylib的install name

因为此处是绝对路径,所以程序在另一台电脑运行时,就会出现找不到的错误

2. install_name_tool命令修改install name

install_name_tool -id 命令用于修改动态库的安装名称(install name)‌。

该命令的基本语法如下:

install_name_tool -id new_path path_of_dylib

其中,new_path 是新的安装名称,path_of_dylib 是要修改的dylib文件(绝对路径,相对路径均可以)

修改libcrypto.1.0.0.dylib的install name命令如下:

install_name_tool -id @rpath/libcrypto.1.0.0.dylib  ./libcrypto.1.0.0.dylib

如果出现如下错误,

error: install_name_tool: can't open input file: ./libcrypto.1.0.0.dylib for writing (Permission denied)
error: install_name_tool: can't lseek to offset: 0 in file: ./libcrypto.1.0.0.dylib for writing (Bad file descriptor)
error: install_name_tool: can't write new headers in file: ./libcrypto.1.0.0.dylib (Bad file descriptor)
error: install_name_tool: can't close written on input file: ./libcrypto.1.0.0.dylib (Bad file descriptor)

就使用如下命令:

sudo install_name_tool -id @rpath/libcrypto.1.0.0.dylib  ./libcrypto.1.0.0.dylib

3. @rpath , @executable_path的区别

后续再补充

标签:Code,name,missing,0.0,libcrypto.1,install,dylib,OS,tool
From: https://blog.csdn.net/pisceshsu/article/details/145289579

相关文章

  • Python----Python高级(文件操作open,os模块对于文件操作,shutil模块 )
    一、文件处理1.1、文件操作的重要性和应用场景 1.1.1、重要性 数据持久化:        文件是存储数据的一种非常基本且重要的方式。通过文件,我们可以将程序运行时产生的数据永久保存下来,以便将来使用。跨平台兼容性:        文件是一种通用的数据交换格......
  • 【Nacos】Nacos快速上手
    Nacos快速上手项目环境介绍一、服务注册/服务发现1.引入SpringCloudAlibaba依赖2.引入Nacos相关的依赖3.引入LoadBalance依赖4.配置Nacos的地址二、修改远程调用代码三、测试四、启动多个服务,测试负载均衡五、可能出现的问题项目环境介绍请你确保你的服务器......
  • IAEPC Preliminary Contest (Codeforces Round 999, Div. 1 + Div. 2)
    A.KevinandArithmetic题意:给你\(n\)个数,你一开始有一个\(x=0\),每次你让\(x\)加上一个没用过的数,然后\(x\)会一直除二直到变成奇数。如果你加上一个数后能除2,分数加1,问分数最大多少。奇数后面加奇数才能是偶数,但一开始\(x\)是零,那么需要一个偶数,否则只能浪费一个奇数。所......
  • 深入理解什么是LSM-Tree 以及相关的NoSQL | Leveldb =>Rocksdb => Ceph
    -[深入理解什么是LSM-Tree-腾讯云开发者社区-腾讯云](https://cloud.tencent.com/developer/article/1441835)-[3.1LSM-Tree介绍-V1.0.0-开发者进阶教程文档-分布式数据库使用文档](https://www.oceanbase.com/docs/community-developer-advance-0000000000634013)-[Leveldb......
  • 【VOS源码解析-2024CVPR-Cutie】1、train_wrapper结构解析
    源码解析论文阅读1、数据预处理2、视频帧特征提取2.1pixelencoder特征提取2.2tranformer_key2.3特征图维度转换论文阅读原文阅读笔记githubarxiv地址训练框架1、train.py概览2、trainner.py概览model主体框架1、train_wrapper1、数据预处理d......
  • centos死机导致mysql无法启动解决
    3306端口没被占用2.查看日志sudocat/var/log/mysqld.log从错误日志来看,MySQL启动失败的主要原因是InnoDB存储引擎的初始化失败。具体错误信息如下:复制[ERROR]InnoDB:IgnoringtheredologduetomissingMLOG_CHECKPOINTbetweenthecheckpoint111575434andthe......
  • Vue 3 开发必备 VS Code 插件推荐
    在Vue3开发中,合适的插件可以大幅提升效率和代码质量。以下是一些推荐插件的简要介绍:AutoCloseTag自动补全HTML和Vue模板中的关闭标签,减少手动输入,支持多种文件类型。AutoRenameTag修改标签时自动同步更新闭合标签,避免手动错误,支持HTML、Vue等文件。Chinese(Si......
  • The directory <Project>\aaa is registered as a Git root, but no Git repositorie
    aaa是一个单独被git管理的项目,把删除其中的.git,后把它移动到一个bbb项目跟目录下(其也已经被git管理),然后报错:Thedirectory<Project>\aaaisregisteredasaGitroot,butnoGitrepositorieswerefoundthere. 根据你的描述,出现这个错误的原因是因为开发工具仍然......
  • 问题8:yum报错:Loaded plugins: fastestmirror Loading mirror speeds from cached hos
    1.问题详情2.解决流程entOS-Base.repo的配置内容如下1[base]2name=CentOS-$releasever-Base3baseurl=http://vault.centos.org/7.9.2009/os/$basearch/4enabled=15gpgcheck=16gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-778[updates]9n......
  • Codeforces Round 999 比赛记录
    前情提要这个菜鸡CF上了\(\color{darkcyan}Specialist\),心情大好,正好赶上放假,决定打一场CF。赛时记录A上来脑子抽了,吃了一发罚时。发现写错了一种情况,改过来就过了。感觉并不是一个好的开始。B竟成为本人唯一一遍过的题,虽然写的时候有点慌。CDP。一开始认为空间不够,但发......