这节内容我们继续说一下在有Xib和图片资源情况下的打包(开发环境Xcode 5.1),这里我会介绍两种方法(本节第一种):
Resources文件夹引入进去(直接拖进项目中),所以打包的静态库a文件中图片和xib的路径不需要进行更改,平时开发项目的时候是这么写的,还是怎么写。具体来看看怎么做:
第一步:新建一个类库打包项目(具体流程这里不做介绍,可参照 iOS 静态库a文件的打包 上)如下图:
注意:上节在
architectures和Build active Architecture Only 说的很详细,这这个属性也是经常会出错的地方,大家可以仔细阅读 静态库a文件的打包 上。
第二步,在项目中新增一个ViewController (h、m、xib三个文件),起名问BundleViewController ,新建一个实体文件夹Resources,把BundleViewController.xib和1.jpg 放到改文件下,之后把这个文件拖进项目中,在Xib添加一个UIImageView ,图片资源选择1.jpg,如下图:
第三步:在TestBundleLibrary.h/m文件声明和实现这么一个方法:
- (UIViewController
{
BundleViewController *bundleVc = [[BundleViewController alloc] init];
return
}
OK 之后 我们可以Command+B(注意属性architectures和Build active Architecture Only设置,不明白参见静态库a文件的打包 上),可以看到:
报UI的错,我们都知道UIXXX控件都是来自UIKit这个framework,我们看看这个框架是否引入:
红色就是没有引入,我们先把这个红色删掉,在重新添加UIkit,之后在 报错的页面 加入
#import <UIKit/UIKit.h>
再次 Command+B 可以看到
a文件已经存在了,我们找到文件和他的头文件。
第三步:我们在建一个新项目Empty Application,起名为HelloBundle,引入这个a文件和头文件,同时,把打包项目中的Resources文件也要引入进去(切记),如下图:
第五步:在项目中的appdelegate中引入
#import "TestBundleLibrary.h"
在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary
方法中添加 三行代码(如 上图)
*testBundle = [[TestBundleLibrary alloc] init];
UIViewController *helloBundle = [testBundle getBundleVc];
self.window.rootViewController
之后Command+B得到运行结果是如下图
大功告成