之初
項(xiàng)目使用 Swift
和 Objective-C
混合開(kāi)發(fā)模式档叔,后續(xù)的想通過(guò)多個(gè) target
和 schema
來(lái)管理項(xiàng)目的版本,設(shè)定有兩個(gè) target
, 分別是 project-name
和 project-name-dev
, 這兩個(gè) target
分別有不同的 schema
管理,并配置不同的 bundle-id
和 bundle-icon
,這樣隙咸,就可以在一臺(tái)設(shè)備上方便地區(qū)分發(fā)布和開(kāi)發(fā)兩個(gè)版本。
在之前耳高,只有一個(gè) target 的時(shí)候扎瓶,打包沒(méi)有問(wèn)題所踊,后來(lái)在新的 scheme project-name-dev
下泌枪,打包出來(lái)的項(xiàng)目有些頁(yè)面是空白的。甚是費(fèi)解秕岛。
迷茫
由于打包出來(lái)的項(xiàng)目碌燕,直接部署到設(shè)備上误证,具體報(bào)錯(cuò),沒(méi)法看到修壕。同樣的代碼愈捅,同樣的配置,為何就新的target有問(wèn)題慈鸠,一度懷疑這個(gè)多target的方法是不是可行蓝谨。
曙光
同事提示說(shuō),這些跳轉(zhuǎn)都是在Storyboard里實(shí)現(xiàn)的青团。是不是在Storyboard里的某些控制器設(shè)置的問(wèn)題譬巫。
可是不知道具體報(bào)什么樣的錯(cuò)誤,也不知道在哪里改岸桨省芦昔!
足下
不怕麻煩,修改工程的mobileprovision文件娃肿,在手機(jī)上運(yùn)行調(diào)試咕缎。直覺(jué)告訴我,console里一定會(huì)有報(bào)錯(cuò)料扰。
報(bào)錯(cuò)
**Unknown class xxxController in Interface Builder file.**
Google & Stack Overflow
Xcode 6 Strange Bug: Unknown class in Interface Builder file
XCODE 7.1 Swift 2 Unknown class in Interface Builder file
眾矢之的
所有的問(wèn)題都指向了Storyboard凭豪,而且都指向了ViewController
的 Custom class
>module
.
水落石出
在那些沒(méi)有出現(xiàn)的ViewController
里面,Custom class module
被設(shè)置成了 'project-name' 晒杈,里面有兩個(gè)選項(xiàng) 'project-name' 和 'project-name-dev'墅诡。選哪個(gè)都合適啊。果斷刪除桐智,運(yùn)行調(diào)試末早。完美解決。
Learn More
通過(guò)版本控制工具git说庭,發(fā)現(xiàn)了改動(dòng)之后的storyboard文件的變化
之前也是設(shè)置了 module
為readme然磷,但是少了一個(gè)字段 customModuleProvider
。這個(gè)字段通過(guò)google發(fā)現(xiàn)有好多人也是出現(xiàn)丟失的情況刊驴,他們也提供了一些修復(fù)的方法姿搜。我的修復(fù)方法很簡(jiǎn)單,直接把這個(gè)之前的內(nèi)容刪除捆憎,然后回車(chē)舅柜,就好了。
這個(gè)問(wèn)題躲惰,也在這里被提到過(guò)致份,同樣是多Target導(dǎo)致的。
In a Word
Stay hungry, stay foolish.