創(chuàng)建Framework支持iOS、MacOS、WatchOS、tvOS

創(chuàng)建.framework工程,很多人都不陌生,簡(jiǎn)單說下就 OK 了。

1. 創(chuàng)建.framework工程

Command + shift + n創(chuàng)建新項(xiàng)目。

(1)

(2)

如果只需要在某個(gè)平臺(tái)上使用,到這為止,創(chuàng)建任務(wù)就算結(jié)束了。

2.支持蘋果多平臺(tái)

當(dāng)編輯了很多代碼后,需要支持蘋果其他平臺(tái)時(shí)。完全建個(gè)新的項(xiàng)目,把代碼拷貝進(jìn)去,然后進(jìn)行適配也是行的通的。
這里講另外一種方式。

  • 點(diǎn)擊.framework工程,添加TARGETS欄了里點(diǎn)擊+號(hào)。
    添加TARGET
  • 點(diǎn)擊+號(hào)后就會(huì)彈出下圖這樣的框框了。紅色圈中的頂欄中可以選擇所對(duì)應(yīng)的蘋果平臺(tái)。
    選擇對(duì)應(yīng)的OS
  • 我已經(jīng)添加了iOSmacOSTARGET,所以這里選擇這里選擇tvOS。
    創(chuàng)建tvOS TARGET

    添加完成

3.配置

修改新添加'TARGET'名稱

目的是添加一個(gè)同名不同平臺(tái)的framework,所以要改變想改名稱,不是回車改這么簡(jiǎn)單。

  • 首先選中新建的TARGET,選擇Build Setting,在搜索欄中搜索product name。雙擊現(xiàn)在的名稱。
    Product Name
  • 彈框中會(huì)顯示Xcode自動(dòng)識(shí)別項(xiàng)目名稱的字符串,刪掉,然后寫入新的名字。然后隨意點(diǎn)框外的區(qū)域完成修改。
    名稱

    修改之后
修改新添加'TARGET'的'info.plist'和Product Bundle Identifier
  • 創(chuàng)建新的TARGET后,目錄里會(huì)自動(dòng)生成新TARGET對(duì)應(yīng)的文件夾,里面有新的頭文件和'info.plist',刪除。
    生成的新文件
  • 選中新建TARGET,選擇Build Setting,搜索info.plist,找到然后雙擊。
    找到info.plist
  • 修改成之前的info.plist的路徑,點(diǎn)擊其他區(qū)域完成。
    image.png
  • 在個(gè)Packaging欄中,還有另外一項(xiàng)Product Bundle Identifier。修改方式和info.plist差不多,雙擊然后修改成統(tǒng)一的Product Bundle Identifier。
    Product Bundle Identifier

    修改 Product Bundle Identifier
添加文件

新建的TARGET是空的,什么也沒有,所以要將文件添加進(jìn)去。

  • 首先選中新建的TARGET,點(diǎn)擊Build Phases。
    選中Build Phases
  • 點(diǎn)擊三角號(hào),打開Compile Sources,點(diǎn)擊+號(hào)。
    image.png
  • 選中要添加的.m(如果有.mm等其他的也添加在這,如果不知道這里都添加那些文件,點(diǎn)擊最先創(chuàng)建的TARGET的相同位置,照搬一下)文件,點(diǎn)擊add
    添加.m
  • 添加頭文件.h。打開Headers,點(diǎn)擊+
    image.png

可以看到,上圖中的Headers中有Public、Private、Project三項(xiàng)。對(duì)應(yīng)著framework外的引用權(quán)限。根據(jù)自己的需求,拖到相應(yīng)的選項(xiàng)下就可以了。

  • 如果還有其他的資源,在對(duì)應(yīng)的選項(xiàng)里添加一下,否則編譯之后會(huì)找不到的。
這樣就算結(jié)束了。如果哪位大神發(fā)現(xiàn)有啥問題,歡迎指導(dǎo)。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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