The executable was signed with invalid entitlements.

想要直接安装release环境下的app 进行测试,于是在scheme中将运行环境设置为release,如下图:


scheme配置

在 target -general - signing 里在release下配置了发布描述文件


signing 配置

在target - build setting code sing 进行了如下配置
code sign 配置

结果编译成功,但是安装失败,安装时这么提示:


安装失败

这句话是什么意思呢?
The entitlements specified in your application’s Code Signing Entitlements file are invalid, not permitted, or do not match those specified in your provisioning profile.

是说:此文件里设置的配置信息与release环境下使用的描述文件设置的配置信息冲突。


entitlements文件

cd 进入编译成功的.app文件中,执行codesign --display --entitlements :- ./relaseTest 可以看到entitlements的配置信息如下:

image.png

再查看下 dis描述文件的配置信息 和 adhoc描述文件,发现在Entitlements 对应的内容里,
dis描述文件 多了一对 beta-reports-active
字段
在ExpirationDate 对应的内容里,
dis 描述文件 缺少 以下两个字段
ProvisionedDevices

分析一下:
1、dis 和 adhoc build 都可以成功,说明,环境配置是ok的,且在build过程中,entitlements会被Xcode自动将enviroment字段的值更改为production.
2、dis build产生的无法安装,可能与 缺少 ProvisionedDevices 字段信息有关。

进一步计划,将dis描述文件手动进行修改,新增ProvisionedDevices 相关信息。
但是一时还没有找到合适的方法。如果有小伙伴知道如何手动修改 dis描述文件的方法,请告诉我一下,这里先道声谢谢啦!

ps 本文参考:
查看 entitlements文件的方法:
cd 到已生成的app目录
codesign -d --entitlements - relaseTest.app
查看描述文件的方法

你可能感兴趣的:(The executable was signed with invalid entitlements.)