现在的位置: 首页 > 综合 > 正文

嵌入自定义framework到应用程序包中

2013年09月09日 ⁄ 综合 ⁄ 共 1109字 ⁄ 字号 评论关闭

在实际开发过程中,我们常常要编写自定义的framework。

framework写好后会面对着这样一个问题,我的应用程序加载的时候如何能找到我自己写的framework呢?

 

首先要弄清楚,应用程序加载时寻找framework的路径顺序时怎样的:

1、首先从用户自定义路径中寻找

2、从/Library/Frameworks中寻找--------第三方framework一般放这里

3、从/System/Library/Frameworks中寻找----------苹果官方framework一般放这

 

 

补充一下,如果要让应用程序只给单用户使用,第三方的framework一般放入/Users/username/Library/Frameworks

 

 

如果我们的framework要放入上面第2个路径,则需要我们打包程序时将framework放入该路径。

本主题主要讨论如何嵌入自定义framework到应用程序中,这就涉及到第一点所说,我们必须给我们的自定义framework指定安装路径。

具体操作如下:

双击target下的自定义framework,在弹出窗口中选择build>>Deployment>>Installation Directory

我们主要是要在这里指定framework的安装路径,如果要让应用程序能在自己的包内找到该framework,则该framework的Installation Directory通常配置如下:

@executable_path/../Frameworks

 

在我们的应用程序中,我们可以通过选中添加目录,按住Ctrl键,选择添加Existing framework,找到我们自定义framework添加进来后,记得拖该framework到targets的Link Binary With Libraries文件夹下,保证编译后链接成功。

 

当做完这个工作后运行我们的应用程序的时候,会出现Image not found的错误,这个原因是应用程序没有找到我们添加的framework。

其原因就是我们没有将自定义framework放入系统标准存放framework的地方,也没有将我们的自定义framework放入应用程序包中。

具体解决方法就是:

选中Targets下的应用程序,右键Add>>New Build Phase>>New Copy Files Build Phase .

弹出对话框中默认Destination是Resources,我们需要改成Framewroks,对应@executable_path/../Frameworks,按照我们这里的做法Path可以不填,因为我们没有指定字路径。

 

大功告成!恭喜你!

抱歉!评论已关闭.