修复 AMap 真机链接错:补 3 个系统 framework + 永久文档化
真机首次跑 ylgamehall 时 linker 报 7 个 Undefined symbol: - _CNCopyCurrentNetworkInfo / _CNCopySupportedInterfaces / _SCNetworkReachability* → SystemConfiguration.framework - _OBJC_CLASS_$_CTTelephonyNetworkInfo → CoreTelephony.framework - _OBJC_CLASS_$_EAAccessoryManager → ExternalAccessory.framework 根因:AMap 是 fat 静态库(`Vendor/AMap/*.framework`),它内部引用的系统 API 不会被自动带入 transitive 依赖,必须项目方手动 link。CocoaPods 时代由 podspec 自动声明(daoqi msext 走 Pods 故未在 pbxproj 显式 link ExternalAccessory);本项目走 Vendor 手动接入路线,必须显式补齐。 工程:pbxproj 加 3 个 PBXBuildFile + PBXFileReference(Xcode UI 操作自动写入) 文档(永久记录避免重蹈): - Vendor/AMap/README.md「工程接入步骤」第 5 步补齐 3 个系统 framework + 列出每个 framework 对应的 symbol - Vendor/AMap/README.md 末尾加「如果未来真机链接报 C++ symbol 缺失」 备用方案(加 libc++.tbd,daoqi 已加;当前 AMap 2.12.0 未触发) - docs/SDK-Integration-Guide.md §A.2 第 5 步同步 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
e6bcb32820
commit
323fb9074b
@@ -42,7 +42,13 @@
|
||||
- `Vendor/AMap/AMapFoundationKit.framework`
|
||||
- `Vendor/AMap/AMapLocationKit.framework`
|
||||
4. 两个的 **Embed** 列都选 **Do Not Embed**(关键,别错——静态 fat framework,Embed 会触发 `__OBJC` 段重复符号错)
|
||||
5. ⌘B 编译 — **target 必须选真机**或 Generic iOS Device,模拟器 target 会因 simulator-arm64 slice 缺失而链接失败(按设计)
|
||||
5. **同一面板再 `+` 加 3 个系统 framework**(关键!漏一个真机链接器立即报 Undefined symbol):
|
||||
- **SystemConfiguration.framework**
|
||||
- **CoreTelephony.framework**
|
||||
- **ExternalAccessory.framework**
|
||||
|
||||
全部 **Do Not Embed**。详细原因见 `Vendor/AMap/README.md` 「工程接入步骤」第 5 步。
|
||||
6. ⌘B 编译 — **target 必须选真机**或 Generic iOS Device,模拟器 target 会因 simulator-arm64 slice 缺失而链接失败(按设计)
|
||||
|
||||
### A.3 添加七牛 SPM 依赖(远程)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user