如何在iOS中正确签署要通过dlopen加载的C++dylib



我们正在将我们的语言工具集成到移动平台中。

因此,有一些特定于语言的库是根据用户的请求加载的——目前有英语、法语、西班牙语或希腊语。

这些库太大,无法静态链接。

目前,我们可以在linux中通过dlopen和dlsym调用加载这些库。

我已经看到,我们可以从iOS v8开始使用这些调用。

正如苹果开发者支持所说的";。。。没有全面禁止使用dlopen和friends">

在编译了我们的库(使用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,尚未加入开发者计划。

我已经做了很多搜索,但还没有找到丢失的东西。

现在的正确方向是什么?

经过大量研究,我在apple dev论坛上打开了一个请求。

这个问题的答案可以在这里找到:https://developer.apple.com/forums/thread/670761

最新更新