1.重構(gòu)項(xiàng)目的原因
1.1公司的項(xiàng)目比較多弧腥,之前最多開發(fā)的時(shí)候有14個(gè)本辐,因?yàn)楣镜闹伴_發(fā)的項(xiàng)目的架構(gòu)不和要求,因?yàn)檫@些項(xiàng)目大體很相似赖淤,開發(fā)一個(gè)相同的功能蜀漆,要遷移很多遍,開發(fā)量很大咱旱。項(xiàng)目确丢,里有不少地方不適合做遷移,為了減少開發(fā)量吐限,我個(gè)人決定做項(xiàng)目重構(gòu)鲜侥,可以提高自己的個(gè)人能力,減少工作量
image
1.2采用方式:父工程嵌套子工程的方式。因?yàn)轫?xiàng)目本身相似度還是比較高诸典,每個(gè)需求又存在細(xì)微的差別描函,但是需求不是很獨(dú)立,功能中圖片和風(fēng)格都依賴App狐粱。彼此之間依賴性比較強(qiáng)舀寓。個(gè)人感覺沒有必要使用pod做模塊化,使用靜態(tài)庫或者動(dòng)態(tài)庫就可以
2.項(xiàng)目改名:我們copy 一份功能最齊全的項(xiàng)目肌蜻,把改一下名字
首先copy一份功能比較齊全的項(xiàng)目互墓,進(jìn)行改名:
image
改名字是一件麻煩的事情
比如我們現(xiàn)在想把 zhongxiangbao 改為 FZAllAppsProject
注意:重命名項(xiàng)目時(shí),記得先備份好一份
注意:重命名項(xiàng)目時(shí)蒋搜,記得先備份好一份
注意:重命名項(xiàng)目時(shí)篡撵,記得先備份好一份
未修改之前的效果
image
2.1、打開項(xiàng)目豆挽,對(duì)項(xiàng)目名進(jìn)行 Rename,
操作:點(diǎn)擊項(xiàng)目名育谬,直接回車即可
image
輸入FZAllAppsProject,然后回車帮哈,出現(xiàn)如下圖:點(diǎn)擊Rename
image
2.2.修改文件夾名字
原來的文件夾膛檀,都是zhongxiangbao,如圖:
image
把zhongxiangbao 替換成 FZAllAppsProject,修改完成但汞,如圖:
image
2.3.修改工程文件
2.3.1 選中 FZAllAppsProject.xcodeproj 右鍵打開 --> 顯示包內(nèi)容 --> 雙擊打開 project.pbxproj 宿刮。
注意:打開的是 FZAllAppsProject.xcodeproj 文件,而不是 FZAllAppsProject.xcworkspace文件私蕾。
image
image
2.3.2 全部替換project.pbxproj 中zhongxiangbao為FZAllAppsProject
==操作步驟==
command +F 查找 zhongxiangbao 僵缺,然后點(diǎn)擊replace 全部替換成為FZAllAppsProject,最后Command + s 保存一下
++注意一定要保存++
++注意一定要保存++
++注意一定要保存++
截圖如下:
image
image
2.4 pod 的修改踩叭,打開Podfile 文件把里邊的zhongxiangbao 替換為FZAllAppsProject 磕潮,
image
image
執(zhí)行pod install
image
完成以后項(xiàng)目可以跑起來了翠胰,但是target 的名字不對(duì)
2.5.修改target 的名字,
image
image
image
2.6.全局替換zhongxiangbao為FZAllAppsProject
image
改名完成
3.新建另一個(gè)項(xiàng)目的target
3.1.復(fù)制一target
image
image
3.2.修改target名稱
image
image
image
3.3修改plist文件自脯,改為xiaoer-Enterprise
image
關(guān)閉項(xiàng)目之景,重新打開會(huì)發(fā)現(xiàn) 如下圖;點(diǎn)擊choose file
image
image
4.新建子項(xiàng)目工程
4.1.新建子工程文件夾FZAppSubProject
image
4.2.新建子工程(其實(shí)是一個(gè).framwork的靜態(tài)庫)膏潮,如下1锻狗,2:
image
選擇FrameWork,下一步
image
4.3項(xiàng)目名字焕参,然后下一步
image
4.4選擇剛才的FZAppSubProject路徑轻纪,然后下一步
image
4.5 將靜態(tài)包的工程,導(dǎo)入FZAllAppsProject 工程中
右擊FZAppSubProject叠纷,選擇add files
image
選擇剛剛創(chuàng)建的子工程的工程文件,xiaoer_pack.xcodeprog ,
注意:勾選對(duì)應(yīng)的target
image
創(chuàng)建完成
image
5.子工程資源配置
5.1 處理plist文件
5.1.1建立如下的目錄結(jié)構(gòu)
image
5.1.2.遷移plist 文件以后刻帚,重新關(guān)閉,打開項(xiàng)目涩嚣,項(xiàng)目提示plist文件丟失:
image
5.1.3重新選擇一下plist 文件
image
5.2. 配置工程對(duì)應(yīng)assest 盒子
5.1.新建盒子
image
image
image
5.2.在asset 盒子中添加圖片icon和launch image
image
image
配置上自己的圖片即可崇众,lunch image不要配置路徑,但是icon 需要配置路徑
5.3工程配置icon
5.3.1取消小二項(xiàng)目默認(rèn)的asset
image
5.3.2 配置新的asset 盒子
image
5.4 遷移圖片到新項(xiàng)目盒子里
image
image
5.5 跟換證書和bundleId
image
image
6.工程文件的頭文件配置
工程文件中很多頭文件配置需要共同引用
image
7.項(xiàng)目整理和配置
7.1.配置項(xiàng)目信息
image
info 中信息要copy 過來
image
7.2.主工程找不到子工程頭文件的問題
image
7. 3.主工程 找不到.m 文件Undefined symbol: OBJC_CLASS$_FZjingtaiTestView
image
解決辦法:
image
7.4.子工程找不到主工程定義的文件
解決辦法:
7.4.1.增加pch
image
image
7.4.2.增加子工程的header 搜索路徑$(SRCROOT)/login_xiaoer-prefix.pch
image
7.4.3.增加子工程的framework 搜索路徑
image
7. 5 主工程增加對(duì)子工程的庫的依賴
image
7.6 子工程中加入Xib 資源航厚;Xib 資源不能直接放入包中顷歌,否者無法訪問。要放入bundle 中阶淘,然后copy 到主工程衙吩。
7.6.1 新建一個(gè)mac os 的bundle
image
image
7.6.2 設(shè)置bundle 為iOS
image
7.6.3 設(shè)置bundle 為bundle
image
7.6.4 設(shè)置hidp 為NO互妓,為YES 時(shí)溪窒,會(huì)把圖片轉(zhuǎn)換為tiff 格式
image
7.6.5 設(shè)置bitCode 為NO
image
7.6.5 設(shè)置Build Active Architecture Only 為NO
image
7.6.6 設(shè)置子工程對(duì)bundle 的依賴,編譯子工程的時(shí)候冯勉,bundle 會(huì)自動(dòng)編譯
image
7. 6.7 把xib等資源導(dǎo)入bundle 中
image
7. 6.8 主工程中copy bundle資源
image
7.7 把資源copy 到FrameWork中澈蚌,把包設(shè)置為Embed& sign,不然frameWork 是不能放資源的
image
8. 修改Xib 加載圖片路徑的問題
詳細(xì)請(qǐng)見另一篇簡書文章
簡書鏈接:http://www.reibang.com/p/843f92746856