標籤:
這篇教程的主要目的是解釋怎麼樣在你的iOS工程中建立並使用一個SDK,俗稱.a檔案。所以,不像其他網站上的教程只說一點比較吊的東西(就是我們這些新手看不懂的東西,這篇教程將只使用一小部分Objective-C代碼,本文主要講解從開始到應用的詳細步驟。
環境:xcode 7.3(網上的demo大多數都是老版本的,發現很多東西跟現在的不一樣)
下面我們開始操作:
建立一個靜態庫工程
開啟Xcode,點擊File\New\Project,選擇iOS\Framework and Library\Cocoa Touch Static Library建立一個靜態庫工程.
將工程命名為GGTestSDK,然後將工程儲存到一個空目錄下。
一個靜態庫工程由標頭檔和實現檔案組成,這些檔案將被編譯為庫本身。
當建立靜態庫工程時,Xcode會自動添加GGTestSDK.h和GGTestSDK.m。你不需要實現檔案,因此按右鍵GGTestSDK.m選擇delete,將它刪除到廢紙簍中。
建立一個AlertView控制項
其實當前的工程就已經可以用了了,是時候為你的庫添加一些功能了。由於本篇教程的關鍵在於教你怎麼樣建立一個GGTestSDK.a,而不是怎麼樣構建一個UI控制項,這裡你可以使用你自己封裝好的控制項。將你的控制項從Finder中拖到Xcode下GGTestSDK目錄下。
這裡有一點要注意了,這裡一定要勾選以下三個選項:
然後點擊 Finish 進入工程:
對你的控制項的標頭檔需要做的另一件事是將其添加到庫的主標頭檔GGTestSDK.h中。在這個主標頭檔的協助下,開發人員使用你的庫僅僅需要匯入一個標頭檔,如下面的代碼一樣,而不是自己去選擇自己需要的一塊匯入。
接下來就產生靜態庫
1、靜態庫分為手機和模擬器兩種(手機端的只有手機能調用,模擬器的只有模擬器能調用)。
首先,構建模擬器的靜態庫,
然後show in Finder
之後我拿到這個.a檔案 還有和他相關的所有.h檔案,存放在一個新的檔案夾裡(隨便起名越吊越好。我的是:mySDK(我還不想辭職))如下
現在呢,你就可以拿著這個檔案夾去揮霍了。將他拖到你要應用了工程中
你以為這樣就完事了嗎。哼哼,我就知道瞞不住你們,上面已經提到了,只能在模擬器上運行,如果我們連結手機:
我滴天,這都是什麼鬼?可怕的報錯資訊又來了。其實沒什麼,對於這些報錯資訊,不要慌,他都是有關鍵點的,這個不多說了,有點跑題。上文說了這是由於我們產生.a檔案的時候,是產生的模擬器版本的,想要在手機上用就要產生手機版本的,那麼手機版本的怎產生呢?(我都不好意思說了)看圖吧,別打我就行。
改成Device 構建構成(command + B)你就會發現 libGGTestSDK.a 變黑了。
重複之前的步驟 就可以在手機上運行了(但是,模擬器又不能用了。。。。)
接下來,我們就來產生一個雙方都能用的libGGTestSDK.a
首先,開啟終端,複製以下命令
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
說明:
綠色:是你手機模式下可用的libGGTestSDK.a
紅色:是你模擬器下可用的libGGTestSDK.a
藍色:是最後產生雙方都可用的libGGTestSDK.a --並存在在案頭
最後拿到的libGGTestSDK.a 就哪裡都可以用了!有不對的地方還望各位多多指正,大家相互溝通交流。
iOS 封裝SDK