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

Xcode10.2.1编译SKAdNetworkInfo报缺少返回值错误咨询

问题原因
  • 该错误由Swift版本兼容性问题导致,和第三方库逻辑正确性无关。你当前使用的Xcode 10.2.1内置Swift版本为5.0,而引入的CriteoPublisherSdk采用了Swift 5.1及以上版本的语法特性编写。
  • Swift 5.1才正式支持单表达式函数隐式返回语法:当函数整体仅包含一条用于返回值的表达式时,允许省略return关键字,编译器会自动将该表达式的计算结果作为函数返回值。Swift 5.0没有这个特性,遇到省略return的返回值函数就会抛出「缺少return语句」的编译错误。
  • 你遇到的三处报错刚好全部命中这个语法差异:
    1. getAdNetworkIds(from:)方法的函数体仅包含一条解析Info.plist中SKAdNetwork条目的表达式
    2. hasCriteoId()类方法的函数体仅包含skanInfo.hasCriteoId一条返回表达式
    3. skAdNetworkIds()类方法的函数体仅包含skanInfo.adNetworkIds一条返回表达式
  • 第三方库官方发布时通常以最新正式版Xcode为编译校验基准,不会全量回溯测试老版本Xcode的兼容性,因此会出现老环境编译失败的情况,不属于官方发布的源码错误。
  • 报错对应截图参考:
    CriteoPublisherSdk编译报错截图

具体报错信息:
/Pods/CriteoPublisherSdk/CriteoPublisherSdk/Sources/SKAdNetwork/SKAdNetworkInfo.swift:41:3: Missing return in a function expected to return '[String]'
/Pods/CriteoPublisherSdk/CriteoPublisherSdk/Sources/SKAdNetwork/SKAdNetworkInfo.swift:51:3: Missing return in a function expected to return 'Bool'
/Pods/CriteoPublisherSdk/CriteoPublisherSdk/Sources/SKAdNetwork/SKAdNetworkInfo.swift:55:3: Missing return in a function expected to return '[String]'

修复方案
  • 最优方案:升级Xcode到11.0及以上版本(内置Swift 5.1+),无需修改任何源码即可直接编译通过,不会引入额外问题。
  • 若受项目限制必须保留Xcode 10.2.1环境,可以直接给三个报错函数补充return语句修复,修改后代码逻辑和原逻辑完全一致,不会产生功能偏差,修改后的对应代码片段如下:
// 原第41行位置的方法修改
static func getAdNetworkIds(from bundle: Bundle) -> [String] {
  return (bundle.object(forInfoDictionaryKey: Keys.items) as? [[String: String]])?
    .compactMap { item in item[Keys.identifier] } ?? []
}

// 原CRSKAdNetworkInfo扩展修改
@objc extension CRSKAdNetworkInfo {
  public static let CriteoId = "hs6bdukanm.skadnetwork"

  public class func hasCriteoId() -> Bool {
    return skanInfo.hasCriteoId
  }

  public class func skAdNetworkIds() -> [String] {
    return skanInfo.adNetworkIds
  }
}
  • 注意:如果通过CocoaPods管理依赖,直接修改Pods目录下的文件会在下次执行pod install时被覆盖。长期使用老Xcode环境的话,建议要么在Podfile中锁定CriteoPublisherSdk最后一个兼容Swift 5.0的版本,要么通过Podfile的post_install钩子在依赖安装完成后自动给对应文件补上return语句,避免重复修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 09:12:30