Последняя версия MacOS 10.15.4 утверждает, что подпись кода недействительна для клиента - PullRequest
1 голос
/ 28 марта 2020

Хорошо, поэтому я использую кодовую подпись и (подтвержденное) нотариальное заверение для своего настольного приложения macOS.

Я также проверяю свои собственные загрузки на macOS 10.15.3, загружая и выполняя. (Если, например, я забыл написать код, то не смогу запустить свои исполняемые файлы)

Но теперь у меня есть клиент, использующий macOS 10.15.4, и он прислал снимок экрана со следующей ошибкой:

Тип исключения: EXC_Crach (недопустимая подпись Куда)

Коды исключений: 0x0000000000000000, 0x0000000000000000

Примечание об исключении: EXC_CORPSE_NOTIFY

КОД СОБЫТИЯ 03 *1013* ИМЯ КОДА СОТВ. *

Вот соответствующие части того, как я подписываю

  codesign --force --options runtime --timestamp --entitlements "/Volumes/DiskW/projects-cool/myapp/osx/shrents/casc-dlv.plist" --sign "Example" "/Volumes/DiskW/projects-cool/myapp/osx/finaldist/myapp.app"

  codesign --display --entitlements :- "/Volumes/DiskW/projects-cool/myapp/osx/finaldist/myapp.app"

  /usr/bin/xcrun altool --notarize-app --primary-bundle-id "com.example.myapp" -u "info@example.com" -p "xxx" -t osx -f "/Volumes/DiskW/projects-cool/myapp/osx/finaldist/myapp.zip"

  /usr/bin/xcrun altool --notarization-info yyyy -u "info@example.com" -p "xxx"

  /usr/bin/xcrun stapler staple -v "/Volumes/DiskW/projects-cool/myapp/osx/finaldist/myapp.app"

Содержимое cas c -dlv.plist:

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.security.cs.disable-library-validation</key>
    <true/>
</dict>
</plist>

Содержимое Info.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>
    <key>CFBundleExecutable</key>
    <string>MyApp</string>
    <key>CFBundleName</key>
    <string>MA</string>
    <key>LSApplicationCategoryType</key>
    <string></string>
    <key>CFBundleIdentifier</key>
    <string>com.example.MyApp</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleSignature</key>
    <string>a1wse</string>
    <key>CFBundleShortVersionString</key>
    <string>10.1.4</string>
    <key>CFBundleVersion</key>
    <string>10.1.4</string>
    <key>CFBundleIconFile</key>
    <string>MyApp.icns</string>
    <key>CSResourcesFileMapped</key>
    <true/>
    <key>NSRequiresAquaSystemAppearance</key>
    <true/>             
    <key>NSAppTransportSecurity</key>
    <dict>
      <key>NSAllowsArbitraryLoads</key>
      <true/>       
    </dict>
    <key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Viewer</string>
            <key>CFBundleTypeExtensions</key>
            <array>
                <string>*</string>
            </array>
            <key>CFBundleTypeOSTypes</key>
            <array>
                <string>fold</string>
                <string>disk</string>
                <string>****</string>
            </array>
        </dict>
    </array>
    <key>NSHighResolutionCapable</key>
    <true/>
    <key>LSMinimumSystemVersion</key>
    <string>10.8</string>       
</dict>
</plist>

Проверка моей "цепочки для ключей" в macOS У меня есть:

  • "Приложение разработчика ID: Пример (xyz)"

(больше ничего релевантность)

...

Глядя на: https://developer.apple.com/account/resources/profiles/list

У меня есть только просроченные профили, которые я использовал много лет go для разработки приложения

1 Ответ

0 голосов
/ 05 апреля 2020

Удаление полномочий / cas c -dlv.plist, кажется, решает проблему.

Это ответ, так как он решает проблему, но я не буду отмечать этот ответ как правильный, поскольку во многих случаях простой сброс прав не всегда возможен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...