網上關於Framework制作的教程數不勝數,然而都過於陳舊,最新的也是使用Xcode7的教程,而且有些設置也只給出步驟,並沒有給出原因,而且按照有些教程制作出的framework還有些問題,所以我把自己制作framework的過程記錄下來,並且使用的是最新的Xcode8環境。
首先新建一個項目,選擇Cocoa touch Framework
然後隨便取一個名字
然後將要封裝成framework的代碼拖入工程
選擇工程文件>target第一項>Build Setting>搜索linking,然後幾個需要設置的選項都顯現出來,首先是Dead Code Stripping設置為NO,網上對此項的解釋如下,大致意思是如果開啟此項就會對代碼中的”dead”、”unreachable”的代碼過濾,不過這個開關是否關閉,似乎沒有多大影響,不過為了完整還原framework中的代碼,將此項關閉也未曾不可。
The resulting executable will not include any “dead” or unreachable code
然後將Link With Standard Libraries關閉,我想可能是為了避免重復鏈接
最後將Mach-O Type設為Static Library,framework可以是動態庫也可以是靜態庫,對於系統的framework是動態庫,而用戶制作的framework只能是靜態庫。
然後將需要公開的頭文件從Project中拖入Public,至於是否需要將私有的頭文件拖入Private,我覺得直接放在Project中即可,若是Private中有頭文件,打包以後的framework中會多出一個Private的文件夾包含著放入Private的頭文件,不過我覺得如果是私有最好還是不要讓別人看到。
為了對一些特殊機型的支持,添加armv7s架構,當然不添加也沒什麼問題,只有5和5c使用了此架構。
下面就開始編譯了,先選擇Generic iOS Device,按下Command+B:Build一下
然後隨意選擇一個模擬器再次Build一下
找到Build後的framework
我們看到總共有兩個文件夾,上面是真機編譯生成的文件,下面是模擬器編譯生成的文件。