Как сделать подпись кода с помощью инструмента appdmg? - PullRequest
0 голосов
/ 22 марта 2019

Как упоминалось здесь https://github.com/LinusU/node-appdmg для создания dmg.

Я не получил ни одного примера для добавления "code-sign".

Кто-нибудь использовал это для создания dmg, кто может помочь мне узнать, что предоставить в этих двух заполнителях?Второе, необязательное, все же я хочу знать.

{
  "title": "My App",
  "icon": "app.icns",
  "icon-size": 108,
  "background": "Resources/SplashScreen/dmg-background.png",
  "contents": [
    { "x": 450, "y": 150, "type": "link", "path": "/Applications" },
    { "x": 150, "y": 150, "type": "file", "path": "/My App.app" }
  ],
  "code-sign": [
     { "signing-identity" : ""},
     { "identifier" : ""}   
  ]
}

1 Ответ

0 голосов
/ 23 марта 2019

Ну, я никогда не использовал node-appdmg, но документация гласит:

кодовый знак (объект, необязательно) - опции для кодирования DMG идентификатор подписи (строка обязательна) - идентификатор, которым нужно подписать получившийся DMG * ​​1005 *

идентификатор (строка, необязательно) - явно указывается строка уникального идентификатора, которая встроена в сигнатуры кода

Вы можете перечислить идентификаторы подписи кода с помощью этой команды:

security find-identity -v -p codesigning

1) 4E8D512C8480FAC679947D6E50190AE9BAB3E825 "3rd Party Mac Developer Application: Developer Name (DUCNFCN445)"
2) 8B0EBBAE7E7230BB6AF5D69CA09B769663BC844D "Mac Developer: Developer Name (DUCNFCN445)"
3) 4E8D512C8480AAC67995D69CA09B769663BC844D "iPhone Developer: App Developer (DUCNFCN445)"
4) 65E24CDAF5B3E1E1480818CA4656210871214337 "Developer ID Application: App Developer (DUCNFCN445)"
   4 valid identities found

Таким образом, вы можете указать идентичность следующим образом:

{ "signing-identity" : "Developer ID Application: App Developer (DUCNFCN445)"},

Для «идентификатора» вы можете обратиться к техническому примечанию . Там написано:

Идентификатор подписи также встроен в DR и по умолчанию будет использовать CFBundleIdentifier, найденный в Info.plist для удобства, если он не указан явно. Идентификатор не имеет значения в том, что касается подписи кода, кроме как как средство сделать DR уникальными.

У вашего .dmg не будет идентификатора пакета. В моем случае, кажется, по умолчанию это имя .dmg (поэтому мой .dmg myproduct.dmg, а мой идентификатор по умолчанию выглядит как myproduct).

После подписания вы можете просмотреть подпись следующим образом:

codesign -dv /path/to/myproduct.dmg

И вы увидите идентификатор:

Исполняемые = / путь / к / myproduct.dmg

Идентификатор = MyProduct

Формат = образ диска

... и т. Д.

...