iOS模拟器编译报错:Undefined symbols for architecture x86_64求助
解决iOS模拟器x86_64架构下Security框架符号缺失问题
嘿,这个问题我碰到过好多次了!你遇到的Undefined symbols for architecture x86_64错误,根源很明确:那些找不到的_SecPolicyCreateSSL、_SecTrustSetPolicies、_SecTrustGetCertificateCount等符号,全都是Apple Security框架里的核心API,你的项目没把这个框架链接到模拟器的编译目标里——真机能正常运行是因为真机环境可能默认隐式处理了框架链接,但模拟器不会这么做。
下面给你两种最常用的解决方法,按需选择:
方法一:Xcode手动链接Security框架
- 打开你的Xcode项目,选中要编译的App Target(左侧导航栏里带图标的那个项目目标)
- 切换到顶部的「Build Phases」标签页
- 找到「Link Binary With Libraries」区块,点击左下角的「+」按钮
- 在弹出的搜索框里输入「Security」,找到
Security.framework后选中它,点击「Add」完成添加 - 重新Clean项目(
Cmd+Shift+K)再编译模拟器,问题应该就消失了
方法二:CocoaPods自动链接(如果你的项目用CocoaPods管理依赖)
如果你的项目是用CocoaPods配置的,也可以直接在Podfile里添加一行:
pod 'Security'
然后在终端里执行:
pod install
CocoaPods会自动帮你完成Security框架的链接配置,重新打开xcworkspace文件编译即可。
一般来说,上面两种方法就能解决99%的这类问题,如果还是不行,可以检查一下项目的「Build Settings」里的Architectures配置,确保包含x86_64架构,但真机正常的话,这个概率很低。
内容的提问来源于stack exchange,提问作者Kishore R
相关产品推荐
相关产品推荐

