移动开发

包名校验按平台检查每一段

输入项目中的完整标识符,选择 Android 或 iOS,再查看逐段诊断。

包名校验

应用标识符

校验报告

输入标识符后可查看逐段报告。

标识符只在当前浏览器中校验,页面不会联系应用商店。

输入标识符后可查看逐段报告。

准备发布新版本时,包名校验能帮你发现一个多余的点或漏掉的字母。请复制工程中实际配置的标识符;页面不会悄悄修正大小写或删字符。

Android 包名允许下划线,iOS Bundle ID 允许连字符,两者不能套用同一套规则。这里把应用标识符的语法结论和反向域名格式建议分开显示。

为什么用包名校验?

相似的标识符,在两个平台上可能得到相反结论。

定位具体出错的段

包名校验按点拆开每一段,指出空段、数字开头或非法字符所在的位置。原始输入保持不变,方便你回到 Gradle 或 Xcode 精确修改。

三个由点分隔的标识符片段中,第二段被标出存在格式问题。

切换平台,保留原值

同一字符串里的连字符在 iOS 可用,在 Android 不可用;下划线则相反。切换平台就重新校验,不会把输入自动清洗成另一个应用身份。

两块手机面板对比 iOS 可用的连字符和 Android 可用的下划线。

发布前要核对的三个细节

01

使用将要打包的值

Android 请看应用模块的 applicationId,不要直接把代码 namespace 当成发布 ID。iOS 请看 Target 里的 Bundle Identifier,通配符 App ID 不是具体应用的标识符。

02

先选对应平台

默认按 Android 规则校验。检查 iOS 时切换平台,同一连字符会从错误变为允许,而下划线会从允许变为错误;输入不会丢失。

03

等报告更新再复制

自动校验会在停止输入约 350 毫秒后运行。关闭开关后可点“校验标识符”或按 Ctrl/Cmd+Enter;参数变化期间,旧报告的复制按钮不可用。

把格式结论拆解到每一段

Android 的三条语法规则

至少两段;每段以英文字母开头;段内只允许英文字母、数字和下划线。大写不会被当作非法字符,也不会被悄悄改成小写。

iOS 的字符检查

iOS Bundle ID 允许英文字母、数字和连字符,以点分段。下划线和通配符星号会被标错;只有一段时,反向域名格式作为建议显示。

可复制的单值报告

结果列出段数与逐段问题,便于发到 issue。即使反向域名格式通过,也不能由此推断域名归属或商店注册状态。

格式通过之后还要确认什么

不查商店占用
本地通过只表示字符和分段规则通过。页面不知道该 ID 是否已被 Apple 或 Google 注册,也不验证账号是否有权限使用。
不读取工程和签名
这里只接收一条字符串,不上传 APK、IPA,也不解析 Info.plist 或 Gradle。证书、Team ID、签名与实际构建产物仍需在工程和开发者后台核对。
不接受通配符 App ID
com.company.* 是 Apple 注册中的通配模式,不是一个具体 iOS App 的 Bundle ID。星号不属于这里检查的 Bundle ID 字符集。
建议不等于硬规则
小写是命名习惯;Android 官方允许大写和下划线。第三方平台自己的长度限制或保留词政策不会被冒充为统一语法规则。
不自动改写或批量处理
本工具只检查一个既有标识符。自动删除字符或改变大小写可能改掉应用身份;上线后变更 ID 往往意味着新应用。

包名校验常见问题

公测版和正式版应该使用相同的 App ID 或 Bundle ID 吗?

如果公测和正式版属于同一个商店应用,后续更新应保持该应用的标识符。需要并行安装两个不同应用时通常会用不同 ID;本页只能检查各自格式。

打包时包名不能使用下划线吗?

Android applicationId 的段内可以使用下划线,但每段仍须以字母开头。iOS Bundle ID 不允许下划线;有些打包服务还会施加自己的额外规则。

以前 iOS 包名能填下划线,现在无法打包,为什么?

Apple 公布的 Bundle ID 字符集没有下划线。请核对 Target 里实际的 Bundle Identifier,以及所用打包服务的规则;本页会在 iOS 模式把下划线标为错误。

填写后还能修改包名或签名吗?

在发布前应核对项目和开发者后台。已发布应用的标识符关系到更新身份,签名又是另一项要求;格式检查不会执行这些修改。

iOS 应用需要签名吗?

需要按 Apple 的构建和分发流程配置签名。本页只检查 Bundle ID 字符串,无法从一段文本判断证书、描述文件或签名是否匹配。

有哪条平台规则需要补充?

发布前再做一次包名校验

用包名校验核对即将发布的原值,再到 Xcode、Gradle 与对应开发者账号确认实际配置和注册情况。