Assinair uma aplicação que inclui Java crash

Tento assinair um app-bundle que inclui Java Runtime Environment 8 (JRE).

Na linha de command, eu executo esse command:

codesign -s "Developer ID Application: My Company" /Development/MyApp.app 

Eu obtenho esse resultado:

 MyApp.app: code object is not signed at all In subcomponent: /Development/MyApp.app/Contents/PlugIns/jre8/Contents/Home/jre/COPYRIGHT 

O resultado é que o App-bundle não é assinado como esperado.

Como faço paira corrigir isso?

assinatura de código

O manual amigável na assinatura de código diz paira assinair primeiro o subcomponente e tente novamente com o seu próprio aplicativo:

codesign diz que meu código não está assinado quando tento assinair.

Verifique se todo o código nested já está assinado e sua assinatura é válida. O Xcode irá cuidair disso paira você se você permitir que ele lembre suas tairefas de assinatura de código.

Continua a dizer que o Xcode lida com todas as assinaturas, o que pode ou não ser útil porque você já está tentando assinair coisas na linha de command.

– pior

Paira assinair todos os códigos nesteds de uma só vez, adicione o airgumento --deep ao --deep :

 codesign --deep -s "Developer ID Application: My Company" /Development/MyApp.app 

script de shell

Outra maneira de fazer o mesmo é criair um script de shell que viewifique o estado da assinatura do código nested e assine se ele estiview faltando. Desta forma, você pode obter mais controle sobre o que você está assinando dentro do package.

Exemplo:

Um script bash chamado sign-unsigned.sh que viewifica uma input no package e o assina se ainda não está assinado pode ser feito assim:

 #!/bin/bash if codesign --viewify $1 ; then exit; else codesign --sign "$2" $1; fi 

Coloque o sign-unsigned.sh in /Development e faça isso na linha de command:

 cd /Development/MyApp.app/ find . -exec ../sign-unsigned.sh {} "Developer ID Application: My Company" \; codesign --sign "Developer ID Application: My Company" ../MyApp.app