返回资讯中心
外部精选
软件工程
#开发者实时流

Info.plist检查工具上线:上传App Store前预检被拒问题

来源标题:Show HN: Info.plist checker – catch App Store upload rejections before uploading

一款名为Info.plist checker的工具可在上传App Store Connect前检查iOS或Mac应用的Info.plist,列出会导致上传或审核被拒的问题、格式错误及值得注意的事项,每条提示均附苹果规则页面链接。该工具支持XML和二进制plist,能区分项目文件与构建产物,并识别平台、SDK及是否为扩展。开发者称其仅检查单个文件,无法验证图标、bundle ID注册或签名,结果干净不代表一定通过。

Hacker News 最新Peter2162026/11/2 · 今天18 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

在上传到 App Store Connect 之前检查 iOS 或 Mac 应用的 Info.plist。它能读取 XML 和二进制格式的 plist,区分项目中的 Info.plist 与构建产物中的 Info.plist,并列出上传或 App Review 会拒绝的内容、格式错误的内容,以及值得注意的内容。每条消息都会链接到规则来源的 Apple 页面。

检查器首先判断自己面对的是什么:是构建后的 Info.plist(包含 Xcode 添加的 DT… 系列键),还是项目文件(其中 $(VARIABLES) 是正常的);平台是 iOS 还是 macOS(从文件或 --platform 参数判断);应用是用哪个 SDK 构建的;以及它是否是 app extension(对 extension 会跳过仅适用于 app 的检查)。

错误(上传会被拒绝,或文件格式有误)

警告(提交前需修复或检查)

完整的问题代码列表位于 src/info-plist-checker.mjs 中的 ISSUE_CODES,每条规则对应的 Apple 页面在 SOURCES 以及该文件顶部的注释中。

它只能看到单个文件。它无法判断 bundle 中的图标、storyboard 或 entitlements 是否匹配,无法判断 bundle ID 是否已在你的账号中注册,也无法判断任何与签名相关的问题。检查通过只是其中一步,并不构成保证。

运行一次,无需安装

npx github:peterzhang0216/info-plist-checker path/to/Info.plist

或将其添加到项目中

npm i -D github:peterzhang0216/info-plist-checker npx info-plist-check path/to/Info.plist

文件位置:在构建后的 iOS app 中,它是 YourApp.app/Info.plist;在 Mac app 中,它是 YourApp.app/Contents/Info.plist。对于 .ipa 文件,解压后在 Payload/YourApp.app/Info.plist 中查找。

info-plist-check <Info.plist | -> [--platform ios|mac] [--lang en|zh] [--json]

选项

从 stdin 读取 plist

--platform ios|mac 按指定平台运行检查,而不是使用从文件中读取的平台

--lang en|zh 消息使用英文(默认)或简体中文

--json 输出机器可读的格式

退出码:0 表示没有错误(警告和提示不会导致失败),1 表示至少有一个错误或不是有效的 plist,2 表示用法问题或文件无法读取。

示例输出,针对一个有几处错误的构建后 iOS app(test/fixtures/broken-ios-built.plist):

$ info-plist-check Notebook.app/Info.plist Notebook.app/Info.plist 读取为:构建后的 app,iOS / iPadOS,使用 SDK 27 构建(xml plist) 将被拒绝或格式有误(6)

使用 --json 时: "file": "Notebook.app/Info.plist

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →