這篇教程的主要目的是解釋怎么樣在你的iOS工程中創(chuàng)建并使用一個SDK,俗稱.a文件专挪。所以里烦,不像其他網(wǎng)站上的教程只說一點比較吊的東西(就是我們這些新手看不懂的東西绝编,這篇教程將只使用一小部分Objective-C代碼十饥,本文主要講解從開始到應(yīng)用的詳細(xì)步驟秉氧。
環(huán)境:xcode 7.3(網(wǎng)上的demo大多數(shù)都是老版本的,發(fā)現(xiàn)很多東西跟現(xiàn)在的不一樣)
下面我們開始操作:
創(chuàng)建一個靜態(tài)庫工程
打開Xcode攘滩,點擊File\New\Project,選擇iOS\Framework and Library\Cocoa Touch Static Library新建一個靜態(tài)庫工程.
將工程命名為GGTestSDK,然后將工程保存到一個空目錄下磷仰。
一個靜態(tài)庫工程由頭文件和實現(xiàn)文件組成,這些文件將被編譯為庫本身泵殴。
當(dāng)創(chuàng)建靜態(tài)庫工程時笑诅,Xcode會自動添加GGTestSDK.h和GGTestSDK.m弦叶。你不需要實現(xiàn)文件,因此右鍵單擊GGTestSDK.m選擇delete绢彤,將它刪除到廢紙簍中茫舶。
創(chuàng)建一個AlertView控件
其實當(dāng)前的工程就已經(jīng)可以用了了饶氏,是時候為你的庫添加一些功能了嚷往。由于本篇教程的關(guān)鍵在于教你怎么樣創(chuàng)建一個GGTestSDK.a皮仁,而不是怎么樣構(gòu)建一個UI控件,這里你可以使用你自己封裝好的控件势誊。將你的控件從Finder中拖到Xcode下GGTestSDK目錄下粟耻。
這里有一點要注意了谈喳,這里一定要勾選以下三個選項:
然后點擊 Finish 進(jìn)入工程:
對你的控件的頭文件需要做的另一件事是將其添加到庫的主頭文件GGTestSDK.h中。在這個主頭文件的幫助下,開發(fā)者使用你的庫僅僅需要導(dǎo)入一個頭文件驾中,如下面的代碼一樣,而不是自己去選擇自己需要的一塊導(dǎo)入。
接下來就生成靜態(tài)庫
1移剪、靜態(tài)庫分為手機(jī)和模擬器兩種(手機(jī)端的只有手機(jī)能調(diào)用究珊,模擬器的只有模擬器能調(diào)用)。
首先纵苛,構(gòu)建模擬器的靜態(tài)庫剿涮,如圖
然后show in Finder
之后我拿到這個.a文件 還有和他相關(guān)的所有.h文件,存放在一個新的文件夾里(隨便起名越吊越好攻人。我的是:mySDK(我還不想辭職))如下
現(xiàn)在呢取试,你就可以拿著這個文件夾去揮霍了。將他拖到你要應(yīng)用了工程中
你以為這樣就完事了嗎怀吻。哼哼瞬浓,我就知道瞞不住你們,上面已經(jīng)提到了蓬坡,只能在模擬器上運(yùn)行猿棉,如果我們鏈接手機(jī):
我滴天,這都是什么鬼屑咳?可怕的報錯信息又來了萨赁。其實沒什么,對于這些報錯信息乔宿,不要慌位迂,他都是有關(guān)鍵點的,這個不多說了详瑞,有點跑題。上文說了這是由于我們生成.a文件的時候臣缀,是生成的模擬器版本的坝橡,想要在手機(jī)上用就要生成手機(jī)版本的,那么手機(jī)版本的怎生成呢精置?(我都不好意思說了)看圖吧计寇,別打我就行。
改成Device 構(gòu)建構(gòu)成(command + B)你就會發(fā)現(xiàn) libGGTestSDK.a 變黑了。
重復(fù)之前的步驟 就可以在手機(jī)上運(yùn)行了(但是番宁,模擬器又不能用了元莫。。蝶押。踱蠢。)
接下來,我們就來生成一個雙方都能用的libGGTestSDK.a
首先棋电,打開終端茎截,復(fù)制以下命令
lipo-create
/Users/ObjectPLA/Library/Developer/Xcode/DerivedData/GGTestSDK-gjmfufrwwxxwbpbigyezzbclphzv/Build/Products/Debug-iphoneos/libGGTestSDK.a
/Users/ObjectPLA/Library/Developer/Xcode/DerivedData/GGTestSDK-gjmfufrwwxxwbpbigyezzbclphzv/Build/Products/Debug-iphonesimulator/libGGTestSDK.a
-output/Users/ObjectPLA/Desktop/libGGTestSDK.a
說明:
綠色:是你手機(jī)模式下可用的libGGTestSDK.a
紅色:是你模擬器下可用的libGGTestSDK.a
藍(lán)色:是最后生成雙方都可用的libGGTestSDK.a --并存在在桌面
最后拿到的libGGTestSDK.a 就哪里都可以用了!有不對的地方還望各位多多指正赶盔,大家相互溝通交流企锌。