Xcode 10 存档应用程序无法在安装了 Xcode 9 或更早版本的 Mac 上运行:DYLD,[0x4] 符号丢失? [英] Xcode 10 Archived App Doesn't Run on Macs with Xcode 9 or Earlier Installed: DYLD, [0x4] Symbol missing?

查看:33
本文介绍了Xcode 10 存档应用程序无法在安装了 Xcode 9 或更早版本的 Mac 上运行:DYLD,[0x4] 符号丢失?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

崩溃日志是这样开始的:

终止原因:DYLD,[0x4]符号丢失应用特定信息:dyld:启动,加载依赖库Dyld 错误消息:未找到符号:__T0SiN引用自:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftos.dylib预期在:/Volumes/VOLUME/*/REDACTED.app/Contents/MacOS/../Frameworks/libswiftCore.dylib在/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftos.dylib

我们的部署目标设置为 10.12.无论是否嵌入 swift 库,崩溃日志都是相同的.以下是我们应用程序本身的 otool -L 输出:

/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation(兼容版本300.0.0,当前版本1555.10.0)/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa(兼容版本1.0.0,当前版本23.0.0)@rpath/Alamofire.framework/Versions/A/Alamofire(兼容版本 0.0.0,当前版本 0.0.0)@rpath/KeychainAccess.framework/Versions/A/KeychainAccess(兼容版本 0.0.0,当前版本 0.0.0)/usr/lib/libobjc.A.dylib(兼容版本 1.0.0,当前版本 228.0.0)/usr/lib/libSystem.B.dylib(兼容版本 1.0.0,当前版本 1252.200.5)/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit(兼容版本 45.0.0,当前版本 1670.0.0)@rpath/libswiftAppKit.dylib(兼容版本 1.0.0,当前版本 1000.11.37)@rpath/libswiftCore.dylib(兼容版本 1.0.0,当前版本 1000.11.37)@rpath/libswiftCoreData.dylib(兼容版本 1.0.0,当前版本 1000.11.37)@rpath/libswiftCoreFoundation.dylib(兼容版本 1.0.0,当前版本 1000.11.37)@rpath/libswiftCoreGraphics.dylib(兼容版本 1.0.0,当前版本 1000.11.37)@rpath/libswiftCoreImage.dylib(兼容版本 1.0.0,当前版本 1000.11.37)@rpath/libswiftDarwin.dylib(兼容版本 1.0.0,当前版本 1000.11.37)@rpath/libswiftDispatch.dylib(兼容版本 1.0.0,当前版本 1000.11.37)@rpath/libswiftFoundation.dylib(兼容版本 1.0.0,当前版本 1000.11.37)@rpath/libswiftIOKit.dylib(兼容版本 1.0.0,当前版本 1000.11.37)@rpath/libswiftMetal.dylib(兼容版本 1.0.0,当前版本 1000.11.37)@rpath/libswiftObjectiveC.dylib(兼容版本 1.0.0,当前版本 1000.11.37)@rpath/libswiftQuartzCore.dylib(兼容版本 1.0.0,当前版本 1000.11.37)@rpath/libswiftXPC.dylib(兼容版本 1.0.0,当前版本 1000.11.37)

研究该主题导致

The crash log begins like so:

Termination Reason:    DYLD, [0x4] Symbol missing

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
 Symbol not found: __T0SiN
 Referenced from: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftos.dylib
 Expected in: /Volumes/VOLUME/*/REDACTED.app/Contents/MacOS/../Frameworks/libswiftCore.dylib
in /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftos.dylib

Our Deployment Target is set to 10.12. The crash log is the same whether swift libs are embedded or not. Below is the output of otool -L for our app itself:

/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1555.10.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 23.0.0)
@rpath/Alamofire.framework/Versions/A/Alamofire (compatibility version 0.0.0, current version 0.0.0)
@rpath/KeychainAccess.framework/Versions/A/KeychainAccess (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.200.5)
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1670.0.0)
@rpath/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1000.11.37)
@rpath/libswiftCore.dylib (compatibility version 1.0.0, current version 1000.11.37)
@rpath/libswiftCoreData.dylib (compatibility version 1.0.0, current version 1000.11.37)
@rpath/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 1000.11.37)
@rpath/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 1000.11.37)
@rpath/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 1000.11.37)
@rpath/libswiftDarwin.dylib (compatibility version 1.0.0, current version 1000.11.37)
@rpath/libswiftDispatch.dylib (compatibility version 1.0.0, current version 1000.11.37)
@rpath/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1000.11.37)
@rpath/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1000.11.37)
@rpath/libswiftMetal.dylib (compatibility version 1.0.0, current version 1000.11.37)
@rpath/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 1000.11.37)
@rpath/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 1000.11.37)
@rpath/libswiftXPC.dylib (compatibility version 1.0.0, current version 1000.11.37)

Researching the topic lead to https://github.com/sindresorhus/gifski-app/issues/12 which appeared to be a very similar issue. Our attempts to configure with @loader_path/../Frameworks have not worked, and the git diffs there are useless as many of the files have since been deleted.

Any ideas or experience with older Xcode being an issue, but only on some machines?

解决方案

Seems like a longshot, but I had a similar issue and this worked for me.

Build Settings -> Always Embed Swift Standard Libraries -> YES

这篇关于Xcode 10 存档应用程序无法在安装了 Xcode 9 或更早版本的 Mac 上运行:DYLD,[0x4] 符号丢失?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