我的用例: 我有一个适用于Mac的自动化框架,该框架可在不同位置启动两个相同应用程序(相同包ID)的实例,以模拟两个端点案例进行媒体调用。引入Mojave权限后,当我为该应用程序的一个实例授予权限(camera,mic和可访问性)时,另一个实例没有相同的权限。
由于捆绑包ID相同,难道不是将为应用提供许可的权限转移到两个实例上吗?
我尝试推送系统配置文件以提供权限,但这似乎不起作用
还添加了一个Apple脚本来连续检查权限弹出窗口,然后单击“确定”。这适用于麦克风和相机,但不适用于辅助功能。同样,当启动每个实例时,也会再次询问权限。
答案 0 :(得分:0)
您需要使用相同的身份对应用程序的所有版本/副本进行代码签名。
当应用程序未进行代码签名且系统需要记录其身份(如权限)时,它将生成一个临时代码签名。但是,该签名仅与该应用程序的确切版本匹配。应用程序的任何与代码签名相关的方式均不同的另一个副本不被视为具有相同的身份。实际上,它似乎已被篡改,因此可能被认为是“恶意的”。
如果您使用适当的指定要求对应用程序进行代码签名,则可使系统了解应用程序的两个不同版本具有相同的标识,并应共享权限。例如,这是应用程序通过升级到新版本来维护权限的关键。