由于不同的团队ID,Xcode中的SDL2框架链接失败

46qrfjad  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(140)

我试图使用SDL 2在XCode中编译一个非常基本的C++应用程序-我遇到了一个令人沮丧的代码签名问题,如果不禁用硬化验证,显然无法解决(如果你想分发你的应用程序,这不是一个真正的选择)。它在说:

  • 不适用于过程中使用:Map进程和Map文件(非平台)具有不同的团队ID *

错误如下:

dyld[3678]: Library not loaded: @rpath/SDL2.framework/Versions/A/SDL2
  Referenced from: <35CBD752-6A32-3581-9662-6DE363C74AB5> /Users/alexei/Library/Developer/Xcode/DerivedData/sdltest-fbdltneqiwmnclcteotuuilnactn/Build/Products/Debug/sdltest
  Reason: tried: '/Users/alexei/Library/Developer/Xcode/DerivedData/sdltest-fbdltneqiwmnclcteotuuilnactn/Build/Products/Debug/SDL2.framework/Versions/A/SDL2' (no such file), '/Library/Frameworks/SDL2.framework/Versions/A/SDL2' (code signature in <3F99A8E0-46D9-3192-9F62-E2C522BF5A24> '/Library/Frameworks/SDL2.framework/Versions/A/SDL2' not valid for use in process: mapping process and mapped file (non-platform) have different Team IDs), '/System/Library/Frameworks/SDL2.framework/Versions/A/SDL2' (no such file, not in dyld cache)
bxgwgixi

bxgwgixi1#

您必须首先将latestSDL.framework安装到/Library/Frameworks文件夹中。然后,您必须与您的开发人员证书共同设计它。

cd /Library/Frameworks
codesign -display --verbose=4 SDL2.framework

这将显示库是由其他人共同设计的。对于开发,您可以使用开发人员证书重新签署库。使用以下命令获取:

security find-identity -v -p codesigning

这将输出如下内容:

1) XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX "Apple Development: your.name@gmail.com (XXXXXXXXXX)"
     1 valid identities found

取引号中的部分,并将其粘贴到以下命令中:

codesign -f -s "Apple Development: your.name@gmail.com (XXXXXXXXXX)" SDL2.framework

现在,您可以安全地将库添加到您的XCode项目**,而无需**使用Disable Library Validation(这将使您的应用不可分发)。
有关共同设计SDL的更多背景信息,请查看以下链接:

相关问题