1. 程式人生 > >iOS開發筆記之Xcode9.2下SDK開發-生成Framework的圖解流程

iOS開發筆記之Xcode9.2下SDK開發-生成Framework的圖解流程

1.Workspace可以方便SDK與Demo的聯調,首先建立一個Workspace:



2.建立Framework:


選擇Cocoa Touch Framework:



加入之前建立的SDKWorkspace,點選Create:



3.建立SDKDemo:

再次新建Project,選擇Single View Application:



加入SDKWorkspace:



4.生成Framework,關聯Demo與SDK:

在SDK中建立一個類SDKView,設定BackgroundColor:


選擇Target-SDK-Build Settings, Mach-O Type設定Static Library,Dead Code Stripping設為NO:


Build Active Architecture Only設為NO:


Build Phases - Headers下將需要暴露的標頭檔案拖到Public下,不暴露的拖到Project下,注意Public下的.h檔案中import的.h檔案也需要拖到Public下:


點選Build Phases左上角+號,選擇New Run Script Phase:


新增如下程式碼:

if [ "${ACTION}" = "build" ]

then

INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.framework

DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework

SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework

if [ -d "${INSTALL_DIR}" ]

then

rm -rf "${INSTALL_DIR}"

fi

mkdir -p "${INSTALL_DIR}"

cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"

#ditto "${DEVICE_DIR}/Headers" "${INSTALL_DIR}/Headers"

lipo -create "${DEVICE_DIR}/${PROJECT_NAME}" "${SIMULATOR_DIR}/${PROJECT_NAME}" -output "${INSTALL_DIR}/${PROJECT_NAME}"

#open "${DEVICE_DIR}"

open "${SRCROOT}/Products"

fi

如圖:


Scheme選擇SDK,裝置選擇Generic iOS Device:


Command+B編譯得到SDK.Framework,這就是我們需要的Framework:


拷貝SDK.Framework,匯入SDKDemo中:


呼叫SDK:


Scheme選擇SDKDemo,裝置選擇模擬器或者真機,Command+R走起:



除錯成功!

然後再試一試SDK中的改動能否同步到Demo中,我們修改一下BackgroundColor:


Command+R執行:


成功!

至此,整個過程就完成了,當然這只是萬里長征的第一步,接下來就可以正式開發了,我已經聞到了bug大軍的氣息。。。

最後附上專案在匯入SDK後,需要進行的一些配置:

1. General - Embedded Binaries 新增Framework;2. Build Settings - Enable Bitcode 設為NO; 3. Build Settings - Other link flags 新增 -ObjC -all_load。

祝大家開發順利!!

相關推薦

iOS開發筆記Xcode9.2SDK開發-生成Framework圖解流程

1.Workspace可以方便SDK與Demo的聯調,首先建立一個Workspace:2.建立Framework:選擇Cocoa Touch Framework:加入之前建立的SDKWorkspace,點選Create:3.建立SDKDemo:再次新建Project,選擇Si

iOS開發筆記四十七——多執行緒場景的KVO使用參考方案

如果你取檢索網路資料會發現,有人直接不建議把KVO與多執行緒混合使用,因為KVO的響應和KVO觀察的值變化是在一個執行緒上的,不同的執行緒可能會導致不可預知的後果。參考資料見這裡: 當然,場景總是千變萬化的,下面我就介紹一種多執行緒下使用KVO的場景。 具體場景如

