A signed resource has been added, modified, or deleted” when trying to debug an App on iPhone

在使用Cocoa Pods管理的项目中,添加Today Extension后,真机调试遇到'A signed resource has been added, modified, or deleted'错误。通过Clean工程可暂时解决,但效率低下。研究发现可能是Cocoa Pods对Extension支持问题导致代码签名失败。为提高效率,删除'/Users/用户名/Library/Developer/Xcode/DerivedData/你的工程名+一串值/Build/Products/Debug-iphones/.appex*'前缀的文件,或者在Xcode Build的Pre Actions中添加脚本,利用环境变量BUILT_PRODUCTS_DIR定位并删除Today.appex,有效解决了问题。" 48193119,5026063,深度学习与传统算法结合:人脸关键点检测技术解析,"['计算机视觉', '深度学习', '图像处理', '人脸识别技术', '机器学习库']

最近团队项目开发中遇到了这个错误,出现的场景是真机调试时,第一次可以真机运行,但是当再次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

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值