ios - 关于 iOS 代码签名策略 - 当我们在没有代码签名的情况下归档项目并稍后使用配置文件将其导出时会发生什么?
问题描述
根据签名的顺序(我无法通过搜索找到答案),我对代码签名策略有一些疑问。
那是,
- 当我们在 ARCHIVE 上不提供任何代码签名身份和配置文件,然后在导出步骤中提供它们时会发生什么?例如,
xcodebuild archive \
-project <ProjectName>.xcodeproj \
-sdk iphoneos \
-scheme <SchemeName>
-configuration Release \
CODE_SIGN_IDENTITY="" \#disable code sign
CODE_SIGNING_REQUIRED=NO \#disable code sign
CODE_SIGNING_ALLOWED=NO \#disable code sign
以上是没有代码符号的存档代码。下面,为了导出,我使用exportOptions.plist
.
xcodebuild -exportArchive -archivePath <ProjectName>.xcarchive -exportOptionsPlist <ProjectName>/exportOptions.plist -exportPath <ProjectName>.ipa
如果我使用带有分发选项的配置文件,这可用于应用商店分发吗?
- 在归档项目时,这些正确的选项是否可以提供配置文件的详细信息?(我搜索了很多例子,但答案略有不同)。
xcodebuild archive \
-project <ProjectName>.xcodeproj \
-sdk iphoneos \
-scheme <SchemeName> \
-configuration Release \
CODE_SIGN_IDENTITY="****...D21C78" \
PROVISIONING_PROFILE="********-****-..."
上面的代码不断出错:<ProjectName> requires a provisioning profile. Select a provisioning profile in the Signing & Capabilities editor
,即使我正在使用 CLI。
如果有任何问题的解决方案,请指导我。任何可以参考的文件/纸张或其他材料也可以。
解决方案
(自我回答我的问题)
所以,对于第一个问题,我做了很多实验,发现空签名的存档可以导出,但不能部署到设备上。
要正确部署 ipa(exported) 文件,应使用 codesign 命令对归档文件进行签名。
为此,它们应该包含权利和共同设计身份。
codesign -s {IDENTITY} --entitlements {PATH_TO_ENTITLEMENTS_FILE} ... {PROJECT_PATH}/~~~/{NAME}.app
对于第二个问题,我找不到答案,但可以使用诸如 empty-signing-archive -> codesign -> export 之类的策略。
推荐阅读
- node.js - s3 presigned url POST 说错误的存储桶名称
- angular - 单击父组件时的角度显示子组件
- java - 在 gradle 和 Java13 中运行时 Liquibase XmlElement 错误异常
- java - Angular 和 Spring 启动 - POST 请求成为 OPTIONS
- swift - NSTableView:直接编辑文本字段而不突出显示整行
- java - Eclipse .log 文件列出错误
- swift - 从另一个类 Swift 访问变量
- database - 在cassandra中获取我的布尔字段为空的所有行
- html - 如何创建 3 个包含每个包含图像和一些文本的框?
- jquery - 在单击 a href 之前显示 jquery ui / bootstrap 对话框