最近团队项目开发中遇到了这个错误,出现的场景是真机调试时,第一次可以真机运行,但是当再次Run进行真机调试时,就会弹出来这个错误,造成无法真机调试。我们使用Cocoa Pods管理工程,这个之前一直没遇到过,项目中最近加入了Today Extension功能,就有了这个问题。
一开始想到的办法是Clean下工程,然后Run,这样这个问题就会修复,但是每次做了耕道都Clean一次,很多生成的静态库就得重新编译,时间很慢,浪费时间。后来在网上搜索这个问题,发现很多开发者都遇到了这个问题:
receive message a signed resource has been added modified or deleted when tr
还有Cocoa pods的的issues里面也有对这个问题的讨论:
https://github.com/CocoaPods/CocoaPods/issues/790
看来还真是一个常见问题,通过上述两个地方的讨论总结,推测应该是Cocoa pod对Extension支持不到位,造成的代码签名不通过,所以无法安装。不知道最新pod能修复这个问题不。既然官方没给解决方法,只能自己尝试了。我一开始是通过Clean来解决,但是缺陷就是每次run太慢了。后来通过尝试,把我们生成的Today.appex在每次build之前删除掉,这个问题就不存在了。因为没有删除生成的一些库,编译速度就没这么慢了。这个文件的路径是在
/Users/用户名/Library/Developer/Xcode/DerivedData/你的工程名+一串值/Build/Products/Debug-iphones/.appex*
后来看了看Xcode的编译过程,看到scheme里面Build可以加Pre Actions执行叫脚本,这样就很容易解决这个问题,但是很扯淡的是Xcode的环境变量不知道,后来查了查,看到这个:
Xcode的常见环境变量
在里面看到了 BUILT_PRODUCTS_DIR这个环境变量可以得到当前生成的app和appex文件的位置。因此可以在这里面加入下面一句话:
rm -rf ${BUILT_PRODUCTS_DIR}/*.appex
2611



被折叠的 条评论
为什么被折叠?



