2

I have a Java application that bundles with Oracle Java 1.8.0_65. When trying to validate it using Application Loader I get the error "ITMS-90511 CFBundleIdentifier Collision. The Info.plist CFBundleIdentifier value 'com.oracle.java.8u65.jdk' of .... is already in use by another application."

The application is already published in the Apple store and I am just trying to update it with a new version. Has anything changed to the signing procedure?

Tiberiu
  • 508
  • 7
  • 17

2 Answers2

0

It seems that Apple changed its verification algorithm or something like that. Apple demands that bundle-ids of all components of an application are "globally unique" (when submitting to the App Store).

Thus the problem was solved by changing the CFBundleIdentifier from "com.oracle.java.8u65.jdk" to something unique like "com.oracle.java.8u65.jdk.xxx" where "xxx" is something unique like the main app bundle id.

Tiberiu
  • 508
  • 7
  • 17
  • 1
    Please add more information with regards to how you solved the problem, you are stating the solution but not the steps how to get there. I am incurring the exact same problem but when I try to resign the executable it becomes unusable. I have tried signing it different entitlements and even tried just changing the identifier using codesign -i but to no avail – Jaco-Ben Vosloo Jul 22 '16 at 11:41
  • Just edit the Info.plist file from the JDK directory and change the value of CFBundleIdentifier from "com.oracle.java.8u65.jdk" to something unique for you. After that also update your scripts to sign using the same identifier. – Tiberiu Jul 25 '16 at 10:21
  • Thank you but it is not working, and now I even get more errors. It seems the info.plist from the jdk directory contains non applicable entitlements`Your application bundle's signature contains code signing entitlements that are not supported on Mac OS X; this may happen if your Mac OS X project was ported from iOS. Please check your Xcode project's code signing entitlements configuration, and remove any unneeded entitlements. Specifically, key "CFBundleIdentifier" in....` I tried using my own info.plist with only sandbox and CFbundleIdentifier but to no avail. – Jaco-Ben Vosloo Jul 25 '16 at 12:30
  • The CFBundleIdentifier is inside the java binary, take a look with a hex editor. It cannot be changed without invalidating the code signature. – kerner1000 Jul 14 '22 at 08:33
  • Anybody solved this? – kerner1000 Jul 14 '22 at 08:33
0

For me it was an info.plist reference to 'Copy Bundle Resources' in Build Phases.

Once I removed it, submitting process completed without any error.

Ahmadreza
  • 6,950
  • 5
  • 50
  • 69