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

Xcode中解压bundle资源zip包后出现目录层级异常问题求助

问题根因

你替换zip资源包时的打包逻辑发生了变化:旧版本zip是选中decrypted_backup_with_groups目录内部的所有文件直接压缩,新版本zip是直接对decrypted_backup_with_groups整个上层文件夹执行压缩操作,导致zip包根目录自带一层同名目录,解压后自然多出了嵌套层级。你可以直接在本地解压当前使用的zip包验证该结构。


解决方案1(推荐,无需修改代码)

重新打包zip:打开decrypted_backup_with_groups文件夹,选中内部所有文件(包含contacts.json等所有资源)后再执行压缩操作,不要直接右键压缩上层的decrypted_backup_with_groups文件夹,将新的zip包替换回Xcode项目即可恢复原有路径逻辑。


解决方案2(适配现有zip包,修改代码)

如果不需要调整zip包,可以在解压后增加目录层级判断,自动适配嵌套结构:

let zippedFiles = try Zip.quickUnzipFile(path)
var baseDir = zippedFiles
// 检查解压根目录是否仅存在一个子目录,自动下沉一层路径
let dirContents = try FileManager.default.contentsOfDirectory(at: baseDir, includingPropertiesForKeys: nil, options: .skipsHiddenFiles)
if dirContents.count == 1, let subDir = dirContents.first, subDir.hasDirectoryPath {
    baseDir = subDir
}
// 直接用URL拼接路径,避免字符串拼接的格式错误
let contactsFileUrl = baseDir.appendingPathComponent("contacts.json")
let contactsData = try Data(contentsOf: contactsFileUrl)
let backupContacts = try JSONDecoder().decode(ContactsBackupDTO.self, from: contactsData)

内容的提问来源于stack exchange,提问作者Andoni Da Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:27:02