如何让CocoaPods验证podspec时使用iOS SDK而非模拟器SDK?
解决CocoaPods验证podspec时强制使用iPhoneOS SDK的问题
你遇到的问题是因为CocoaPods默认会使用iOS Simulator SDK进行podspec验证,而你的框架仅包含iOS真机的arm64二进制,导致架构不匹配的链接错误。直接在podspec中设置SDKROOT无法覆盖CocoaPods验证命令自带的-sdk参数,需要通过以下方式解决:
方法:在验证命令中指定iPhoneOS SDK
执行pod spec lint或pod lint时,添加--sdk iphoneos参数,强制CocoaPods使用真机SDK进行验证,命令示例:
pod spec lint MyFramework.podspec --sdk iphoneos
如果你的框架还有其他特殊需求(比如需要忽略警告、使用静态库等),可以搭配其他参数,比如:
pod spec lint MyFramework.podspec --sdk iphoneos --allow-warnings --use-libraries
补充说明
CocoaPods的默认验证流程会同时针对模拟器和真机环境做检查,当你的框架仅包含单一环境的二进制时,必须通过命令行参数指定对应SDK来跳过不兼容的环境验证,podspec中的xcconfig设置会被验证命令的-sdk参数覆盖,因此无法生效。
内容的提问来源于stack exchange,提问作者Sergei Ousynin
相关产品推荐
相关产品推荐

