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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .