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?
问题描述
崩溃日志是这样开始的:
终止原因: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屋!