Mac 应用程序不会 运行 在 Xcode 之外,缺少库?使用库 ORSSerial
Mac App won't run outside Xcode, Library missing? Using Library ORSSerial
我的应用程序构建时没有错误或警告,并且在 Xcode 7.2.1 中运行良好。但是当我存档并尝试在 Xcode 之外打开它时,图标会短暂闪烁并且出现此错误:
Application Specific Information:
dyld: launch, loading dependent libraries
Dyld Error Message:
Library not loaded: @rpath/ORSSerial.framework/Versions/A/ORSSerial
Referenced from: /Users/USER/Desktop/*/Ascel AE20125 Controller.app/Contents/MacOS/Ascel AE20125 Controller
Reason: image not found
Binary Images:
0x7fff626f2000 - 0x7fff62729007 dyld (360.19) <9D05FDF4-65CE-3B53-86D4-ABE1A5BF35F3> /usr/lib/dyld
0x7fff962e5000 - 0x7fff962e5fff com.apple.Cocoa (6.11 - 22) <0A634D46-B468-3CBC-B2A0-16C381C11BF2> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
0x7fff9c462000 - 0x7fff9c7b6ff7 com.apple.Foundation (6.9 - 1256.1) <66106CC9-9D97-3846-88D8-4BF6BB508296> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
如何编译我的应用程序以使其在 Xcode 之外运行?当我尝试在没有 XCODE 环境的情况下打开已编译的 .app 时会出现此问题。
该应用程序是使用 swift 制作的。
很可能您只为调试配置将库复制到输出包,而在发布时缺少它。检查 project/target 设置。
要扩展@NickolayOlshevsky 的答案,您需要确保 ORSSerial.framework 被复制到应用程序的内部框架文件夹中。在项目的构建阶段,您应该确保有一个阶段(例如嵌入框架)将 ORSSerial.framework 复制到目标的框架文件夹中:
配置它的另一种方法是将框架添加到目标设置的“常规”选项卡的“嵌入式二进制文件”部分:
如果您打开 ORSSerialPort 附带的 PacketParsingDemo 或 RequestResponseDemo 示例项目,您可以看到在这些项目中正确配置了此设置。
我的应用程序构建时没有错误或警告,并且在 Xcode 7.2.1 中运行良好。但是当我存档并尝试在 Xcode 之外打开它时,图标会短暂闪烁并且出现此错误:
Application Specific Information:
dyld: launch, loading dependent libraries
Dyld Error Message:
Library not loaded: @rpath/ORSSerial.framework/Versions/A/ORSSerial
Referenced from: /Users/USER/Desktop/*/Ascel AE20125 Controller.app/Contents/MacOS/Ascel AE20125 Controller
Reason: image not found
Binary Images:
0x7fff626f2000 - 0x7fff62729007 dyld (360.19) <9D05FDF4-65CE-3B53-86D4-ABE1A5BF35F3> /usr/lib/dyld
0x7fff962e5000 - 0x7fff962e5fff com.apple.Cocoa (6.11 - 22) <0A634D46-B468-3CBC-B2A0-16C381C11BF2> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
0x7fff9c462000 - 0x7fff9c7b6ff7 com.apple.Foundation (6.9 - 1256.1) <66106CC9-9D97-3846-88D8-4BF6BB508296> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
如何编译我的应用程序以使其在 Xcode 之外运行?当我尝试在没有 XCODE 环境的情况下打开已编译的 .app 时会出现此问题。
该应用程序是使用 swift 制作的。
很可能您只为调试配置将库复制到输出包,而在发布时缺少它。检查 project/target 设置。
要扩展@NickolayOlshevsky 的答案,您需要确保 ORSSerial.framework 被复制到应用程序的内部框架文件夹中。在项目的构建阶段,您应该确保有一个阶段(例如嵌入框架)将 ORSSerial.framework 复制到目标的框架文件夹中:
配置它的另一种方法是将框架添加到目标设置的“常规”选项卡的“嵌入式二进制文件”部分:
如果您打开 ORSSerialPort 附带的 PacketParsingDemo 或 RequestResponseDemo 示例项目,您可以看到在这些项目中正确配置了此设置。