解决 Xcode 26 编译报错 Use of private header from outside its module: netinet6/in6.h

2026-04-30 10:41:25  阅读 31 次 评论 0 条

报错信息

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
end

2、执行 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'



微信扫码查看本文
本文地址:https://www.yangguangdream.com/?id=2273
版权声明:本文为原创文章,版权归 编辑君 所有,欢迎分享本文,转载请保留出处!
NEXT:已经是最新一篇了

发表评论


表情

还没有留言,还不快点抢沙发?