麻痹被这个东西弄了一个下半夜,无比的窝火,直想揍人
虽说 Xcode 的运用越来越熟练,但是终究还是被 xcode 搞得很烦恼
xcode貌似不能对资源文件做实时的监控,有时候对资源文件做出了改动以后,
xcode真机测试并没有将新的资源文件拷贝到机器里面,害的我经常性的要clean然后再build
弄得人是相当的烦躁
几百个源码文件,有时候就因为资源文件考不进机器要rebuild,
麻痹多搞得几次我得浪费多少时间,所以说,XCode这一点做的非常不好,让我非常不满意!
浪费了我一个下半夜的时间,肯定火大,抱怨牢骚不可避免,我也不是圣人~~
诚心希望苹果能将这点改进一下,银子多了总得为开发人员的便利考虑一下吧?
回到正题:no rule to process file ... .frag!
这是我看到 子龙山人的一篇技术博文之后自己动手尝试所遇到的一个bug,
。frag文件是 cocos2d 2。0 渲染相关的一个特色,在我看来用起来是相当的神奇。
很遗憾,到现在过了十多个小时了,我还没有对shader的机制做真正的深入了解
全赖这个bug!
额外细节也可以参照我写的上一篇博文,那篇博文的论述在现在看来,还是相当的不成熟的!
至少在写完那篇博文以后,我又为这个bug花费了好几个小时的时间,
可谓是真正的百思不得其解
下面是项目的一种组成结构与运行模拟器得到的结果
黑屏 + no rule to process file ....frag
控制台日出大段大段的
“..................380”
所以,如果你的shader是这么加入到项目里面的话,你很有可能就要头大了~
我开始就是这么弄的,因为不知道个中蹊跷,还以为是 target的相关工程设置出现了问题
一个劲儿地弄 Search Header Paths 里面的
Header search paths
也怪我怪我研究子龙闪人这篇技术博文不是时候
因为我刚才开始要研究怎么在 一个项目里面弄出几个target,
我的处女作便是将 cocos2d的源码部分打包成一个单独的 target(.a静态库)
我还以为是主程序 target 使用 静态库 target 所要包含的头文件路径不对,一个劲儿的改路径
后来事实证明我是越走越远,可以说我多花出去的几个小时的时间都用来修改头文件路径了~
很多时候事实就是这么残酷,明明你自己南辕北辙了你却好无所觉,费时又费力而毫无所得!
扯远了,拉回
其实子龙山人教程附赠的项目文件里面也给出了提示
不过这个提示也太他妈的隐晦了,一般人根本就是很难察觉到(我没有细看文章,扫一遍直接就跑示例工程了)~
我不知道他本人或者他翻译团队里面的人有没有为这个bug头疼欲裂过,但是我确实是这样了,
一张图胜千万言,我贴一组图,各位再和上面那张图对比一下就知道问题处在哪儿了~
对天发誓,我除了将Shaders文件夹由黄色改成蓝色,没有动其他任何手脚~
就是这么奇葩,能够正常运行了~ 至此问题解决!
解决方案就是:
加入Shaders 文件夹到工程里面的时候,
千万不能以 create Group reference 的方式加入(那样加入会是文件夹呈蓝色)~
而必须以 create file refference 的方式将装有 .frag,.vert 文件的文件夹加入工程!!
当然肯定还有一些要注意的地方,那就是 要用到的 Mask.frag 文件必须要按照前文所说的那样,
放进 target 的 Build Phases,Copy Bundle Resources 里面去~
操作过程中还要做一些尝试,如 clean整个工程(静态库,主程序target)后再build,删除模拟器或者
真机上面的app,各种各种。。
我试了将Shaders文件夹从Xcode里面删除引用,在彻底清理完所有targets以后再编译并拷贝到模拟器里面,
app黑屏了。
然后我又再试着将 Shaders文件加以 create group reference 的方式加入到工程里面,app正常运行~
问题的论述离不开具体的环境,下面我给出工程的完整目录,以及我改了几个小时所改动的地方,
以及在哪儿将 。frag文件添加到target 的 resource bundle~
(事实上我有一点没有阐明:即 cocos2d本身再带了一个装了n个 。vert,。frag文件的资源文件夹,
这个文件夹是要按照我上面要求的那样添加到项目中去的。但是真正要用到的做遮罩的那个Mask。frag文件,
是可以直接以 create file reference 的方式添加到项目中去的,不过要记得设置到 target 的bundle resources 里面去。
同时,完全按照上面的做了,编译的过程中还是会出现“no rule to process file ..frag” 警告。
不过现在不同了,只有 Mask.frag一个文件得到这样的警告,其他cocos2d自带的那一批shader文件不不会再
得到这样的警告,如果这样了的话,那就离成功不远了^ ^)
1.项目结构
2.让我钻牛角尖深陷误区几小时的地方(早点儿google就好了)
3.文件系统里面的项目结构
问题:
|
|