Xcode8 製作.a靜態庫和存放xib和圖片的.bundle
1、建立MyLibrary靜態庫
如圖:選擇Cocoa Touch Static Library 點選下一步,然後起工程的名字就叫:MyLibrary
選擇庫型別
建立完畢的的樣子就是下圖:
專案建立完成圖
為了使庫的標頭檔案被外面的專案工程找到並呼叫,需要我們將需要暴露的檔案寫在特定的目錄裡。新增方法如下圖
建立Header Phase
建立完畢
這個時候就看到public 裡面就是暴露在外面的檔案啦,把需要暴露在外面的.h檔案直接拖進去就可以啦,例如:
拖到暴露的檔案下
拖完後,庫基本就算是寫完啦,這裡我們可以在MyLibrary類裡新增一個方法測試一下,下面是我寫的一個Log方法
##MyLibrary.h
@interface MyLibrary :NSObject
+ (void)logMyLibary;
@end
##MyLibrary.m
@implementation MyLibrary
+(void)logMyLibary {
NSLog(@"輸出我的Library啦");
}
@end
然後直接Command+B 執行一下,Products的libMyLibrary.a就有,右擊Show in Finder 就會發現檔案啦
包裝MyLibrary
2、測試靜態庫
建立一個新的專案,加入上面我們建立的庫:MyLibrary資料夾
測試結果
3、.bundle的建立
1、首先在MyLbrary中新增bundle,名稱為:LibraryResources新增bundle
2、因為bundle預設是OS系統的,所有需要修改他的資訊。如圖,修改成iOS系統
修改成iOS系統
3、設定Build Setting中的COMBINE_HIDPI_IMAGES 為NO,否則bundle中的圖片就是tiff格式了
設定圖片載入
4、建立一個測試類:MyViewController ,建立的時候記得帶上xib,建立完畢後,把MyViewController.xib拖到LibraryResources專案下,結果如下圖
建立完成
5、再向裡面新增隨便一個圖片,在Xib上建立一個button,設定他的image為這個圖片,如下如
設定xib
6、然後修改MyLibrary類,如下
#import <Foundation/Foundation.h>
#import "MyViewController.h"
@interface MyLibrary : NSObject
+ (void)logMyLibrary;
+ (MyViewController *)creatMyViewController;
@end
#import "MyLibrary.h"
@implementation MyLibrary
+ (void)logMyLibrary {
NSLog(@"輸出我的Library啦");
}
+ (MyViewController *)creatMyViewController {
NSString * rescourcePath = [[NSBundle mainBundle] pathForResource:@"LibraryResources" ofType:@"bundle"];
NSBundle * bundle =[NSBundle bundleWithPath:rescourcePath];
MyViewController * myVC =[[MyViewController alloc]initWithNibName:@"MyViewController" bundle:bundle];
return myVC;
}
@end
並把MyViewController.h檔案也暴露出來,不然會報錯的
暴露MyViewController
7、接下來分別執行這兩個target,然後按照上篇文章一樣生成MyLibrary檔案
生成庫.png
生成MyLibrary.png
8、把MyLibrary 檔案拖入測試專案就可以測試啦。
測試結果
至此.a靜態庫和.bundle檔案都建立完畢啦