无法在导致 CFBundleIdentifier 冲突的 JRE 中编辑嵌入的 info.plist
Posted
技术标签:
【中文标题】无法在导致 CFBundleIdentifier 冲突的 JRE 中编辑嵌入的 info.plist【英文标题】:Cannot edit embedded info.plist within JRE that's causing CFBundleIdentifier Collision 【发布时间】:2016-10-16 01:59:32 【问题描述】:我正在尝试将应用上传到 mac 应用商店并继续获取
CFBundleIdentifier Collision - The Info.plist CFBundleIdentifier value 'net.java.openjdk.cmd' of 'java' is already in use by another application.
CFBundleIdentifier Collision - The Info.plist CFBundleIdentifier value 'net.java.openjdk.cmd' of 'pack200' is already in use by another application.
我在我的应用程序中嵌入了一个 JRE,这两个文件需要唯一的包标识符。
如果 java/pack200 中的 Info.plist 嵌入在可执行文件中,我该如何更改它?使用文本编辑器更改它只会损坏文件。
【问题讨论】:
【参考方案1】:我想通了。
我做错的是用文本编辑器编辑 java/pack200。我最终使用了一个十六进制编辑器,并在打包之前将“net.java.openjdk.cmd”的包标识符值编辑为一个唯一的包标识符。
新捆绑包标识符的字符长度必须与旧捆绑包标识符相同,否则将无法用于协同设计。
【讨论】:
@J W 你用的是哪个十六进制编辑器?我正在尝试使用 vim 编辑 java 和 keytool 可执行文件。但是,一旦我这样做,可执行文件就不再起作用了。例如,我尝试将 net.java.openjdk.cmd 更改为 net.java.openjdk.cm1 并得到 ❯ java --version [1] 35665 kill java --version 另外,您使用什么 java 版本来嵌入mac应用程序?感谢您的帮助。以上是关于无法在导致 CFBundleIdentifier 冲突的 JRE 中编辑嵌入的 info.plist的主要内容,如果未能解决你的问题,请参考以下文章
带有 Apple Watch 的 Cordova 应用程序无法在 Apple Store 上上传(有多个包含 CFBundleIdentifier 冲突的捆绑包)
Xcode 7 错误:无法从 Info.plist 中读取 CFBundleIdentifier(空)
Weex 解决Print: Entry, ":CFBundleIdentifier", Does Not Exist 错误方法
在提供的路径中找不到应用程序包...“:CFBundleIdentifier”,不存在