您的位置:首页 > 运维架构

the file 'xxxx' couldn't be opened because there is no such file

2016-08-13 11:33 661 查看


注:截图虽然指向UM,但我想该解决方法适用于任何情况

用git管理碰到好恶心的问题,某个同事导入um,我更新后目录中整个um的文件不存在(但build phases - copy bundle resources存在),add files后,又删了build phases - copy bundle resources中重叠的文件,结果就出现这个问题。

开始以为是string缺失了,但是奇怪的是目录、build - copy bundle resources都是正常的,为什么会出现这个问题捏?

结果我删了文件,或者又删了resources,然后又添加回来,各种来回删除添加,都没办法,如果你也到了这一步,可以继续往下看。

google了一些,没有找到合适的解决,最后看到一个人说可能是绝对路径问题,要去project.pbxproj把  'xxx.strings'文件的  <Absolute>改为 <group>,我看了下,但都是<group>呀,顿时以为和我的问题不是一个问题,后来据此灵机一动,便想到了解决方法。(很遗憾忘记在哪里看到的,不然引用下链接)

一、首先把 'xxx.strings '(也不一定是.strings文件)从工程移掉,然后确保在build phases - copy bundle resources也不存在。

二、到finder找到项目目录,用Sublime Text类的应用打开xxx.xcodeproj,如图(其他 - 选择Sublime Text)



打开后的效果是这样的:



选中左侧的project.pbxproj文件,我们这次解决问题就靠它了。

三、在文本搜索你出现问题的文件名( no such file.),比如我出现问题的是UMSocialLocalizable.strings,那么搜索UMSocialLocalizable.strings会发现有很多地方存在。

这个时候你应该知道原因了,我明明在工程里都删掉'xxxx.strings'了,为什么还会存在呢,所以机智的我尝试把'xxxx.strings'在整个project.pbxproj里完全清除掉

四、通过逐步搜索,你会发现,project.pbxproj的文本有点类似于json格式,所以我们在删除对应的'xxxx.strings'的节点的时候,一定要注意,只能删除对应的节点,一定要注意符号(花括号,逗号)千万不要多删漏删,不然肯定出问题的。大致如下截图





五、打开项目,重新build,如果成功就没啥问题了,然后重新把有问题的'xxxx.strings'导入到工程里,再次build,成功!

希望能给你带来帮助,生活愉快:)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios git no such file
相关文章推荐