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?
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é.
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.
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:
Edit: Assurez-vous également de coder tous les frameworks que vous compilez vous-même. Chaque cadre doit être signé séparément.