关于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(导出)文件,应该使用codesign命令对存档文件进行签名。

要做到这一点,它们应该包含权利和共同设计身份。

codesign -s {IDENTITY} --entitlements {PATH_TO_ENTITLEMENTS_FILE} ... {PROJECT_PATH}/~~~/{NAME}.app

对于第二个问题,我找不到答案,但使用了empty-signing-archive ->合作设计→可以选择导出。

相关内容

最新更新