I'm trying to submit a Java-based app to AppStore. After having the worst headaches in my life trying to sign everything my last problem (I hope!) is this:

Invalid code signature - Signatures created with OS X version 10.8.5 or earlier [v1 signatures] are obsoleted and will no longer be recognized by Gatekeeper beginning with OS X version 10.9.5. To ensure your apps will run on updated versions of OS X they must be signed on OS X version 10.9 or later [v2 signatures]. For more information, see OS X Code Signing In Depth

I don't understand this message because:

1) I'm running a 10.10.1 version

$ sw_vers -productVersion 

2) and my app is signed with version 2 signatures

$ codesign -dv MyApp.app
Format=bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=286 flags=0x0(none) hashes=5+5 location=embedded
Signature size=4351
Signed Time=20/2/2015 16:31:42
Info.plist entries=20
Sealed Resources version=2 rules=12 files=15
Internal requirements count=1 size=204

(You can see the line saying Sealed Resources version=2 rules=12 files=15)

So, what is the problem ? What am I missing ?

Thank you

I found it ... I know this answer seems crazy, but it's the solution.

When you bundle the app, the folder YourApp.app/Contents/PlugIns/jdk1.{your_version}.jdk/Contents/ dissapears, so you have just to recover it from the JDK home, and the bundle "will looks fine" to Apple.


cp -r /Library/Java/JavaVirtualMachines/jdk1.{your_version}/Contents/MacOS YourApp.app/Contents/PlugIns/jdk{your_version}.jdk/Contents/

And it's working !

Thank you Apple for a message so clear :-P

  • I would think the real way of making sure that the directory is copied is to make sure it is included in a Copy ... build phase – markhunte Feb 20 '15 at 18:22

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.