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後,需要進行的一些配置:
祝大家開發順利!!
相關推薦
iOS開發筆記之Xcode9.2下SDK開發-生成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 7下ELK(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