You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XCFramework发布CocoaPods遇pod lib lint报错:x86_64符号未定义

问题:混合Objective-C与Swift的XCFramework发布CocoaPods验证失败

我开发了一个混合Objective-C与Swift的XCFramework,依赖Objective-C及Swift第三方库,尝试发布至CocoaPods时,执行验证命令:

pod lib lint --verbose --allow-warnings --no-clean

结果失败,报错为x86_64架构下符号未定义,具体错误信息如下:

Undefined symbols for architecture x86_64:
      "enum case for SwiftEntryKit.EKAttributes.Position.top(SwiftEntryKit.EKAttributes.Position.Type) -> SwiftEntryKit.EKAttributes.Position", referenced from:
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheet(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheetHide(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
      "enum case for SwiftEntryKit.EKAttributes.Position.bottom(SwiftEntryKit.EKAttributes.Position.Type) -> SwiftEntryKit.EKAttributes.Position", referenced from:
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheet(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheetHide(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
      "enum case for SwiftEntryKit.EKAttributes.PositionConstraints.SafeArea.overridden(SwiftEntryKit.EKAttributes.PositionConstraints.SafeArea.Type) -> SwiftEntryKit.EKAttributes.PositionConstraints.SafeArea", referenced from:
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheet(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheetHide(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
      "enum case for SwiftEntryKit.EKAttributes.RoundCorners.bottom(SwiftEntryKit.EKAttributes.RoundCorners.Type) -> (CoreGraphics.CGFloat) -> SwiftEntryKit.EKAttributes.RoundCorners", referenced from:
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheet(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheetHide(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
      "enum case for SwiftEntryKit.EKAttributes.RoundCorners.top(SwiftEntryKit.EKAttributes.RoundCorners.Type) -> (CoreGraphics.CGFloat) -> SwiftEntryKit.EKAttributes.RoundCorners", referenced from:
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheet(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheetHide(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
      "enum case for SwiftEntryKit.EKAttributes.BackgroundStyle.color(SwiftEntryKit.EKAttributes.BackgroundStyle.Type) -> (SwiftEntryKit.EKColor) -> SwiftEntryKit.EKAttributes.BackgroundStyle", referenced from:
          function signature specialization <Arg[1] = Dead> of static SASContractSDK.Overlay.entryAlert(__C.UIView) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheet(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheetHide(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[2] = Dead> of static SASContractSDK.Overlay.entryAlert(_: __C.UIView, dismiss: Swift.Bool) -> () in SASContractSDK(Overlay.o)
      "enum case for SwiftEntryKit.EKAttributes.PositionConstraints.Edge.ratio(SwiftEntryKit.EKAttributes.PositionConstraints.Edge.Type) -> (CoreGraphics.CGFloat) -> SwiftEntryKit.EKAttributes.PositionConstraints.Edge", referenced from:
          function signature specialization <Arg[1] = Dead> of static SASContractSDK.Overlay.entryAlert(__C.UIView) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheet(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheetHide(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[2] = Dead> of static SASContractSDK.Overlay.entryAlert(_: __C.UIView, dismiss: Swift.Bool) -> () in SASContractSDK(Overlay.o)
      "enum case for SwiftEntryKit.SwiftEntryKit.RollbackWindow.main(SwiftEntryKit.SwiftEntryKit.RollbackWindow.Type) -> SwiftEntryKit.SwiftEntryKit.RollbackWindow", referenced from:
          function signature specialization <Arg[1] = Dead> of static SASContractSDK.Overlay.entryAlert(__C.UIView) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheet(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheetHide(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[2] = Dead> of static SASContractSDK.Overlay.entryAlert(_: __C.UIView, dismiss: Swift.Bool) -> () in SASContractSDK(Overlay.o)
      "enum case for SwiftEntryKit.EKAttributes.Scroll.disabled(SwiftEntryKit.EKAttributes.Scroll.Type) -> SwiftEntryKit.EKAttributes.Scroll", referenced from:
          function signature specialization <Arg[1] = Dead> of static SASContractSDK.Overlay.entryAlert(__C.UIView) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheet(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[2] = Dead> of static SASContractSDK.Overlay.entryAlert(_: __C.UIView, dismiss: Swift.Bool) -> () in SASContractSDK(Overlay.o)
      "enum case for SwiftEntryKit.EKAttributes.Animation.Translate.AnchorPosition.automatic(SwiftEntryKit.EKAttributes.Animation.Translate.AnchorPosition.Type) -> SwiftEntryKit.EKAttributes.Animation.Translate.AnchorPosition", referenced from:
          function signature specialization <Arg[1] = Dead> of static SASContractSDK.Overlay.entryAlert(__C.UIView) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheet(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheetHide(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[2] = Dead> of static SASContractSDK.Overlay.entryAlert(_: __C.UIView, dismiss: Swift.Bool) -> () in SASContractSDK(Overlay.o)
      "enum case for SwiftEntryKit.EKAttributes.Position.center(SwiftEntryKit.EKAttributes.Position.Type) -> SwiftEntryKit.EKAttributes.Position", referenced from:
          function signature specialization <Arg[1] = Dead> of static SASContractSDK.Overlay.entryAlert(__C.UIView) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[2] = Dead> of static SASContractSDK.Overlay.entryAlert(_: __C.UIView, dismiss: Swift.Bool) -> () in SASContractSDK(Overlay.o)
      "enum case for SwiftEntryKit.EKAttributes.PositionConstraints.Edge.intrinsic(SwiftEntryKit.EKAttributes.PositionConstraints.Edge.Type) -> SwiftEntryKit.EKAttributes.PositionConstraints.Edge", referenced from:
          function signature specialization <Arg[1] = Dead> of static SASContractSDK.Overlay.entryAlert(__C.UIView) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheet(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[7] = Dead> of static SASContractSDK.Overlay.entrySheetHide(_: __C.UIView, top: Swift.Bool, offset: CoreGraphics.CGFloat, round: CoreGraphics.CGFloat, bgcolor: Swift.Int, dismiss: Swift.Bool, cancelled: (() -> ())?) -> () in SASContractSDK(Overlay.o)
          function signature specialization <Arg[2] = Dead> of static SASContractSDK.Overlay.entryAlert(_: __C.UIView, dismiss: Swift.Bool) -> () in SASContractSDK(Overlay.o)
      "enum case for SwiftEntryKit.SwiftEntryKit.EntryDismissalDescriptor.all(SwiftEntryKit.SwiftEntryKit.EntryDismissalDescriptor.Type) -> SwiftEntryKit.SwiftEntryKit.EntryDismissalDescriptor", referenced from:
          static SASContractSDK.Overlay.entryHide((() -> ())?) -> () in SASContractSDK(Overlay.o)
          @objc static SASContractSDK.Overlay.entryHide((() -> ())?) -> () in SASContractSDK(Overlay.o)
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

错误原因

  1. 依赖库符号未被正确链接:所有未定义的符号均来自SwiftEntryKit的枚举成员,说明CocoaPods验证时,链接器无法找到SwiftEntryKit的相关符号。要么是XCFramework未嵌入SwiftEntryKit,要么是podspec未正确声明依赖。
  2. XCFramework构建不完整:可能构建时未包含x86_64架构(模拟器验证需要),或者未正确合并依赖库的符号。
  3. 混合语言配置缺失:OC与Swift混合的框架需要在podspec中明确Swift版本、部署目标等配置,否则CocoaPods无法正确处理Swift依赖。

解决步骤

1. 修正podspec配置

在你的SASContractSDK.podspec中补充以下配置:

# 添加SwiftEntryKit依赖
s.dependency 'SwiftEntryKit'

# 声明Swift版本(匹配你的项目版本)
s.swift_version = '5.0'

# 设置最低iOS部署目标(需与SwiftEntryKit兼容)
s.ios.deployment_target = '11.0'

# 如果是静态XCFramework,需添加该配置
s.static_framework = true

2. 重新构建XCFramework

  • 清理之前的构建产物:执行xcodebuild clean
  • 重新构建包含真机+模拟器架构的XCFramework,确保构建过程中正确链接SwiftEntryKit,且所有依赖符号被正确包含。

3. 调整验证命令

尝试添加--use-libraries参数,确保CocoaPods正确链接静态库依赖:

pod lib lint --verbose --allow-warnings --no-clean --use-libraries

如果依赖是动态库,添加--use-modular-headers参数:

pod lib lint --verbose --allow-warnings --no-clean --use-modular-headers

4. 检查XCFramework架构完整性

用以下命令检查XCFramework是否包含x86_64架构:

lipo -info SASContractSDK.xcframework/ios-x86_64-simulator/SASContractSDK.framework/SASContractSDK

如果输出不包含x86_64,需重新构建包含模拟器架构的XCFramework。


内容的提问来源于stack exchange,提问作者AdamShi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 04:05:25