iOS 制作framework(SDK)的流程

第一步:創(chuàng)建framwork工程

第二步:隨便取個名字:IQEngUI,然后點擊Next误辑,指定一個你要存的位置

第三步:通過前兩步驟會得到如下圖效果

第四步:修改配置,其中有兩處要修改

1、搜索:MACH_O_TYPE

選擇Static Library

2、還有一處是這樣的介杆,如果你的framework里面需要添加一些分類,那么需要在Other Linker Flags 添加-all_load(注意符號不要用中文寫了韭寸,all_load它的作用是加載靜態(tài)庫中所有文件春哨,all_load作用于所有的庫)

第五步 給你的framwork塞東西!棒仍!我就舉個例子添加一個類實現(xiàn)打印效果悲靴。

.H

.M

這時候臭胜,右邊有個選項框莫其,如下圖紅色框出的

我來解釋一下,如果你的文件要暴露出來給別人用的話耸三,選Public乱陡,不想給別人看見和使用的話選Project,(選Private感覺沒差仪壮,反正我沒選過:┑摺)』回到圖中爽彤,我的這個方法要暴露給別人用那么我要選Public。

選完Public之后缚陷,還需要在IQEngUI.h(相對我的framework)添加進去适篙,如圖:(ps:這個需要手動敲進去,沒有提示的s镆H陆凇!?)

第六步 合成

其實到這里framework你就差不多弄好了虎锚,這里如果你run的話:

會生成framwork硫痰,這個可以用。但是但是4芑ぁPО摺!你選模擬器run的只能給模擬器用柱徙,選真機run的只能給真機用缓屠。這里面framwork分4種税娜,模擬器的release和debug,真機的release和debug藏研。為了得到高效又能給真機和模擬用的framework的話敬矩,需要合成!蠢挡!

合成的話我說兩種:

第一種:使用終端合成弧岳,自行百度。哈哈

第二種:腳本合成业踏,本人推薦禽炬,并下面貼出腳本代碼和使用方法

1、首先:新建一個丑家伙出來

2勤家、這個東西何以用來運行腳本腹尖。

3、隨便取個名字伐脖,

热幔。

腳本:

#xcodebuild -project hvui.xcodeproj -target FrameworkMaker_Release;rm -rf build;

productName="${PROJECT_NAME}"

target="${productName}"

tmpDir="${PROJECT_TEMP_DIR}/build"

rm -rf "${tmpDir}"#清除編譯臨時文件

#編譯bundle

xcodebuild -target "${PROJECT_NAME}Bundle" -configuration "Release" -sdk "iphoneos" build SYMROOT="${tmpDir}" ONLY_ACTIVE_ARCH="NO" VALID_ARCHS="arm64 armv7 armv7s i386 x86_64"

function buildLibs(){

? ? sdks=("iphonesimulator" "iphoneos")

? ? configurations=("Debug" "Release")

? ? for configuration in ${configurations[@]}

? ? do

? ? for sdk in ${sdks[@]}

? ? do

? ? xcodebuild -target "${target}" -configuration "${configuration}" -sdk "${sdk}" build SYMROOT="${tmpDir}" ONLY_ACTIVE_ARCH="NO" VALID_ARCHS="arm64 armv7 armv7s i386 x86_64"

? ? done

? ? done

}

function lipoLibs(){

? ? #copy Release-iphoneos到 Frameworks 目錄,然后 lipo -c 一份

? ? ios_libs_dir="${SRCROOT}/../ios_libs"

? ? frameworkDir="${ios_libs_dir}/Frameworks"

? ? [ -d "${frameworkDir}" ] || mkdir -p "${frameworkDir}"

? ? cp -r "${ios_libs_dir}/Release-iphoneos/${productName}.framework" "${frameworkDir}/"

? ? #lipo -c ... -o ..

? ? lipo -c "${ios_libs_dir}/Release-iphoneos/${productName}.framework/${productName}" "${ios_libs_dir}/Release-iphonesimulator/${productName}.framework/${productName}" -o "${frameworkDir}/${productName}.framework/${productName}"

? ? rm -rf "${frameworkDir}/${productName}.framework/_CodeSignature"

}

function rmLibs(){

? ? ios_libs_dir="${SRCROOT}/../ios_libs"

? ? sdks=("iphonesimulator" "iphoneos")

? ? configurations=("Release")

? ? for configuration in ${configurations[@]}

? ? do

? ? for sdk in ${sdks[@]}

? ? do

? ? rm -rf "${ios_libs_dir}/${configuration}-${sdk}/${productName}.framework"

? ? done

? ? done

}

buildLibs

lipoLibs

#rmLibs

#cp to ios_libs

#cp -Rf "${SRCROOT}/ios_libs/Frameworks/${productName}.framework" "${SRCROOT}/../ios_libs/Frameworks/${productName}.framework"

4、把上面的腳本語句直接拷貝到這里面

5讼庇、設置framwork生成路徑

Debug:$(SRCROOT)/../ios_libs/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)

Release:$(SRCROOT)/../ios_libs/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)

設置原因是因為腳本是去這里找到4個framwork绎巨,然后合成他們,修改后如下圖所示

6蠕啄、現(xiàn)在只要選中這個场勤,然后點擊run就可以看到合并的framwork了。

成功之后(只要你不搞事歼跟,一般都會成功:拖薄!)哈街,會生成這樣

Framworks里面的就是你想要的支持模擬器和真機的留瞳。

到這制作framwork講完了,但是叹卷,這里面還是有很多學問的撼港,比如framwork怎么引用其他framwork,得注意什么骤竹。東西其實不難帝牡,理解了就不難,哈哈C纱А靶溜!


轉(zhuǎn)自知乎:https://zhuanlan.zhihu.com/p/24368343

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子罩息,更是在濱河造成了極大的恐慌嗤详,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓷炮,死亡現(xiàn)場離奇詭異葱色,居然都是意外死亡,警方通過查閱死者的電腦和手機娘香,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門苍狰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人烘绽,你說我怎么就攤上這事淋昭。” “怎么了安接?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵翔忽,是天一觀的道長。 經(jīng)常有香客問我盏檐,道長歇式,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任糯笙,我火速辦了婚禮贬丛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘给涕。我一直安慰自己,他們只是感情好额获,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布够庙。 她就那樣靜靜地躺著,像睡著了一般抄邀。 火紅的嫁衣襯著肌膚如雪耘眨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天境肾,我揣著相機與錄音剔难,去河邊找鬼。 笑死奥喻,一個胖子當著我的面吹牛偶宫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播环鲤,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼纯趋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起吵冒,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤纯命,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后痹栖,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體亿汞,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年揪阿,在試婚紗的時候發(fā)現(xiàn)自己被綠了留夜。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡图甜,死狀恐怖碍粥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情黑毅,我是刑警寧澤嚼摩,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站矿瘦,受9級特大地震影響枕面,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜缚去,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一潮秘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧易结,春花似錦枕荞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鹦肿,卻和暖如春矗烛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背箩溃。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工瞭吃, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人涣旨。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓歪架,卻偏偏與公主長得像,于是被迫代替她去往敵國和親开泽。 傳聞我的和親對象是個殘疾皇子牡拇,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容