在简单的app中,可能只会用到工程,但是项目越大,越复杂,就会需要拆分项目,将各个功能拆散到各个工程中。
可以使用worksapce来管理工程集合。
但是资源文件却不好管理,因为xcode默认只能添加自己工程内,或者子工程的资源文件到target中。
如果是平级的工程,怎么添加呢?可以使用bundle
bundle虽然是os x中的资源类型,但是是兼容iOS的
我们可以先创建一个os x的bundle,然后修改其编译类型为iOS的
调整base sdk即可
然后添加资源文件(png,xib,storyboard等)到此bundle中。
虽然资源文件打包到了bundle中,但是此bundle无法加入到其他工程编译的target中
我们需要修改scheme
Edit Scheme-》Build-》Add this bundle
这样在编译其他target的时候就会自动编译此bundle了,但是这个bundle却不会打包到app中
我们还需要添加run script到build parses中
build parses-》add run script(点+号)
cp -R -f $BUILT_PRODUCTS_DIR/MyBundleName.bundle $BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/
如果有多个bundle
cp -R -f $BUILT_PRODUCTS_DIR/*.bundle $BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/
这样bundle就可以正常打包到app中了
在使用的时候需要指定bundle
[UIImage imageNamed:@"yourbundlefile.bundle/imageInBundle"];