讲讲 Xcode 中丢失的 info.plist 文件

这里每天分享一个 iOS 的新知识,快来关注我吧

前言

做 iOS 开发的同学应该对 info.plist 文件都不陌生,其中包含了大量关于项目配置的选项。但是从 Xcode 13 开始,新项目中已经不包含 info.plist 文件了。

这个在 Xcode 13 的发行说明中也有提到:

Projects created from several templates no longer require configuration files such as entitlements and Info.plist files. Configure common fields in the target's Info tab, and build settings in the project editor.

我试了一下,如果创建的是 SwiftUI 项目,新项目的目录中已经完全不包含 这个文件了:

如果创建的是 storyboard UIKit 项目,info.plist 还在,只不过其中只有 Application Scene Manifest 字段。

更改 info.plist

虽然创建工程的时候不自带 info.plist 文件了,但是我们仍然可以像以前一样更改这个文件:

按照顺序导航到 Project → Targets → Info → Custom iOS Target Properties,可以看到这个文件的预览页面:

然后就可以在这里对 info.plist 文件进行更改了,其中有一点很奇怪的是,在这里的修改有的会同步到 info.plist 文件中,有的则不会,这个还没弄清楚原因,不过大家以后如果有修改这个文件的需求最好是通过 Targets 下的 info 栏修改。

恢复 info.plist 文件?

某些情况下(比如自动化脚本)会读取 info.plist 文件,如果没有这个文件的话就会比较麻烦,那么有没有可能恢复这个文件呢?下边有个办法可以尝试一下。

1、创建一个新的 info.plist 文件

这里假设你的新项目是 swiftUI 项目,如果是 storyboard UIKit 项目就不用再创建新的了。按快捷键 Command + N 创建一个新的 Property List 文件,并命名为 Info.plist

2、把 Target info 下的属性全部复制到新的 Info.plist 文件中

没有找到能够全选的方法,只能一个一个复制粘贴了。

3、设置路径

选中新的 info.plist 文件,右侧可以看到这个文件的路径,复制它。

然后来到 Project → Targets → Build Settings → Info.plist File,把刚刚复制的路径粘贴进去:

4、其他设置

除了上边的设置之外,还需要把 Generate Info.plist File 选项设置为 No:

然后来到 Build Phases 下的 Copy Bundle Resources 中,把 Info.plist 删除掉。

最后尝试编译一下,上边的步骤不出错的话会成功编译,然后可以通过新建的 Info.plist 文件修改一些属性,运行项目看看改动是否生效。至此,老的 Info.plist 文件又回来了。

这里每天分享一个 iOS 的新知识,快来关注我吧

本文同步自微信公众号 "iOS新知",每天准时分享一个新知识,这里只是同步,想要及时学到就来关注我吧!

相关推荐
SameX3 小时前
iOS 独立开发者转鸿蒙:我把足迹地图 App 迁移到 ArkTS 的全过程
ios
东坡肘子5 小时前
举手之劳 -- 肘子的 Swift 周报 #151
人工智能·swiftui·swift
sakiko_18 小时前
Swift学习笔记42-SwiftUI的属性包装器(讲解+面试)
笔记·学习·ios·swiftui·swift
Patrick_Wilson1 天前
iOS Safari 按钮点击无响应问题修复指南
前端·ios·safari
随遇丿而安1 天前
第 3 周:UIButton 点了没反应,因为它默认就没有按压态
ios
思盛iOS签名上架2 天前
App苹果签名有什么作用?
macos·ios·cocoa
CocoaKier2 天前
Facebook广告后台收不到Adjust回传数据,我们排查了一个月终于找到了根因
ios·facebook
weixin_531670893 天前
Interlude起来:动作动画和文字通知哪个更适合休息提醒?Mac上有没有用桌宠做动作引导的软件?
人工智能·macos·mac·swift
明月_清风3 天前
🖥️ Electron 三进程 Host 实战:从架构设计到生产落地的完整指南
前端·electron·客户端
FairGuard手游加固3 天前
iOS 游戏加固技术解析:代码混淆、资源加密、内存保护与重签名检测
安全·游戏·macos·unity·ios·objective-c