首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >公证.zip文件

公证.zip文件
EN

Stack Overflow用户
提问于 2021-05-11 13:21:26
回答 1查看 163关注 0票数 0

我正在尝试编写一个脚本来公证一个应用程序,以便在Mac应用程序商店之外分发。我(在过去)成功地公证了一个.dmg,但是由于某种原因,我遇到了一个.zip文件的麻烦。我在日志文件中收到的公证错误是没有代码签名。

下面是我的公证代码:

代码语言:javascript
复制
cd app && zip MyZip.zip Test.app
cd -

xcrun altool --notarize-app \
   --file "app/Myzip.zip" \
   --username "abcabcabc" \
   --password "abcabcabc" \
   --asc-provider "abcabcabc" \
   --primary-bundle-id "a.b.c.com"

当我检查验证Test.app上的代码签名时,它似乎没有问题:

代码语言:javascript
复制
codesign -vvv --deep --strict app/Test.app
app/Test.app: valid on disk
app/Test.app: satisfies its Designated Requirement

在.zip文件上运行同样的命令--不出所料,返回一个错误:

代码语言:javascript
复制
codesign -vvv --deep --strict app/MyZip.zip
app/MyZip.zip: code object is not signed at all

这是正确的,因为我没有在压缩文件上签名。然而,当我阅读别人的经验时,他们似乎在谈论上传用于公证的.zip文件,就好像没有问题一样(例如,这里的步骤2和3:What is the most efficient way to notarize and staple a .zip containing a .app?)。自2019年以来是否有什么变化--我现在是否需要手动使用codesign工具来使用与应用程序签名相同的身份对我的压缩文件进行签名?我甚至按照苹果在文档(https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow)中的要求尝试了以下内容:

代码语言:javascript
复制
/usr/bin/ditto -c -k --keepParent "app/Test.app" "app/MyZip.zip"

但是运行codesign -vvv --deep --strict app/MyZip.zip仍然会返回code object is not signed at all

我需要自定义代码签名吗?或者有没有一种方法可以压缩它,但以某种方式保留codesign签名?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-05-11 19:11:58

这对我来说是有效的(刚刚测试过):

代码语言:javascript
复制
codesign --force \ 
   --timestamp \
   --options runtime \ 
   --sign "Developer ID Application: <USER> (<TEAMID>)" project1.app

zip -r test.zip project1.app

xcrun altool --notarize-app \
   --primary-bundle-id "com.company.project1" \
   -u "<EMAIL>" \
   -p "<PWD>" \ 
   -t osx \
   -f test.zip

至于自2019年以来的变化:2019年9月3日,苹果宣布,在2020年1月之前,开发人员可以对新版本的应用程序进行公证,即使它们没有经过强化或完全符合正常要求。最后期限后来被延长到2020年2月3日。在此之后,您需要满足所有前提条件:

为应用程序和命令行目标的增强运行时功能启用distribute.

  • Enable所有可执行文件的代码签名。

  • 为您的代码使用“开发人员ID”应用程序、内核扩展或安装程序证书-使用代码签名任务的安全时间戳签名包括com.apple.security.get- signature.

  • Include -允许将值设置为true的权利。针对macOS 10.9或更高版本的

  • 链接。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67480956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档