這篇文章是在史上最完整的iOS DIY framework 詳細(xì)教程(一)的基礎(chǔ)上加以修改 1、新建一個(gè)靜態(tài)庫工程: 2:取自己喜歡的名字: 3、刪除向?qū)晒こ讨械?Target: 3,、刪除TestFrameWork對(duì)應(yīng)的工程文件夾: 5:刪除bulid 關(guān)連項(xiàng) 選擇左下角Manager Scheme 選中 Scheme,,點(diǎn)擊左下角的減號(hào)刪除: 刪除完成后,點(diǎn)擊 OK 返回,。 5,、增加一個(gè)新目標(biāo)。點(diǎn)擊 “Add Target” 在彈出的對(duì)話框中選擇 Mac OS X 下的 Bundle: 其實(shí)這個(gè)Bundle選擇Ios中的也行,,我這2種都試過,,都是可以的,如果我說的不對(duì)請(qǐng)指出,。 如上圖,,給庫取一個(gè)名字,保持默認(rèn)的 Framework(CoreFoundation),,然后點(diǎn)擊 Finish,。 6、修改新目標(biāo)的工程設(shè)置,。選中 TARGETS 中對(duì)應(yīng)的目標(biāo),, Build Settings 頁:
7.target 上右鍵get Info 在Build Settings下面設(shè)置下面的幾項(xiàng)內(nèi)容 a.Base SDK選擇Latest IOS(IOS 5.1)
b.Build Active Architecture Only選擇NO c.Dead Code Stripping設(shè)置為NO d.Mach-O Type 為Relocatable Object File (這個(gè)設(shè)置指定編譯器作一個(gè)可以重定位的文件捆綁,通過這樣做,,可以把函數(shù)設(shè)置包裝在框架內(nèi)) e.Link With Standard Libraries為NO f.Wrapper Extension修改為:默認(rèn)的bundle改成framework(這里將bundle修改為framework,,在xcode,框架只是一個(gè)擴(kuò)展的文件夾,??蚣芾锩姘艘粋€(gè)或多個(gè)編譯的二進(jìn)制源、資源和一些文件夾,。文件夾通常背稱為"Headers",,包含了所有的公共頭文件) g.在Architectures選項(xiàng)選擇Standard(armv6 armv7[armv7s]) (不這樣編譯會(huì)報(bào)錯(cuò)) h.工程Info中將Bundle OS Type code的值BNDL改為:FMWK
在 Deployment 下,將 “Mac OS X Deployment Target”改為”Compiler Default”,, 將 “Targeted Device Family”改為需要的,,此處改成了”iPhone/iPad”, 同時(shí)可以根據(jù)需要修改 “iOS Deployment Target”,此處改為了 “iOS 3.0”: 8,、修改預(yù)編譯頭:就是注釋掉全部 10,、向工程中添加一個(gè)類: 10、在myTestClass,。h添加一個(gè)方法testFounction: 11,、在myTestClass。m中實(shí)現(xiàn)方法testFounction: 12.打開Build Phases選項(xiàng)卡,,右下角點(diǎn)擊Add Build Phase–Add copy Headers,,然后界面就會(huì)多出來一個(gè)Copy Headers的菜單,,然后添加源文件。完成后如圖所示:(Compile Sources 添加.m文件) 點(diǎn)擊右下角的 “Add copy Headers”:
添加完成后,,展開 “Copy Headers”:點(diǎn)擊加號(hào): 選中需要暴露的頭文件,,此處我們選擇 “myTestClassA.h”: 點(diǎn)擊 Add 按鈕完成添加:此時(shí),我們看到導(dǎo)出的文件在 Project 下,,這樣是不能暴露給別人使用的,,將其移動(dòng)到 Public 下: 12.然后Build & Run , 里成功很近了 ,哈哈,! 13.下面隨便把我們?cè)谏厦嫔傻膄ramework 導(dǎo)入到其他的工程就可以使用了,,哈哈! 找到剛才我們FrameWork 的工程目錄的Bulid->Products->Debug-iphonesimuator->TestFrameWork.farmework 14.下在你想用的地方導(dǎo)入頭文件 #import 用法如下:
[html] view plaincopy
|
|