报错信息
Use of private header from outside its module: 'netinet6/in6.h'
文件路径
Pods/AFNetworking/AFNetworking/AFNetworking/AFHTTPSessionManager.m:32:9 Pods/AFNetworking/AFNetworking/AFNetworking/AFNetworkReachabilityManager.m:26:9
问题原因
新版 Xcode(Xcode 26+)升级了 SDK,将 <netinet6/in6.h> 标记为模块私有头文件(private header),禁止从模块外部直接 #import。
这两个文件头部都引用了
#import <netinet6/in6.h>
由于 <netinet/in.h> 已经间接包含了 IPv6 相关的类型定义,这行 #import 实际上是多余的,删除即可~
解决方案
1、在 Podfile 的 post_install 钩子中加入以下代码,每次 pod install 后自动扫描并修复所有受影响的文件
post_install do |installer|
# ... 其他配置 ...
# 修复新版 Xcode SDK 中 netinet6/in6.h 私有头文件问题
# 全局扫描
Dir.glob('Pods/**/*.{m,mm}').each do |file|
content = File.read(file)
if content.include?("#import <netinet6/in6.h>")
content.gsub!("#import <netinet6/in6.h>\n", '')
# 移除只读限制
File.chmod(0644, file)
File.write(file, content)
puts "已修复 #{file} 的 netinet6/in6.h 问题"
end
end
end2、执行 pod install 后会看到如下输出
已修复 Pods/AFNetworking/AFNetworking/AFNetworking/AFNetworkReachabilityManager.m 的 netinet6/in6.h 问题 已修复 Pods/AFNetworking/AFNetworking/AFNetworking/AFHTTPSessionManager.m 的 netinet6/in6.h 问题
3、也可以直接用我的fork(集成了隐私清单,仅作为网络请求库的情况)
编辑 Podfile 把 AFNetworking 这部分改成这样~
pod 'AFNetworking', :git => 'https://github.com/xiaozhongmiao/AFNetworking.git', :tag => '4.0.1-privacy'

微信扫码查看本文
发表评论