ELK學習筆記CentOS 7ELK(6.2.4)++LogStash+Filebeat+Log4j日誌整合環境搭建

  0x00 簡介 現在的公司由於絕大部分專案都採用分散式架構,很早就採用ELK了,只不過最近因為額外的工作需要,仔細的研究了分散式系統中,怎麼樣的日誌規範和架構才是合理和能夠有效提高問題排查效率的。 經過仔細的分析和研究,確定下面的架構應該是比較合理的之一(Filebeat也支援直

ESP32的SDK開發window系統eclipse開發環境搭建

在window系統下可以依託eclipse的環境開發ESP32 eclipse下載地址:下載Eclipse IDE for C/C++ Developers版本的 64位:點這裡 32位:點這裡 環境JDK下載地址 64位:點這裡 32位:點這裡 安裝好eclipse開啟報錯的話,就需要配置

iOS開發筆記十二——啟動logo畫面的設定

1、需求介紹       一個正規的手機APP,都會有啟動Logo畫面,有時候會在啟動畫面載入一定的廣告,例如騰訊新聞、網易新聞;這些APP都會有自己的啟動Logo畫面。設計一個體檢較佳的啟動畫面往往是開發優秀APP的第一步。 2、啟動畫面的實現       一個完成的啟動

iOS開發筆記二十八——檢視靜態庫檔案支援的arm64指令集架構的方法

1、蘋果store馬上就要開始對上架的app實行64位支援檢查了,截至到2015年2月1日。我們團隊維護開發的產品已經收到警告了, 工程裡用到了很多第三方的SDK,而這些SDK有的還不支援64位指令集。要從網上檢索最新的SDK並檢查是否支援64位架構,本篇文章就是介紹 怎樣

iOS開發筆記跳轉QQ聊天頁、跳轉微信、應用內撥打電話

NSURL *url; // QQ url = [NSURL URLWithString:[NSString stringWithFormat:@"mqq://im/chat?chat_type=wpa&uin=%@&version=1&src_typ

iOS開發筆記七十四——FRP與RAC進階篇(資料黑白板XYReactDataBoard的介紹)

******閱讀完此文,大概需要30分鐘****** 一、簡介 XYReactDataBoard是一款已經比較成熟的基於RAC的響應式程式設計元件,它主要用來實現任意模組之間的資料通訊,它可以替代原生的Notification、KVO,delegate、NSUserdef

iOS開發筆記二十九——一個關於工程目錄讀寫許可權的問題

1、從網際網路上或者其他途徑拿過來的工程程式碼,往往會報下面的提示:   (1)開啟檔案的時候出現視窗提示You don’t have permission to save the file “project.xcworkspace” in the folder “**

iOS開發筆記四十三——日曆NSCaledar使用過程中遇到的一個蘋果系統bug

    我們的app上有一個時間日曆,早期的需求只考慮到app在國內使用。在國內時,NSCaledar這個方法的使用一切正常,後來業務要擴大到國外各地。NSCaledar就暴露了一個問題,這個問題直接導致了我們日曆頁面的卡死。我們忽略掉所有的繁文縟節,直接進入問題的根源。

iOS開發筆記根據圖片URL獲取圖片尺寸

載入網路圖片時,根據Url獲取圖片的尺寸進行UI佈局。可將方法+ (CGSize)getImageSizeWithURL:(id)URL;放在UIImage的分類中。引入系統的ImageIO.framework/** * 根據圖片url獲取圖片尺寸 */ + (CGSi

iOS開發筆記七十六——輕量級元件化路由方案XYPageMaster(二)

******閱讀完此文,大概需要20分鐘****** 一、專案原始碼 XYPageMaster是為了實現VivaVideo家族產品元件化的輕量級Router解決方案,有了它業務頁面之間的跳轉不在相互依賴,在業務專案之間解耦起到重要作用。在開發過程中,XYPageMaste

《ArcGIS Runtime SDK for Android開發筆記》——(2)、Android Studio基本配置與使用

1、前言  在上一篇文章《Android Studio下載與安裝》裡我們已經介紹了Android Studio的下載與安裝步驟,這一篇我們將針對Android Studio的基本常見使用做一個簡單介紹。 2、基本配置 2.1、主題設定 開啟File > Settings > Appearanc

IOS開發筆記模擬器的路徑

今天在使用Xcode6的模擬器準備檢視檔案時,發現與以前Xcode5的模擬器路徑不一致,發生了變化,記錄下。 Xcode 5的iOS模擬器的應用的目錄是在~/Library/Application Support/iPhone Simulator/<iOS_Versi

iOS開發筆記四十八——gem、brew、rvm、bundle的相關介紹

一、相關概念 1、GEM的概念 gem其實就是RubyGems,RubyGems是一個包管理框架,提供了ruby社群的gem的託管服務,用於ruby軟體包的下載、安裝、使用;ruby的軟體包被稱為gem,包含了ruby應用或庫。 安裝RubyGems需要先下載安裝包

Kinect開發筆記三Kinect開發環境配置具體解釋

pc2 1.0 微軟 .aspx 技術分享 連接 實驗 family 不同 0、前言: 首先說一下我的開發環境,Visual Studio是2013的,系統是win8的64位版本號,SDK是Kinect for windows

Scala 學習筆記集合(2)

元素 student cnblogs cti 使用 shanghai 列表 學習筆記 brush class StudentTT extends StudentT{ def sayBye(name: String, age: Int)(address: String)

Modbus庫開發筆記二:Modbus消息幀的生成

不同的 command dwr 分別是 slave 識別碼 align 數據格式 .com 前面我們已經對Modbus的基本事務作了說明,也據此設計了我們將要實現的主從站的操作流程。這其中與Modbus直接相關的就是Modbus消息幀的生成。Modbus消息幀也是實現Mod

PyTorch學習筆記Tensors 2

cti sam numpy 所有 隨機 一個 port pre clas Tensors的一些應用 1 ‘‘‘ 2 Tensors和numpy中的ndarrays較為相似, 因此Tensor也能夠使用GPU來加速運算 3 ‘‘‘ 4 # from _future_

Modbus庫開發筆記四:Modbus TCP Client開發

creat 需要 修改 status command 協議格式 sin 服務器端 這一 這一次我們封裝Modbus TCP Client應用。同樣的我們也不是做具體的應用,而是實現TCP客戶端的基本功能。我們將TCP客戶端的功能封裝為函數,以便在開發具體應用時調用。 對於T