1须误、新建工程
2、拖進來需要制作成framework的文件(可以自己在工程里新建 亦可拖入) 用到的三方庫比如AFN建議用pods引入??
3仇轻、設置靜態(tài)庫 選中工程 trarget->Build Setting? 搜索linking
首先是Dead Code Stripping設置為NO京痢,網(wǎng)上對此項的解釋如下,大致意思是如果開啟此項就會對代碼中的”dead”篷店、”unreachable”的代碼過濾祭椰,不過這個開關(guān)是否關(guān)閉,似乎沒有多大影響疲陕,不過為了完整還原framework中的代碼方淤,將此項關(guān)閉也未曾不可。
然后將Link With Standard Libraries關(guān)閉蹄殃,我想可能是為了避免重復鏈接
最后將Mach-O Type設為Static Library携茂,framework可以是動態(tài)庫也可以是靜態(tài)庫,對于系統(tǒng)的framework是動態(tài)庫诅岩,而用戶制作的framework只能是靜態(tài)庫讳苦。
4、修改架構(gòu)
當Debug和Release屬性設置為YES時吩谦,是為了debug的時候編譯速度更快鸳谜,它只編譯當前的architecture版本;
當而設置為NO時,會編譯所有的版本;
編譯出的版本是向下兼容的式廷,比如你設置值為YES咐扭,用iPhone4編譯出來的是armv7版本的,iphone5也可以運行,但是armv6的設備就不能運行蝗肪。
所以袜爪,一般Debug模式可以選擇設置為YES,Release的時候要改為NO穗慕,以適應不同設備饿敲。
5、設置我們有那些頭文件是需要公開的? 格式為? <工程名/類名>
6逛绵、第五步添加的頭文件里面的類都要在這里拖進 public下面
7怀各、手動打包
第一步)、選中模擬器术浪,command+B
第二步)瓢对、選中真機,command+B )
第三步)胰苏、在Products中找到framework文件(注意不是在Framework文件夾下找 是Products)
8硕蛹、接下來就是生成我們.framework文件的最后一步了:利用終端把模擬機和真機的文件我們合并成一份:(為了模擬器和真機都可以使用)
在終端中輸入命令:lipo -create? 模擬機和真機的FrameWorkTest文件路徑(直接拉到終端就會顯示)
一個輸出路徑
?lipo -create (此處請?zhí)顚懻鏅Cppsdk文件路徑) (此處填寫模擬器ppsdk文件路徑) -output 自定義合成文件存儲路徑(合成文件的名字ppsdk)
回車后 桌面的文件夾會出現(xiàn)一個文件 復制后分別去真機和模擬器對應ppsdk.framework文件夾下替換ppsdk文件?
9、?測試支持的處理器? lipo -info? 后面跟上左面文件夾里的那個文件? 不出意外的話是???armv7 i386 x86_64 arm64這四個? armv7必須要有 是支持真機的 不然就失去制作庫的意義了?
10硕并、找到真機下的ppsdk.framework 拷貝到新建的demo里面 這就是我們常見的sdk? 就可以引入使用了?
ps: 制作framework的時候文件內(nèi)部一定不能出錯? 即使framework編譯success? 但是導入到demo中會出現(xiàn)Could not build module 'sdk'? 先檢查自己的demo是否有誤 看library是否配置好? 如果無誤就是framework里面頭文件可能不規(guī)范?