一个不小心引发的问题,installation failed invalid argument

昨天在一个偶然的不小心中,出现了一个问题,如图
这里写图片描述
翻译过来就是“安装失败,参数非法”,我也就是换了个图片文件夹,为什么会出现这种错误呢?

一.错误原因猜想

之前都是好的,没有问题的,我只是从svn上更新了个图片文件夹,然后本地少了图片,懒得找,就把原来的 Remove Reference,再重新拉取,怎么就不行了了?那么问题肯定出现在这个图片上,于是我就再看了下文件夹,发现
这里写图片描述
看到没,之前的文件夹都是黄色的,这个文件夹怎么变成蓝色的了?不过应该没有问题吧,里面有图片啊,如图
这里写图片描述
查了这个错误都是清缓存,重置模拟器等,试了试,都不行,于是搜了下这个蓝色文件夹和黄色文件夹的区别。

二.跟踪问题

原来是这样子,黄色的文件夹是group,蓝色的是folder

group :一般只在你的工程中是文件夹的形式,但是在本地的目录中还是以散乱的形式放在一起的,除非你是从外部以group的形式引用进来的。
folder: 只能作为资源,整个引用进项目,不能编译代码,也就是说,以folder形式引用进来的文件,不能被放在complie> sources列表里面。

我们比如拉图片或者第三方进工程的时候,会出现如下:
这里写图片描述
我们会发现在第二个选项Added folders这儿有两个选择

  1. Create groups
  2. Create folder references

这里我们一般选择的都是第一项Create groups,没有发现任何问题。而这次我选择的是第二项Create folder references,点击完成,如下图所示,文件夹是蓝色的,并且编译文件列表里面没有 MBProgressHUD.m这个文件,证明文件夹引用,只会引用文件夹,文件夹里面的东西都会直接拷贝到 bundle 包,不参与编译。
这里写图片描述

而如果我选择group,会发现

这里写图片描述
Co'mpile Sources 里面是有MBProgressHUD.m的。
这里就是groupfolder的区别了,原来folder是这个样子的,不知道苹果搞出来哥folder有什么意义,这里我们平时用的大多都是group的,所以估计平时都没注意这儿,现在可以有一定了解了。

三.解决问题

OK,问题找到了,那么解决吧,把这个蓝色的也就是folder文件夹删除重新拉一个,选择group,然后运行编译,竟然还是这个问题

installation failed invalid argument

oh,my god !这什么情况,于是重置模拟器,clean工程,都没用,后来在这里发现一个帖子
里面讲了

这里写图片描述
这才恍然大悟,既然folder参与了编译,只是里面的文件没有被引用,重置模拟器肯定是没有用的,把本地文件里面的缓存清了然后重新运行肯定就是新的group的路径了,要不运行的还是folder的缓存路径,果然,清完缓存后Build Succeeded,到此,这个问题就解决了。

四.最后

最后总结一下,遇到问题首先找到问题的根结,然后分析解决,对于平时没有在意的地方这种错误也需要注意,因为惯性思维可能使你没有往这方面的原因上面想,总之,写程序还是要小心啊!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值