iOS打包靜態(tài)庫的流程在網(wǎng)上一搜一大把宽闲,但是很少看到同時把資源文件帶上的(畢竟打包的靜態(tài)庫一般都專做業(yè)務邏輯,很少摻雜視圖)。正好這次遇到了這個問題缀程,就來說說目前打包過程中遇到的坑吧
資源文件不參與編譯的問題
雖說這是廢話。市俊。杨凑。但是還是提提,資源文件不會編譯成二進制的文件(如果可以那就可以偷懶了摆昧,然而這樣包肯定又更大撩满,真是難以取舍)。即使在項目中的Copy Bundle Resource中強行弄進去也不會有任何變化绅你。伺帘。。然后我能想到的辦法就只有一個了忌锯,打包成bundle文件
打包成bundle之后圖片找不到的問題
其實伪嫁。。偶垮。這個正常的想想张咳,光是打包之后代碼也不改,怎么找的到原來的圖片似舵。脚猾。。原本我的代碼里加載image用的是imageNamed
方法啄枕,將資源文件打包之后就不得不在圖片名前加個bundle的路徑了
xxx.png -> xxx.bundle/xxx.png
為了方便就寫了個宏婚陪,都替換成這種模式
#define IMG_PATH(x) [NSString stringWithFormat:@"%@/%@",IMG_BUNDLE,x]
但是,開發(fā)的時候频祝,資源文件都會分文件夾泌参。脆淹。。直接這樣打包沽一,好的盖溺,也是找不到,所以用這種方法铣缠,需要在打包成bundle的時候烘嘱,把文件夾全部去掉,直接把文件全部拖到同一個文件夾下
這里怕有人不知道做個提示:bundle文件可以直接將文件夾名字改成xxx.bundle就自動打包了蝗蛙,不需要用xcode里面的bundle生成
打包跟開發(fā)項目分離蝇庭,代碼更新后都要重新拖代碼
這個。捡硅。哮内。嗯,因為項目在開發(fā)階段壮韭,好多問題都要修改北发,然后這邊改動了,打包的工程里的代碼也要拖喷屋,就覺得好麻煩- -于是介紹下我的處理方法琳拨,大神們勿噴。我的處理辦法是在開發(fā)的項目中添加個target屯曹,選擇framework文件狱庇,這樣就在工程里面有個framework的子工程了,然后手動將需要編譯成framework的.m文件和頭文件分別添加到Complie Sources和Headers中是牢。由于我的項目里有用到pod引用第三方庫僵井,所以在framework的配置中是稍微麻煩了一點,這個可以通過新建的framework工程中引入pod驳棱,將pod配置抄過來(坑點就是別忘記pod定義的user-defined)
然后由于兩個工程共用了文件,所以也添加了宏#define PROJECT_IS_FRAMEWORK 0
(感覺應該有其他方法判斷农曲,但是沒去找)社搅,打framework的時候就修改一下。
這個方法唯一坑的就是乳规,添加文件的時候形葬,需要在framework的target中手動添加文件,其余的還好暮的。
只用打release包就可以了吧
這個我也不太確定笙以,不過反正debug包也能跑的樣子,那么干脆只打release就好了