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

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

分类:Objective-C

昨天在一个偶然的不小心中,出现了一个问题,如图

翻译过来就是“安装失败,参数非法”,我也就是换了个图片文件夹,为什么会出现这种错误呢?

一.错误原因猜想

之前都是好的,没有问题的,我只是从svn上更新了个图片文件夹,然后本地少了图片,懒得找,就把原来的 Remove Reference,再重新拉取,怎么就不行了了?那么问题肯定出现在这个图片上,于是我就再看了下文件夹,发现

看到没,之前的文件夹都是黄色的,这个文件夹怎么变成蓝色的了?不过应该没有问题吧,里面有图片啊,如图

查了这个错误都是清缓存,重置模拟器等,试了试,都不行,于是搜了下这个蓝色文件夹和黄色文件夹的区别。

二.跟踪问题

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

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

我们比如拉图片或者第三方进工程的时候,会出现如下:

我们会发现在第二个选项Added folders这儿有两个选择

Create groupsCreate folder references

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

而如果我选择group,会发现

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

三.解决问题

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

installation failed invalid argument

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

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

四.最后

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

版权声明:本文为博主原创文章,转载请注明出处,,谢谢。

上一篇Swift封装的一种带动画的倒计时Label

顶0踩0

自己打败自己是最可悲的失败,

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

相关文章:

你感兴趣的文章:

标签云: