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

通过命令行打包iOS企业应用时CNCopyCurrentNetworkInfo返回nil问题

问题:命令行归档分发企业应用时WiFi SSID获取返回nil(Xcode归档正常)

我的应用部署目标为iOS 13,使用CNCopyCurrentNetworkInfo获取WiFi SSID信息。但仅在通过命令行工具归档并分发企业应用时出现异常:WiFi SSID信息始终返回nil,通过Xcode归档则无此问题。

使用的归档与导出命令如下:

  1. xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme archive -configuration MyConfig -sdk iphoneos -archivePath MyArchivePath CODE_SIGNING_ALLOWED=NO
  2. xcodebuild -exportArchive -archivePath MyArchivePath -exportPath MyExportPath -exportOptionsPlist MyExportOptionPlist

注:已添加获取SSID所需的全部必要权限与配置:

  • Privacy - Location When In Use Usage Description(使用期间获取位置权限描述)
  • 授权文件(entitlements)中已添加Access WiFi Information权限

解决方法

问题根源在于归档命令中的CODE_SIGNING_ALLOWED=NO参数——这个参数会跳过代码签名流程,导致授权文件里的Access WiFi Information权限无法被正确嵌入到最终应用包中,而Xcode归档时会自动完成签名和权限嵌入,所以功能正常。

修改步骤:

  1. 移除归档命令中的CODE_SIGNING_ALLOWED=NO参数,确保签名流程正常执行,让授权文件的权限生效。
  2. 若需指定企业签名身份,可在归档命令中补充签名参数,示例:
    xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme archive -configuration MyConfig -sdk iphoneos -archivePath MyArchivePath CODE_SIGNING_IDENTITY="你的企业签名身份" PROVISIONING_PROFILE_SPECIFIER="你的描述文件名称"
    
  3. 确认exportOptionsPlist文件配置正确:将signingStyle设为manual,并指定对应的signingCertificate和provisioningProfiles字段。

修改后重新归档导出,测试WiFi SSID获取功能即可恢复正常。


内容的提问来源于stack exchange,提问作者nithindev.n

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:15:31