2 votes

Apple dit que je signe une application avec une ancienne version du système d'exploitation, et ce n'est pas le cas

Je essaie de soumettre une application Java à l'AppStore. Après avoir eu les pires maux de tête de ma vie en essayant de tout signer, mon dernier problème (j'espère!) est le suivant :

Signature de code non valide - Les signatures créées avec la version 10.8.5 ou antérieure d'OS X [signatures v1] sont obsolètes et ne seront plus reconnues par Gatekeeper à partir de la version 10.9.5 d'OS X. Pour assurer que vos applications fonctionneront sur les versions mises à jour d'OS X, elles doivent être signées sur OS X version 10.9 ou ultérieure [signatures v2]. Pour plus d'informations, voir Signature de code OS X en profondeur

Je ne comprends pas ce message car :

1) J'utilise la version 10.10.1

$ sw_vers -productVersion 
10.10.1

2) et mon application est signée avec des signatures de version 2

$ codesign -dv MyApp.app
Executable=/Users/jess/git/MyApp.app/Contents/MacOS/JavaAppLauncher
Identifier=com.myapp
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
TeamIdentifier=D38HW9S49C
Sealed Resources version=2 rules=12 files=15
Internal requirements count=1 size=204

(Vous pouvez voir la ligne disant Sealed Resources version=2 rules=12 files=15)

Alors, quel est le problème ? Que me manque-t-il ?

Merci

1voto

FlamingMoe Points 173

J'ai trouvé ça ... Je sais que cette réponse semble folle, mais c'est la solution.

Lorsque vous regroupez l'application, le dossier YourApp.app/Contents/PlugIns/jdk1.{your_version}.jdk/Contents/ disparaît, vous devez donc simplement le récupérer à partir du JDK, et le bundle "aura l'air bien" pour Apple.

Donc:

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

Et ça marche !

Merci Apple pour un message si clair :-P

0 votes

Je pense que la meilleure façon de s'assurer que le répertoire est copié est de s'assurer qu'il est inclus dans une phase de construction de type Copy ...

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X