在同一iphone项目添加lite版(二)
《在同一iphone项目添加lite版》中说了基本的独立出两版的办法,
如果想更加彻底的对两个版本做一些区别,比如两个版本包中的文件不一样,两个版本加载的库不一样(比如正式版就不用加载AdMob模块),程序一开始的入口就不一样,该怎么办呢?
- 在上一集中,我们Duplicate出了一个xx-lite的Target,也Copy出了一个xx-lite-info.plist(注意,plist和引用的外部.a文件是不用包进Target里的Copy Bundle Resources里的,否则会在编译时,出现一些莫名的Warnning,如果包进去了,请在左侧的Groups&Files窗口中展开你的Target,找到删除之),打开plist文件,里面有一项“Main nib file base name”,将值改一下,比如MainWindow-Lite。这样,程序启到时,加载的就不是原来的MainWindow,而是另一个MainWindows-Lite.xib文件了。
- 然后,通过Copy或手工的方式,把原来的MainWindows和xxxAppDelegate.m复制一份出来,命令改成相应的xx-Lite。
- 打开MainWindows-Lite.xib,将里面的xxx APP Delegate对象的Type改成 xxxAppDelegate_lite,这样的话,程序一开始加载的AppDelegate也不同了。
- 然后再去改你的AppDelegate_lite.m,比如添加AdMob功能之类,如果View也要变,把ViewController换掉都随你了,反正,从xib到后端代码的入口,你都可以控制。
- 还是在Target的界面里,把不同版本不需要的.a文件啊,.m文件,图片啊,都清理一下,这样不同的版本,编译出来大小就会是两个版本的交集了。