1.新建工程,選擇如下:
2.新建的工程中會有兩個文件XXX.h 和 XXX.m,在XXX.m中隨便輸入一段代碼,例如"- (void)printA;"和"+ (void)printB;"的方法,這個方法的實現也是很簡單的,在*.m文件中的實現就是一個"NSLog(@“”);"這樣我們編譯出來的libstaticlib就可以被其他的IOS工程進行調用了。這塊注意一下,目前我們的Print->iOS Device。
3.編譯前準備,這里分release與debug版本,需要設置一下。
4.在target->building setting中新建一個header,把需要暴露的文件放在public里面,如下,因為我已經添加過了,所以是灰色的。
這里分為三項:public是要暴露出來的頭文件,private是私有的,也要添加進去。
5.編譯,要編譯模擬器版本和真機版本,分別command+B即可,然后
點擊如下show in finder查看即可看到,這里分為模擬器和真機。
6.到這里四十已經可以了,但是我想再普及一下知識,如何查看靜態庫是支持真機還是模擬器呢?
其實非常簡單,打開終端:
輸入命令:lipo -info XXX.a文件路徑(直接把.a拖進終端即可)
7.那么如何合并靜態庫呢?
lipo -create SQY/iOS/iphoneos/libGamePlusAPI.a SQY/iOS/iphonesimulator/libGamePlusAPI.a -output SQY/iOS/libGamePus.a
其中SQY/iOS/iphoneos/libGamePlusAPI.a //為真機庫。 SQY/iOS/iphonesimulator/libGamePlusAPI.a //為模擬器庫 -output SQY/iOS/libGamePus.a //為兩個合并后存放的路徑然后可以輸入命令測試下是否成功 lipo -info SQY/iOS/libGamePus.a //下面是輸出 armv7 i386 有了兩個就表情模擬器和真機都支持 其中armv7為真機架構 i386為模擬器Architectures in the fat file: SQY/iOS/libGamePus.a are: armv7 i386