1

TN2206 [不使代码签名无效的更改]中提到“嵌套代码可以替换为等效(符合指定要求)嵌套代码,而不会干扰外部签名。” 所以我想看看下面的情况是否可行:

假设我制作了一个安装在用户机器上的应用程序,该应用程序/Applications/MyApp.app附带一个具有以下布局的框架:

MyApp.app/Contents/Frameworks/MyFramework.framework/MyFramework -> Versions/Current/MyFramework
MyApp.app/Contents/Frameworks/MyFramework.framework/Versions/v1
MyApp.app/Contents/Frameworks/MyFramework.framework/Versions/Current -> v1
MyApp.app/Contents/Frameworks/MyFramework.framework/Versions/v1/MyFramework

现在我想更新 MyApp 以使用 MyFramework v2。用户已下载新版本的 .dmg,其框架布局为:

<mounted>/MyApp.app/Contents/Frameworks/MyFramework.framework/MyFramework -> Versions/Current/MyFramework
<mounted>/MyApp.app/Contents/Frameworks/MyFramework.framework/Versions/v2
<mounted>/MyApp.app/Contents/Frameworks/MyFramework.framework/Versions/Current -> v2
<mounted>/MyApp.app/Contents/Frameworks/MyFramework.framework/Versions/v2/MyFramework

现在我将拥有安装程序(或相关机制)将内容从更新映像复制/传输到旧安装位置(基本上覆盖它),但我想保留已安装的 v1 MyFramework。所以更新框架布局后应该变成:

MyApp.app/Contents/Frameworks/MyFramework.framework/MyFramework -> Versions/Current/MyFramework
MyApp.app/Contents/Frameworks/MyFramework.framework/Versions/v1
MyApp.app/Contents/Frameworks/MyFramework.framework/Versions/v2
MyApp.app/Contents/Frameworks/MyFramework.framework/Versions/Current -> v2
MyApp.app/Contents/Frameworks/MyFramework.framework/Versions/v1/MyFramework
MyApp.app/Contents/Frameworks/MyFramework.framework/Versions/v2/MyFramework

假设所有内容都可能已签名,我想知道保留旧的 v1 框架是否会破坏更新后的应用程序的代码签名检查?

4

0 回答 0