xcode新建target打包签名后,重新签名时报错Error verifying code signature! XX a sealed resource is missing or invalid

本文记录了解决iOS项目在正式打包时遇到的Error verifying codesignature问题,通过调整ProductModuleName和ProductName设置,最终解决了打包失败的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、接手党建项目,甘肃的项目有3个,一个正式,一个内测,一个开发,都是一套代码,就是bundleId、版本号、热更新服务器地址不一样,这也太扯了,加个功能、改个功能就要改3遍。

2、拿来就干,打开主工程,在原有的target基础上duplicate一个新的,修改新生成的plist名字和manage scheme中的名字,还有build setting中的info.plist,如图:

3、修改后打development包,没问题。成功生成ipa。

4、拷贝到专门打包机器上,用正式的mobileprovision打包。报错:

Error verifying code signature!
XXXXXXXXXXX a sealed resource is missing or invalid

5、擦擦擦擦擦,这是为啥。

6、搜了搜,虽然有报相同错误的,但是情况明显不一样。我用自己的机器打包没问题,打正式包有问题,神奇。

7、关键是打包软件 app signer还不具体的错,只有个笼统的错。这就只能靠猜了

8、先排除多target设置问题,我新建个test项目,用cocoapods搞了个masonary,在主页用约束写了个界面。duplicate个target,改名、改设置之后本机打包没问题,正式打包也没问题。

9、我又拿任我行做实验,duplicate个target,改名、改设置之后本机打包没问题,正式打包也没问题。

10、那我心里就有底了,那就是这个项目的设置问题。

11、对比一下甘肃打出的正式包和新建的dev target包生成的文件看是否一致。经对比68个文件,除了mach-o文件以外其他文件都一致。

12、那就是mach-o文件不一致了,哪不一致呢,文件名不太一样以外也没啥。用mach-OView查看也没看出个所以然来。

13、那就从build-settings入手,既然打包出错,就搜索packaging部分看看具体都有啥区别。

14、注意到"Product Module Name"和 "Product Name"文件名称竟然不一样,Product Module Name是写死的“gansudangjian”,Product Name是标识符${TARGET_NAME},和新建的target名字保持一致。

15、查看一下新建的test项目这个地方的设置:

 

16、那俩项的内容显示一致。

17、test项目Product Module Name写的是"$(PRODUCT_NAME:c99extidentifier)",把这个内容拷贝到甘肃项目里,改后的build settings如图:

18、再次在本机打包,OK。去打包机器上打正式包,也OK。oh yeah~~~~

19、最后别忘了改一下cocoapods项,添加一下多target设置,我这个工程共用一套pod,所以duplicate target的时候用系统直接拷贝过来的daosaojiao target的脚本就ok,不需要做任何修改,如图:

20、后记

后来照着内测工程把daosaojiao_dev的display Name、bundle Identifier、Version都改了。又打包报错,真tm神奇。

又去找build settings设置,display Name修改完后,build settings中的 “Product Name” 就自动变为写死display Name了,xcode默认display Name = Product Name

21、之前Product Name是跟随新建的target名字,能不能是因为product name和 target的名字对不上导致的打包失败。

22、改回$(TARGET_NAME) 跟target的名字一致,Display Name也跟着变成了target的英文名。两次打包成功。还真是这个原因。在plist中把app显示的名字单独改一下(CFBundleDisplayName),写死就ok了。

23、那为什么正式版老的target的名字和display name和Product Named都不一致都没问题,太神奇了,Product Module Name 和 Product Named都是写死的“gansudangjain”,哪位大神知道帮忙解答一下。

24、我尝试新建了一个中文名字的target,这次target名字、product name、display name都保持了一致,打包依旧失败,我有点方!@#¥%……&*()

 

PS:通篇读一遍自己写的东西,咋这么绕~~~~~~~~~~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值