我用了官方给的插件,发现激励视频不能播放,自动,依赖和手动每次都是到最后一步构建app,报错,有没有大佬知道怎么改的?可有偿
这。。直接问AI吧 估计是SDK跟XCODE版本不匹配。
大佬,解决了吗?
前排等解决方案,因为过两天我也想用这个admob插件。哈哈哈
使用这个办法解决了。笑死,花了我一整天
我也被这个问题个搞了一一整天了
根据搜索结果,这不是 AdMob 13.3.0 本身的 bug,而是 Xcode 26 链接器的已知问题。多个社区和官方渠道已确认。
结论:Xcode 26 的链接器 Bug
这个错误:
Assertion failed: (it != _dylibToOrdinal.end()), function dylibToOrdinal, file OutputFile.cpp, line 5196.
是 Xcode 26(ld64/ld_classic)的链接器崩溃,在以下场景都会触发:
项目类型 触发条件
Unity + ARKit Xcode 26 + AR 插件
Unity + AdMob + Vuforia 多框架组合
Firebase + -ld_classic + -ObjC 特定链接标志组合
Facebook SDK 仅 Xcode 26 复现
Godot + AdMob iOS 26 + Xcode 26
共同点:项目依赖多个动态库/框架,链接器在整理 dylib 序号时内部状态不一致导致断言失败。
解决方案(按有效性排序)
方案 1:移除 -ld64 / -ld_classic 链接标志(最有效)
这是社区验证最多的解决方法 :
Xcode → 项目 → Targets → Build Settings
→ 搜索 "Other Linker Flags"
→ 删除以下条目:
-ld64
-ld_classic
-weak-lSystem(如果存在)
注意: 这些标志可能是之前为了兼容旧版 Xcode 或某些插件而添加的,在 Xcode 26 下反而触发链接器 bug。
方案 2:检查 Framework Search Paths 冲突
如果使用了 CocoaPods 或手动引入框架,确保路径不冲突 :
Build Settings → Framework Search Paths
检查是否有:
- 重复路径
- 递归通配符
**指向重叠目录 - 同时包含
$(PROJECT_DIR)/Pods/...和手动拖入的 framework
方案 3:清理并重建
# 1. 关闭 Xcode
# 2. 清理 Derived Data
rm -rf ~/Library/Developer/Xcode/DerivedData
# 3. 清理构建目录
rm -rf /Volumes/xiayangqunT9/personSpace2/ParkourCompetition/build/ios/proj/Debug-iphoneos/
# 4. 如果用 CocoaPods
cd build/ios/proj
rm -rf Pods/ Podfile.lock
pod cache clean --all
pod install
# 5. 重新打开 .xcworkspace 构建
方案 4:尝试切换链接器(实验性)
Xcode 26 引入了新的 -ld_prime 链接器,部分简单项目可用 :
Build Settings → Other Linker Flags
→ 添加 -ld_prime
→ 移除 -ld64 / -ld_classic
但复杂项目可能仍不稳定,优先尝试方案 1。
为什么不是 AdMob 的 Bug?
证据 来源
纯 Unity AR 项目(无 AdMob)也会触发同样错误 Unity Issue Tracker
Firebase 官方确认是 Xcode 26 Beta 链接器问题 Firebase iOS SDK GitHub
Facebook SDK 独立复现 Facebook SDK GitHub
仅 Xcode 26 出现,Xcode 16 正常 多个社区报告
AdMob 13.3.0 只是恰好出现在依赖多个框架的项目中,成为触发条件之一,而非根本原因。
你的 Cocos 项目建议
由于你是 Cocos 3.8.2 + Xcode 26 + AdMob 13.3.0:
- 优先检查
Other Linker Flags,删除-ld64、-ld_classic、-weak-lSystem - 检查是否重复引入 GoogleMobileAds.framework(CocoaPods + 手动添加)
- 清理 Derived Data 后重新构建
- 如果仍失败,尝试在 Cocos 构建的 Xcode 工程中,将
libcocos2d.a和 AdMob 相关库的链接顺序调整(静态库放前面,动态 framework 放后面)
参考
- Unity Discussions: Xcode 26 linker assertion
- Firebase iOS SDK GitHub:
-ld_classic+-ObjCissue - Facebook SDK GitHub: Xcode 26 compile error
- Unity Issue Tracker: ARKit + Xcode 26
我的解决方案是首先要
用CocoaPOds 添加依赖
先检查一下Ruby 版本是不是 4.0.2 如果不是更新一下
cd 项目/proj 中进行如下操作
pod init 初始化一个podfile,并且修改一下内容
# Uncomment the next line to define a global platform for your project
platform :ios, ‘13.0’
target ‘boost_container’ do
Comment the next line if you don’t want to use dynamic frameworks
use_frameworks!
Pods for boost_container
end
target ‘cocos_engine’ do
Comment the next line if you don’t want to use dynamic frameworks
use_frameworks!
Pods for cocos_engine
end
target ‘dinokeno’ do
Comment the next line if you don’t want to use dynamic frameworks
use_frameworks!
Pods for 项目名
pod ‘Google-Mobile-Ads-SDK’
end
然后在控制台执行下载pod install --repo-update
就不报了,cocos用的是3.8.7Xcode是能从app story下载的最新版本
上传审核的时候可会报一个关于arm64和x86_64的错,修改一下.a文件就行
大佬nb,写的比我详细
我靠,兄弟解决了。我也碰到这个问题。但是解决不了。
根据搜索结果,这不是 AdMob 13.3.0 本身的 bug,而是 Xcode 26 链接器的已知问题。多个社区和官方渠道已确认。
结论:Xcode 26 的链接器 Bug
这个错误:
Assertion failed: (it != _dylibToOrdinal.end()), function dylibToOrdinal, file OutputFile.cpp, line 5196.
是 Xcode 26(ld64/ld_classic)的链接器崩溃,在以下场景都会触发:
项目类型 触发条件
Unity + ARKit Xcode 26 + AR 插件
Unity + AdMob + Vuforia 多框架组合
Firebase + -ld_classic + -ObjC 特定链接标志组合
Facebook SDK 仅 Xcode 26 复现
Godot + AdMob iOS 26 + Xcode 26
共同点:项目依赖多个动态库/框架,链接器在整理 dylib 序号时内部状态不一致导致断言失败。
解决方案(按有效性排序)
方案 1:移除 -ld64 / -ld_classic 链接标志(最有效)
这是社区验证最多的解决方法 :
Xcode → 项目 → Targets → Build Settings
→ 搜索 "Other Linker Flags"
→ 删除以下条目:
-ld64
-ld_classic
-weak-lSystem(如果存在)
注意: 这些标志可能是之前为了兼容旧版 Xcode 或某些插件而添加的,在 Xcode 26 下反而触发链接器 bug。
方案 2:检查 Framework Search Paths 冲突
如果使用了 CocoaPods 或手动引入框架,确保路径不冲突 :
Build Settings → Framework Search Paths
检查是否有:
- 重复路径
- 递归通配符
**指向重叠目录 - 同时包含
$(PROJECT_DIR)/Pods/...和手动拖入的 framework
方案 3:清理并重建
# 1. 关闭 Xcode
# 2. 清理 Derived Data
rm -rf ~/Library/Developer/Xcode/DerivedData
# 3. 清理构建目录
rm -rf /Volumes/xiayangqunT9/personSpace2/ParkourCompetition/build/ios/proj/Debug-iphoneos/
# 4. 如果用 CocoaPods
cd build/ios/proj
rm -rf Pods/ Podfile.lock
pod cache clean --all
pod install
# 5. 重新打开 .xcworkspace 构建
方案 4:尝试切换链接器(实验性)
Xcode 26 引入了新的 -ld_prime 链接器,部分简单项目可用 :
Build Settings → Other Linker Flags
→ 添加 -ld_prime
→ 移除 -ld64 / -ld_classic
但复杂项目可能仍不稳定,优先尝试方案 1。
为什么不是 AdMob 的 Bug?
证据 来源
纯 Unity AR 项目(无 AdMob)也会触发同样错误 Unity Issue Tracker
Firebase 官方确认是 Xcode 26 Beta 链接器问题 Firebase iOS SDK GitHub
Facebook SDK 独立复现 Facebook SDK GitHub
仅 Xcode 26 出现,Xcode 16 正常 多个社区报告
AdMob 13.3.0 只是恰好出现在依赖多个框架的项目中,成为触发条件之一,而非根本原因。
你的 Cocos 项目建议
由于你是 Cocos 3.8.2 + Xcode 26 + AdMob 13.3.0:
- 优先检查
Other Linker Flags,删除-ld64、-ld_classic、-weak-lSystem - 检查是否重复引入 GoogleMobileAds.framework(CocoaPods + 手动添加)
- 清理 Derived Data 后重新构建
- 如果仍失败,尝试在 Cocos 构建的 Xcode 工程中,将
libcocos2d.a和 AdMob 相关库的链接顺序调整(静态库放前面,动态 framework 放后面)
参考
- Unity Discussions: Xcode 26 linker assertion
- Firebase iOS SDK GitHub:
-ld_classic+-ObjCissue - Facebook SDK GitHub: Xcode 26 compile error
- Unity Issue Tracker: ARKit + Xcode 26