在mac app bundle中嵌入框架

问题描述 投票:0回答:1

我为Mac安装程序创建了一个requirementsCheck.bundle项目,然后创建一个框架并将其拖到bundle中。

我想这可能是因为我使用安装程序应用程序来运行bundle,因为我在安装程序运行时从bundle项目获得值[[NSBundle mainBundle]executablePath],它是/System/Library/CoreServices/Installer.app/Contents/MacOS/Installer。因此,运行搜索路径可能来自此位置。

此框架的构建设置如下:

enter image description here

捆绑项目的构建短语如下:

enter image description here

捆绑项目的构建设置如下:

enter image description here

之后,我使用此捆绑包创建包并运行安装程序。输入此捆绑包时会发生错误。它说:Error loading /var/folders/d5/ydvs_pts06l_v4pltvtd80880000gn/T/com.apple.install.AifpVAae/TMRequiredChecking.bundle/Contents/MacOS/TMRequiredChecking: dlopen(/var/folders/d5/ydvs_pts06l_v4pltvtd80880000gn/T/com.apple.install.AifpVAae/TMRequiredChecking.bundle/Contents/MacOS/TMRequiredChecking, 265): Library not loaded: @rpath/XXXXX.framework/Versions/A/XXXXX Referenced from: /var/folders/d5/ydvs_pts06l_v4pltvtd80880000gn/T/com.apple.install.AifpVAae/TMRequiredChecking.bundle/Contents/MacOS/TMRequiredChecking Reason: image not found

我已经检查了复制到TMRequiredChecking.bundle / Contents / Frameworks`文件夹的框架,我尝试了很多不同的路径(@executable_path ../ Frameworks,@ loader_path / Frameworks),用于关键的“动态库安装名称库”框架项目。他们都没有工作。所以任何人都可以告诉我如何通过捆绑项目找到这个框架。

谢谢!

ios macos
1个回答
0
投票

我已经找到了这种情况的解决方案。请参阅此链接Here的@loader_path说明

我将框架项目的“动态安装名称库”设置为@loader_path../Frameworks,然后将捆绑项目的“Runpath搜索路径”设置为@loader_path../Frameworks。每个人都可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.