首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对包含.zip的.app进行公证和钉钉的最有效方法是什么?

对包含.zip的.app进行公证和钉钉的最有效方法是什么?
EN

Stack Overflow用户
提问于 2020-03-09 21:56:37
回答 1查看 608关注 0票数 1

目前,无法提交.app/文件夹进行公证,必须首先打包。另一方面,一张票在公证成功后不能钉在.zip上。苹果文档

这将创建一个流程如下:

  1. 构建应用程序
  2. 压缩.app/
  3. 提交.zip进行公证
  4. 解压缩.zip
  5. 把票钉在.app/
  6. 重新压缩.app/以供分发

我们的具体用例是,我们的应用程序最初将由用户从.dmg安装,而随后的更新则通过.zip下载。公证.dmg非常简单。拉链内容是另一个故事。

有比上述步骤更有效的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-13 21:49:37

不丹你能行的。您的用例与我的相似,我就是这样做的。在我的例子中,我发布了一个.pkg,它包括一个应用程序、一个卸载程序、几个内核扩展,但是对于一个应用程序来说,这个概念是一样的。顺便说一句,就像你的dmg一样,我正在分发pkg以供下载,但随后压缩该pkg以进行Sparkle更新。

这个过程看起来很奇怪,直到你把zip文件看作是打包和提交应用程序包的一种方式。您希望对应用程序进行公证,并将结果公证钉在应用程序包上。你这样做:

  • 通过提交应用程序包的压缩包来公证应用程序。
  • 当公证成功完成后,将结果钉在app包上。
  • 为分发包打包应用程序包(在您的情况下,将其添加到dmg中)。
  • 公证dmg,并将其钉在dmg上。

为了更方便:如果您在makefile中这样做,那么make可以在装订之前自动等待公证。我这样做:

代码语言:javascript
复制
notarizationRequestID=$(shell xcrun altool --notarize-app \
                                   --primary-bundle-id com.mycompany.appID \
                                   --username $(DEV_USERNAME)
                                   --password $(DEV_PASSWORD)
                                   --asc-provider $(DEV_PROVIDER) \
                                   --file myApp.app.zip \
              | awk '/RequestUUID/ { print $$NF; }') ;\

while ! xcrun altool --notarization-info $$notarizationRequestID \
                     --username $(DEV_USERNAME)
                     --password $(DEV_PASSWORD)
                     --asc-provider $(DEV_PROVIDER) \
                     --output-format xml \
              | grep -q 'https://osxapps-ssl.itunes.apple.com/itunes-assets' ;\
    do sleep 5 ;\
    echo "." ;\
done ;\

如果您正在通过Sparkle发布更新,您还需要收集应用程序转换元数据,以便将其粘贴到应用程序cast.xml中。在makefile的末尾:

代码语言:javascript
复制
@echo "——————————————————————————————————"
@echo "  Results for Sparkle Update XML  "
@echo "——————————————————————————————————"
@echo
@echo "version:           " `defaults read myApp.app/Contents/Info CFBundleVersion`
@echo "shortVersionString:" `defaults read myApp.app/Contents/Info CFBundleShortVersionString`
@echo "dsaSignature:      " `$MyAppSource/Libraries/Sparkle/bin/sign_update myAppInstaller.pkg.zip $MyAppSource/Resources/UpdateSigningKeys/dsa_priv.pem`
@echo "length:            " `stat -f%z "myApp.pkg`
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60608887

复制
相关文章

相似问题

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