gpt4 book ai didi

cocoa - 将多个应用程序放在一个包中时,框架应该放在/Library/Frameworks中还是应用程序包中

转载 作者:行者123 更新时间:2023-12-03 16:20:03 24 4
gpt4 key购买 nike

我有一个由 GUI 和 3 个 launchd 守护进程启动的命令行可执行文件组成的应用程序。

我计划将 launchd 守护进程的可执行文件放入 GUI 的 .app 包中。

这些应用程序利用了我创建的 2 个(都相当小的)框架。

将这些框架放在/Library/Frameworks 中(从而保存加载相同代码的多个应用程序)或将它们保留在应用程序包中(从而使应用程序自包含(除了 launchd plist 之外))是否是一个更好的主意?

最佳答案

底线:我会选择独立的,除非/直到您有令人信服的证据表明将框架放入 /Library/Frameworks/ 将为您的特定场景提供显着的改进。检查两种方法的影响,但我更喜欢首先将框架与应用程序分组。

动态链接器(dyld)在加载框架和重用大多数情况下已经加载的内容方面非常聪明。如果不同位置有多个应用程序使用同一个框架,那么绝对首选将其安装到 /Library/Frameworks/ 。但是,由于您所指的所有“应用程序”似乎都在您的 .app 包中,因此这种方法似乎没有太多好处,因为它们都将链接到相同的路径, dyld 应该捡起来。 (用户不仅需要拥有管理员权限才能修改 /Library ,而且安装过程会立即变得更加复杂。)请参阅 my answer to a related SO question 的最后部分,了解有关分析可执行文件的启动性能的想法,包括检查 dyld 事件。

另一个考虑因素是当框架存储在应用程序包中时,您对框架版本控制的控制程度。如果您有意通过将框架放在规范的公共(public)位置来“发布”框架,则您必须准备好接受其他人可能选择链接到它的后果。然而,如果一个框架仅分布在您的应用程序包中,那么任何选择链接到它的开发人员都没有责任,除了他们自己。 :-)

关于cocoa - 将多个应用程序放在一个包中时,框架应该放在/Library/Frameworks中还是应用程序包中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1122864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com