1. 程式人生 > >Xcode8 製作.a靜態庫和存放xib和圖片的.bundle

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檔案都建立完畢啦