ios制作framework

1、新建工程

2、拖進來需要制作成framework的文件(可以自己在工程里新建 亦可拖入) 用到的三方庫比如AFN建議用pods引入??

3、設置靜態(tài)庫 選中工程 trarget->Build Setting? 搜索linking

首先是Dead Code Stripping設置為NO,網(wǎng)上對此項的解釋如下,大致意思是如果開啟此項就會對代碼中的”dead”、”unreachable”的代碼過濾,不過這個開關是否關閉,似乎沒有多大影響,不過為了完整還原framework中的代碼,將此項關閉也未曾不可。

然后將Link With Standard Libraries關閉,我想可能是為了避免重復鏈接

最后將Mach-O Type設為Static Library,framework可以是動態(tài)庫也可以是靜態(tài)庫,對于系統(tǒng)的framework是動態(tài)庫,而用戶制作的framework只能是靜態(tài)庫。

4、修改架構

DebugRelease屬性設置為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ī)范?

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容