- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 MAC 应用程序开发新手,正在开发使用 Zoom Mac SDK 的项目,但该 SDK 不支持使用 Xcode 存档,因此我需要使用 Zoom 支持中心建议的其他工具进行存档。根据他们的回复,应用程序可以使用 pkgbuild/pkgutil/productbuild 进行存档,但我不知道为我的 Mac 应用程序创建 archive/pkg/dmg 文件的确切步骤。
另请让我知道我需要创建哪个文件扩展名以便用户从网站下载我的应用程序。
我正在使用“开发人员 ID 应用程序”和“开发人员 ID 安装程序”证书来签署我的构建,但不知道如何在不使用 Xcode 的情况下创建构建,因为使用 Xcode,我收到第三方框架的错误,因为“代码对象是根本没有签名”。
感谢您的大力帮助。
最佳答案
首先,您需要 pkgbuild 和 Productbuild,才能做一些富有成效的事情。
您可以在此处指定根文件夹、标识符、版本、安装位置、标牌和安装后脚本。
例如:
pkgbuild --root "${ROOTFOLDER}" \
--identifier "${IDENTIFIER}" \
--version ${VERSION} \
--install-location "/" \
--sign "${IDENTITY}" \
--scripts '${SCRIPT}' \
"${PKGNAME}.pkg"
在 ${ROOTFOLDER} 中,您可以控制文件/文件夹,就像在本地计算机上的“/”之后一样。例如,如果您想将“xy.app”放入/Applications,您可以在${ROOTFOLDER}内创建一个“Applications”文件夹并将xy.app放入其中。当您安装该软件包时,在计算机上的“/Applications”文件夹中,将会有 xy.app。您还可以将文件复制到/Library 或其他位置,只需在指定的根文件夹中创建文件夹即可。
当您想要安装任何 .pkg/.dmg 或 .sdk 时,您可以创建一个在 --scripts ${SCRIPTSFOLDER} 下指定的脚本文件夹,并在其中创建一个“安装后”文件。
安装后文件将包含将与您的软件包一起执行的内容,例如安装另一个 .pkg 或 .sdk,它们将位于您的 ${ROOTFOLDER} 内。
例如,将多个 .pkg' 文件放入 ${ROOTFOLDER}/Packages 中。在您的根文件夹中,将创建/Packages 文件夹。意味着,在安装后您可以说:
sudo installer -pkg /Packages/anotherPackageOrApp.pkg target /
完成此操作后,您将获得一个简单的包。然而,您真正想要的不仅仅是这个。
使用productbuild,您可以创建一个分发文件:它包含产品存档的所有配置,包括产品许可证、产品自述文件、组件包列表、约束(例如最低操作系统版本)。
继续执行以下操作:
productbuild --synthesize --package "${PKGNAME}.pkg" distribution.dist
现在您已经从包中取出了 distribution.dist,您可以根据需要对其进行编辑。将其重新构建在一起:
productbuild --distribution distribution.dist --scripts "${SCRIPTS}" --sign "${IDENTITY}" --package-path "${PKGNAME}.pkg" --resources . --version ${VERSION} "${PKGNAME}_New.pkg"
现在您已获得最终签名的包。包含可以通过安装后文件安装的 .sdk、.pkg 和 .dmg 的位置,或者只是复制到要安装 pkg 的计算机上的目录。
问候
关于macos - 使用 Productbuild 对 mac 应用程序进行签名和存档,无需使用 xcode 在 Mac App Store 之外分发应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48077574/
我得到了这个printHashKey函数,它运行良好。 fun printHashKey() { try { val info : PackageInfo = packageM
如何使用正确的签名 key 为我的 Android 应用包签名? 最佳答案 我尝试在此处和 this question 中使用多个答案, 但不知何故我收到了这个错误,因为我的 android/app/
我的 gradle 文件中有这个: android { signingConfigs { mySigningConfig { keyAlias 'the
请至少选择一个签名版本以在 Android Studio 2.3 中使用 现在在 Android Studio 中生成一个签名的 APK 时,它显示了两个选项(复选框),即 1. V1(Jar 签名)
我想表示一些标量值(例如整数或字符串)通过它的实际值或一些 NA 值,然后存储它们在集合中(例如列表)。目的是处理缺失值。 为此,我实现了一个签名 module type Scalar = sig
为什么这不完全有效? sum :: (Num a, Num b) => a -> b -> c sum a b = a + b 当然,错误消息与签名有关,但我仍然不明白原因。 Couldn't mat
谢谢帮助,我的问题是关于从下面的代码中收到的 ax 值? mov al,22h mov cl,0fdh imul cl 真机结果:ff9a 我的预期:00:9a(通过二进制相乘) 第一个数字是 22h
我有一个注释: import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.
我从对物体的思考中得出了一个术语。当我们扩展一个类时,扩展类将具有与父类相同的签名,因此术语 IS-A 来自...示例 class Foo{ } class Foo2 extends Foo{ } c
我需要在有符号整数和它们作为字节序列的内部表示之间进行转换。在 C 中,我使用的函数如下: unsigned char hibyte(unsigned short i) {return i>>8;}
我正在尝试使用给定的 RSA 参数对一些数据进行签名。 我给出了模数、指数、D、DP、DQ、P、Q 和 InverseQ。什么库或方法最容易使用来计算此签名。在 C# 中,一旦您提供参数,它们就会有一
这些签名之间有什么区别? T * f(T & identifier); T & f(T & identifier); T f(T & identifier); void f(T * identifie
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Where and why do I have to put the “template” and “typ
我有一个签名,我需要在签名旁边添加图片。但我不确定 css 的确切程度和内容。目前它显示在文字下方,我应该把图片放在哪里?在相同的 tr 或 td 中?
查看 LinkedHashMap 的 JDK 源代码,我注意到这个类被声明为: public class LinkedHashMap extends HashMap im
背景:我继承了一个基于 linux 的嵌入式系统,其中包含一个 SMTP 代理和一些我不得不忍受的古怪限制。它位于 SMTP 客户端和服务器之间。当 SMTP 客户端连接时,代理会打开与服务器的连接,
这是 C++17 形式的规则 ([basic.lval]/8),但它在其他标准中看起来很相似(在 C++98 中是“lvalue”而不是“glvalue”): 8 If a program attem
我有一个注释: import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.
我即将开展一个项目,希望使用电子签名板使用 C# 捕获客户的签名、在设备上显示文本等。 现在,在我开始做进一步的研究之前,我想向你们征求一些意见/建议,我应该使用哪些设备.. 我现在的要求非常笼统:我
呢喃自己在心中开始扩张地盘,仿佛制式地广播了三次。 漾起的涟绮,用谈不上精腻的手段。 拒绝天亮,却又贪恋着贪恋多情的日光。 川流不息的画面是他们,而我的落幕停在右脚,它渴望着下台,而我只剩自言
我是一名优秀的程序员,十分优秀!