久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

ios framework通用庫的制作

 方海龍的書館 2014-12-16

這篇文章是在史上最完整的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”
<喎?"http://www./kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+CjxpbWcgc3JjPQ=="http://www./uploadfile/Collfiles/20140303/20140303094208126.png" alt="\">

在彈出的對(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

  1. myTestClass* vc1=[[myTestClass alloc]init];
  2. [vc1 testFounction];
  3. [vc1 release]; 15.Bulid&Run 

     

     

    \

    16 補(bǔ)充說明

    \

    在Build的時(shí)候,,你會(huì)發(fā)現(xiàn)有 Run Test Profile3個(gè)選項(xiàng),,一般情況下我們用的是Build for run,所以你只需要配置下Run這個(gè)選項(xiàng)就可以了,。

    這個(gè)Build Configuration 選擇Dubug 和Release 都可以Build成功,,個(gè)人理解為:這個(gè)包是在用在Debug模式下還是Release模式下,最常見的就是在Debug模式下我們打印些日志,,而在Release模式下我們需要把打印日志的功能隱藏,。

    但是有些小問題注意下:

    如果導(dǎo)出庫Build Configuration 為Release,,那么需要把引用這個(gè)導(dǎo)出庫的項(xiàng)目的Build Configuration 為Release,。

    如果導(dǎo)出庫Build Configuration 為Debug,那么需要把引用這個(gè)導(dǎo)出庫的項(xiàng)目的Build Configuration 為Debug,。

    也就是說你自己項(xiàng)目盡量和這個(gè)庫的Build Configuration 一致,。(如果說的不對(duì),請(qǐng)指出錯(cuò)誤)

    17 制作通用的framework

    1,、選擇模擬器Build下

    2,、選擇IOS Device Build下,這樣你就會(huì)得到2個(gè)framework

    3,、和制作通用靜態(tài)庫xx.a文件一樣,,用命令 lipo -create file1 file2 -output file3

    特別注意,我們制作xx.a通用庫的時(shí)候,,是用lipo -create ../xx.a ../xxx.a -output xxxx.a

    但是制作framework的時(shí)候用得是AA.framework里的AA,比如MyFrameWork.framework里的MyFrameWork文件,,而不是MyFrameWork.framework這個(gè)文件

    比如 lipo -create ../Release-iphoneos/MyFrameWork.framework/MyFrameWork ../Release-iphonesimulator/MyFrameWork.framework/MyFrameWork

    -output ../NewFrameWork

    這個(gè)你就會(huì)得到一個(gè)NewFrameWork文件,然后把這個(gè)NewFrameWork文件重命名MyFrameWork,,用這個(gè)文件把

    Release-iphoneos(iphonesimulator)/MyFrameWork.framework里的MyFrameWork 替換掉,,再然后你就可以使用這個(gè)庫了。

    (其實(shí)你可以導(dǎo)出的時(shí)候,,導(dǎo)出為MyFrameWork,,然后用這個(gè)導(dǎo)出的文件替換,,這里只是舉個(gè)例子,.framework制作比.a多了個(gè)替換的步驟)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多