当前位置: 首页 > news >正文

【Mac开发】Mac 应用 Archive 成功后无法打开?

在这里插入图片描述

先查看log文件

终端运行

/path/to/YourApp/Contents/MacOS/appname

以我的app举例,出现报错:

dyld[80346]: Library not loaded: @rpath/libwhisper.1.7.6.dylibReferenced from: <76FBC0BE-06FD-39A0-88A6-E494552B4136> /Applications/WhisperTranscriberV1/WhisperTranscriber.app/Contents/MacOS/WhisperTranscriberReason: tried: '/Applications/WhisperTranscriberV1/WhisperTranscriber.app/Contents/Frameworks/libwhisper.1.7.6.dylib' (code signature in <5EF42270-5D9E-37A2-970D-F783C5EB66BE> '/Applications/WhisperTranscriberV1/WhisperTranscriber.app/Contents/Frameworks/libwhisper.1.7.6.dylib' not valid for use in process: mapping process and mapped file (non-platform) have different Team IDs), '/Applications/WhisperTranscriberV1/WhisperTranscriber.app/Contents/MacOS/../Frameworks/libwhisper.1.7.6.dylib' (code signature in <5EF42270-5D9E-37A2-970D-F783C5EB66BE> '/Applications/WhisperTranscriberV1/WhisperTranscriber.app/Contents/Frameworks/libwhisper.1.7.6.dylib' not valid for use in process: mapping process and mapped file (non-platform) have different Team IDs), '/Users/jyh/MyData/audio2text/WhisperTranscriber/WhisperTranscriber/Libraries/libwhisper.1.7.6.dylib' (code signature in <5EF42270-5D9E-37A2-970D-F783C5EB66BE> '/Users/jyh/MyData/audio2text/WhisperTranscriber/WhisperTranscriber/Libraries/libwhisper.1.7.6.dylib' not valid for use in process: mapping process and mapped file (non-platform) have different Team IDs), '/System/Volumes/Preboot/Cryptexes/OS/Users/jyh/MyData/audio2text/WhisperTranscriber/WhisperTranscriber/Libraries/libwhisper.1.7.6.dylib' (no such file), '/Applications/WhisperTranscriberV1/WhisperTranscriber.app/Contents/Frameworks/libwhisper.1.7.6.dylib' (code signature in <5EF42270-5D9E-37A2-970D-F783C5EB66BE> '/Applications/WhisperTranscriberV1/WhisperTranscriber.app/Contents/Frameworks/libwhisper.1.7.6.dylib' not valid for use in process: mapping process and mapped file (non-platform) have different Team IDs), '/Applications/WhisperTranscriberV1/WhisperTranscriber.app/Contents/MacOS/../Frameworks/libwhisper.1.7.6.dylib' (code signature in <5EF42270-5D9E-37A2-970D-F783C5EB66BE> '/Applications/WhisperTranscriberV1/WhisperTranscriber.app/Contents/Frameworks/libwhisper.1.7.6.dylib' not valid for use in process: mapping process and mapped file (non-platform) have different Team IDs), '/Users/jyh/MyData/audio2text/WhisperTranscriber/WhisperTranscriber/Libraries/libwhisper.1.7.6.dylib' (code signature in <5EF42270-5D9E-37A2-970D-F783C5EB66BE> '/Users/jyh/MyData/audio2text/WhisperTranscriber/WhisperTranscriber/Libraries/libwhisper.1.7.6.dylib' not valid for use in process: mapping process and mapped file (non-platform) have different Team IDs), '/System/Volumes/Preboot/Cryptexes/OS/Users/jyh/MyData/audio2text/WhisperTranscriber/WhisperTranscriber/Libraries/libwhisper.1.7.6.dylib' (no such file)

App 无法打开的确切原因是:

❌ 系统拒绝加载 libwhisper.1.7.6.dylib,因为签名无效

… not valid for use in process: mapping process and mapped file (non-platform) have different Team IDs

这句话的意思是:App 主程序和动态库的签名不一致,即使你没用 Apple Developer 账号签名,macOS 仍然强制它们要一致。

✅ 解决方案:移除 libwhisper.1.7.6.dylib 的签名并统一签名整个 App

你现在需要:

✅ 步骤 1:去掉 dylib 上的签名

codesign --remove-signature “/Applications/WhisperTranscriberV1/WhisperTranscriber.app/Contents/Frameworks/libwhisper.1.7.6.dylib”

对其他 .dylib 文件也执行这个命令,例如:

codesign --remove-signature “/Applications/WhisperTranscriberV1/WhisperTranscriber.app/Contents/Frameworks/libggml.dylib”

你可以写一个循环:

cd /Applications/WhisperTranscriberV1/WhisperTranscriber.app/Contents/Frameworks
for f in *.dylib; do
sudo codesign --remove-signature “$f”
done

✅ 步骤 2:用 ad-hoc 签名整个 App

codesign --force --deep --sign - “/Applications/WhisperTranscriberV1/WhisperTranscriber.app”

这个 - 是 ad-hoc 签名,不需要 Apple 账号,它只是为了让系统允许这些文件一起运行。

✅ 步骤 3:再次运行 App

open /Applications/WhisperTranscriberV1/WhisperTranscriber.app

这时你就不应该再遇到 Team ID 不一致的问题了。

💡 延伸说明:为什么发生这个问题?
• 有些 .dylib 被你系统默认签名(比如 clang 编译时自动带的)
• App 本体未签名或签名方式不同
• 在运行时 macOS 会校验这些模块是否“属于同一个开发者”

这就是看到的 not valid for use in process 错误。

http://www.lryc.cn/news/582594.html

相关文章:

  • 苹果App上架流程:不用Mac也可以上架的方法
  • WPF之命令
  • 【论文阅读】Improving the Diffusability of Autoencoders
  • gloo 多卡训练
  • curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
  • 开发中如何自定义线程池
  • [1-01-01].第50节:泛型 - 泛型的使用
  • 深入了解linux系统—— System V之消息队列和信号量
  • 自动驾驶的“安全基石”:NVIDIA如何用技术守护未来出行
  • 冷链物流配送中心选址与路径优化模型研究
  • 跨越十年的C++演进:C++23新特性全解析
  • 3423. 循环数组中相邻元素的最大差值 — day97
  • 【PTA数据结构 | C语言版】在顺序表 list 的第 i 个位置上插入元素 x
  • JVM 基础 - 类字节码详解
  • Spring自动装配(xml)
  • Vue、Laravel 项目初始化命令对比 / curl 命令/ CORS 机制总结与案例
  • AlphaEvolve:谷歌的算法进化引擎 | 从数学证明到芯片设计的AI自主发现新纪元
  • UI前端大数据处理挑战与对策:大数据量下的实时数据分析技术
  • CD46.【C++ Dev】list的模拟实现(1)
  • 人体坐姿检测系统开发实战(YOLOv8+PyTorch+可视化)
  • WHIP(WebRTC HTTP Ingestion Protocol)详解
  • 装修水电改造需要注意什么?水电改造有哪些注意事项?
  • 力扣-287.寻找重复数
  • 容器技术入门与Docker环境部署
  • 【佳易王娱乐场儿童乐园会员多项目管理系统软件】从 “手工记账” 到 “智能管理”:儿童乐园会员系统的转型价值
  • Docker实用命令
  • 脚本检测 自启 关闭 重启等 tomcat 可修改成其他程序 结合crontab 每天凌晨1点执行
  • LocalStorage和SessionStorage的区别和应用
  • UI前端与数字孪生结合实践案例:智慧零售的库存管理优化系统
  • 车载HMI革命:从物理按键到智能表面的交互逻辑重构