安装自定义cocoa框架的最佳方法

我有一个自定义框架,遵循Apple的框架编程指南>>中的建议. Installing your framework我在/ Library / Frameworks中安装.我通过使用以下脚本添加Run Script构建阶段来完成此操作:
cp -R  build/Debug/MyFramework.framework /Library/Frameworks

在我的项目中,我然后链接/ Library / Frameworks / MyFramework并将其导入我的类中,如下所示:

#import <MyFramework/MyFramework.h>

这非常有效,除了我总是在调试器控制台中看到以下消息:

Loading program into debugger…
sharedlibrary apply-load-rules all
warning: Unable to read symbols for “/Users/elisevanlooij/Library/Frameworks/MyFramework.framework/Versions/A/MyFramework” (file not found).
warning: Unable to read symbols from “MyFramework” (not yet mapped into memory).
Program loaded.

显然,编译器首先查看/ Users / elisevanlooij / Library / Frameworks,找不到MyFramework,然后查看/ Library / Frameworks,确实找到MyFramework并继续其快乐的方式.到目前为止,这更像是一个烦恼而不是真正的问题,但是当运行单元测试时,gdb停止(文件未找到)并拒绝继续.我通过在Run Script Phase中添加一行来解决这个问题

cp -R  build/Debug/MyFramework.framework ~/Library/Frameworks

但感觉就像是在拍摄一些不应该被打破的东西.我怎样才能解决这个问题?

解决方法

在过去的几个月里,我学到了很多关于框架的知识,所以我正在重写这个答案.请注意,我在谈论安装框架作为开发工作流程的一部分.

安装公共框架(即将由多个应用程序或软件包使用的框架)的首选位置是/ Library / Frameworks [link text],因为“编译时编译器会自动发现此位置的框架”和运行时的动态链接器.“[框架编程指南].最优雅的方法是在Build设置的Deployment部分.

在处理框架时,有时您确实希望在构建时更新框架,而有时则不需要.因此,我仅在发布配置中更改部署设置.所以:

>双击框架目标以显示“目标信息”窗口并切换到“构建”选项卡.
>在“配置”选择框中选择“发布”.
>向下滚动到“部署”部分,然后输入以下值:

Deployment Location = YES (click the checkbox)

Installation Build Products Location = /

Installation Directory = /Library/Frameworks

Installation Build Products Location用作安装的根目录.它的默认值是某个/ tmp目录:如果不将其更改为系统根目录,则永远不会看到已安装的框架,因为它隐藏在/ tmp中.

现在,您可以在调试配置中按照自己的意愿处理框架而不会破坏其他项目,当您准备发布所有需要做的事情时,请切换到Release并执行Build.

Xcode 4警告自从切换到Xcode 4后,我的自定义框架遇到了很多问题.大多数情况下,他们将GDB中的警告链接起来,这些警告并没有真正干扰框架的有用性,除非在运行内置单元测试时.我在一周前向Apple提交了技术支持票,他们仍在调查.当我得到一个有效的解决方案时,我会更新这个答案,因为这个问题已被证明非常受欢迎(1 kViews和计数).

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...