当我尝试使用 Xcode Organizer 中的开发者 ID 分发我的应用程序时,我收到此错误:
未启用强化运行时。
“ffmpeg”必须在支持 Hardened Runtime 的情况下重建。在项目编辑器中启用强化运行时功能,测试您的应用程序,重建您的存档,然后再次上传。
Hardened Runtime
在 Project
> Signing & Capabilites
中启用。
我的应用程序的资源文件夹中有 FFmpeg CLI 工具。
由于 FFmpeg 是已编译的二进制文件,因此我无法选择启用
Hardened Runtime
。
我该如何解决这个问题并让我的应用程序正确进行代码签名?
使用 此协同设计指南 我找到了如何对所有包含的二进制文件进行编码签名(例如 FFmpeg 等 CLI 工具)。
在
Run Script Phase
中添加新的Build Phases
:
codesign --force --options=runtime \
--sign "${EXPANDED_CODE_SIGN_IDENTITY_NAME}" \
"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Contents/Resources/ffmpeg"
您可以将此方法用于应用程序内的其他位置/子路径,例如
/Contents/Frameworks/
等。只需打开您的应用程序包并观察文件夹路径即可。
如果您有多个二进制文件,请对每个二进制路径重复 codesign 命令。