我有一些关于代码签名策略的问题,根据签名的顺序(我无法通过搜索得到答案)
,
- 当我们没有在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(导出)文件,应该使用codesign命令对存档文件进行签名。
要做到这一点,它们应该包含权利和共同设计身份。
codesign -s {IDENTITY} --entitlements {PATH_TO_ENTITLEMENTS_FILE} ... {PROJECT_PATH}/~~~/{NAME}.app
对于第二个问题,我找不到答案,但使用了empty-signing-archive ->合作设计→可以选择导出。