目前,无法提交.app/文件夹进行公证,必须首先打包。另一方面,一张票在公证成功后不能钉在.zip上。苹果文档
这将创建一个流程如下:
.app/.zip进行公证.zip.app/上.app/以供分发我们的具体用例是,我们的应用程序最初将由用户从.dmg安装,而随后的更新则通过.zip下载。公证.dmg非常简单。拉链内容是另一个故事。
有比上述步骤更有效的方法吗?
发布于 2020-07-13 21:49:37
不丹你能行的。您的用例与我的相似,我就是这样做的。在我的例子中,我发布了一个.pkg,它包括一个应用程序、一个卸载程序、几个内核扩展,但是对于一个应用程序来说,这个概念是一样的。顺便说一句,就像你的dmg一样,我正在分发pkg以供下载,但随后压缩该pkg以进行Sparkle更新。
这个过程看起来很奇怪,直到你把zip文件看作是打包和提交应用程序包的一种方式。您希望对应用程序进行公证,并将结果公证钉在应用程序包上。你这样做:
为了更方便:如果您在makefile中这样做,那么make可以在装订之前自动等待公证。我这样做:
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的末尾:
@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`https://stackoverflow.com/questions/60608887
复制相似问题