问题描述
我们正在将我们的语言工具集成到移动平台中。
因此,有根据用户请求加载的特定语言库 - 目前有英语、法语、西班牙语或希腊语。
这些库太大,无法静态链接。
目前,我们可以在 linux 中通过 dlopen 和 dlsym 调用加载这些库。
我已经看到我们可以从 iOS v8 开始使用这些调用。
正如 Apple 开发人员支持所说的“......没有全面禁止使用 dlopen 和朋友。”
在编译我们的库(使用 CMake 和相关的 iOS 工具链)后,它们已使用与应用程序相同的证书和标识符进行签名,使用
codesign --deep --force --sign "78037F819B5AA1522177B06DA8E7C5343DDBC0CF" --identifier=fr.teamname.libtext_fr ./libtext_fr.dylib
但是,当应用程序(在 iOS v14 的 iPad 上运行)尝试加载文件时,会引发错误,我们得到以下原因:
code signature invalid (errno=1) sliceOffset=0x00000000,codeBlobOffset=0x0205D0F0,codeBlobSize=0x000453E0
请注意,我们目前使用的是免费的 Apple Id,尚未加入开发者计划。
我已经做了很多搜索,但还没有找到遗漏的东西。
现在采取的正确方向是什么?
解决方法
经过大量研究,我在苹果开发论坛上提出了一个请求。
这个问题的答案可以在这里找到: https://developer.apple.com/forums/thread/670761