web-dev-qa-db-fra.com

Blocage de l'application Mac OS X avec une erreur de signature de code non valide

J'écris une application pour OS X et lorsque j'archive l'application et l'exporte en tant qu'application et j'essaye de l'ouvrir, elle se bloque avec une erreur de signature de code non valide.

J'ai créé Mac App Distribution, Mac Installer Distribution, Developer ID Application, Developer ID Installer Certificates et Distribution Provisiong Profile. L'application est en bac à sable et je l'ai testée sur Mavericks.

Exception Type:  EXC_CRASH (Code Signature Invalid)
Exception Codes: 0x0000000000000000, 0x0000000000000000

VM Regions Near 0x7fff71ce90a8 (cr2):
    __LINKEDIT             00007fff67043000-00007fff67057000 [   80K] r--/rwx SM=COW  /usr/lib/dyld
--> Submap                 00007fff70000000-00007fff80000000 [256.0M] r--/rwx SM=PRV   process-only VM submap
unused shlib __DATA    00007fff708d3000-00007fff730dc000 [ 40.0M] rw-/rw- SM=COW  system shared lib __DATA not used by this process

Thread 0 Crashed:
0   dyld                            0x00007fff66fd1028 _dyld_start + 0

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x000000000000000d  rbx: 0x0000000000000000  rcx: 0x0000000000000000  rdx: 0x0000000000000000
  rdi: 0x0000000000000000  rsi: 0x0000000000000000  rbp: 0x0000000000000000  rsp: 0x00007fff5eda9d30
  r8: 0x0000000000000000   r9: 0x0000000000000000  r10: 0x0000000000000000  r11: 0x0000000000000000
  r12: 0x0000000000000000  r13: 0x0000000000000000  r14: 0x0000000000000000  r15: 0x0000000000000000
  rip: 0x00007fff66fd1028  rfl: 0x0000000000000201  cr2: 0x00007fff71ce90a8

Logical CPU:     0
Error Code:      0x020000f4
Trap Number:     133


Binary Images:
0x7fff66fd0000 -     0x7fff67003817  dyld (???) <D1DFCF3F-0B0C-332A-BCC0-87A851B570FF> /usr/lib/dyld

External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 47204
thread_create: 0
thread_set_state: 1299

Il y a un problème avec le profil d'approvisionnement de distribution. Lorsque je ne définis aucun profil de provisionnement d'équipe mac ou pour la publication, cela fonctionne. J'utilise iCloud et l'achat intégré.

Le problème a commencé lorsque j'ai activé iCloud ou l'achat intégré. Si je les désactive, alors tout fonctionne. Si j'active l'un d'entre eux, mon profil d'approvisionnement est défini sur aucun et cela fonctionne, mais lorsque je le change en mon profil de distribution, alors arrête de fonctionner.

Quelqu'un peut-il me dire ce qui ne va pas?

22
Bartosz Bialecki

Vous pouvez ne pas avoir de problème du tout. Lire: Q&R technique QA1884 testant les versions de distribution d'applications Mac

Selon cela, vous n'êtes pas censé pouvoir créer vous-même des packages d'installation. Vous devez faire un paquet et le vérifier via le terminal, mais cela ne fonctionnera pas.

Au fait, il y a une erreur dans ce rapport technique. Vous devrez peut-être inclure le chemin d'accès à l'application dans le programme d'installation de Sudo -store -pkg Sample.pkg -target/il devrait être: Sudo installer -store -pkg /user/yourname/desktop/Sample.pkg -target

cet exemple suppose que votre installer.pkg est sur le bureau

Si vous obtenez tous les laissez-passer, vous êtes bon.

Cela m'a rendu fou aussi car la dernière application que j'ai téléchargée en juin, le paquet vient d'être installé sans problème et l'application qu'il a installée a fonctionné.

2
David Curran

J'ai eu ce problème mais heureusement, j'avais deux applications - une qui fonctionnait et une qui ne fonctionnait pas. Finalement, ce seul changement l'a corrigé pour moi:

MAUVAIS:

Provisioning Profile: MacTeam Provisioning Profile: <the app's bundle id>

BIEN:

Provisioning Profile: Automatic

Je suppose que le profil n'est pas valide lors de l'envoi de l'application directement aux gens. Automatique fonctionne bien pour l'envoi à des personnes et pour l'envoi vers l'App Store.

1
Kalle

Construisez-vous cela comme une version bêta qui ne peut fonctionner que sur certains appareils? J'ai rencontré cette erreur exacte lorsque j'ai obtenu un nouveau Mac et j'ai oublié d'installer mes certificats de testeur bêta.

J'ai également eu des problèmes lors de la configuration de mes profils. Quand j'ai trouvé la configuration qui fonctionnait, j'ai créé cette capture d'écran, pour ne pas l'oublier. Peut-être que cela aide:

Screenshot of developer profiles

Edit: Assurez-vous également de coder tous les frameworks que vous compilez vous-même. Chaque cadre doit être signé séparément.

1