xcodebuild如何用命令行签署应用程序?

ala*_*not 5 xcode code-signing xcodebuild ios provisioning-profile

我正在尝试使用命令行导出ipa,我不能用xCode做这个,因为应用程序是为客户端制作的,我不是他的团队成员(我真的希望苹果改变它并使其像xCode5一样工作:/)

无论如何,我做了更多研究并尝试了这个命令:

xcodebuild -exportArchive -archivePath pcdev.xcarchive -exportPath ~/Desktop/playcadeAdHoc.ipa -exportFormat ipa -PROVISIONING_PROFILE= xxxxxxx-8a61-4264-8fe9-0513bd7935e6 -CODE_SIGN_IDENTITY=iPhone Developer:xxxxx
Run Code Online (Sandbox Code Playgroud)

它确实导出了.ipa但是我无法在我的手机上运行它,堆叠在安装状态,我查看了命令的日志,我认为这是导致问题:

检查原始应用

  • / usr/bin/codesign --verify -vvvv /var/folders/ks/gxlbsszj7t58y5n6z8d1hpcm0000gn/T/7F8E1EF2-5238-4EC6-AE74-CDEC6C082A76-2731-00000AE5DF0617E4/games.app程序/ usr/bin/codesign返回1:[ /var/folders/ks/gxlbsszj7t58y5n6z8d1hpcm0000gn/T/7F8E1EF2-5238-4EC6-AE74-CDEC6C082A76-2731-00000AE5DF0617E4/games.app:缺少密封资源或缺少无效文件:/ private/var/folders/ks/gxlbsszj7t58y5n6z8d1hpcm0000gn/T/7F8E1EF2-5238-4EC6-AE74-CDEC6C082A76-2731-00000AE5DF0617E4/games.app/archived-expanded-entitlements.xcent]

协同设置检查失败:/var/folders/ks/gxlbsszj7t58y5n6z8d1hpcm0000gn/T/7F8E1EF2-5238-4EC6-AE74-CDEC6C082A76-2731-00000AE5DF0617E4/games.app:缺少密封资源或缺少无效文件:/ private/var/folders/KS/gxlbsszj7t58y5n6z8d1hpcm0000gn/T/7F8E1EF2-5238-4EC6-AE74-CDEC6C082A76-2731-00000AE5DF0617E4/games.app /存档膨胀-entitlements.xcent

我确信使用正确的配置和代码签名名称,同样在xcode中我将方案归档设置更改为调试而不是发布,以便使用adhoc和开发标识.

我使用Apple工具的经验非常有限,请尽量解释解决方案.

编辑: 我也试过这种方法它没有给我任何错误,但仍然应用程序堆叠在"安装...":

xcrun -sdk iphoneos PackageApplication ~/Desktop/finalX.xcarchive/Products/Applications/games.app -o ~/Desktop/playcadetest.ipa --sign "iPhone Developer: Name Name (xxxxxxxx)" --embed ~/Desktop/p/adhoc.mobileprovision
Run Code Online (Sandbox Code Playgroud)

谢谢

ala*_*not 10

事实证明我使用的是错误的命令,具体来说这部分是错误的:

-PROVISIONING_PROFILE= xxxxxxx-8a61-4264-8fe9-0513bd7935e6 
-CODE_SIGN_IDENTITY=iPhone Developer:xxxxx
Run Code Online (Sandbox Code Playgroud)

正确的是这个:

-exportProvisioningProfile "Provisioning profile full name "
Run Code Online (Sandbox Code Playgroud)

供应配置文件全名与xCode中出现的名称相同,而不是UDID(我不知道为什么很多人建议),也没有必要指定签名标识.无论如何,这是它现在为我工作的完整命令行:

xcodebuild -exportArchive -archivePath myArchive.xcarchive -exportPath myApp.ipa -exportFormat ipa -exportProvisioningProfile "Provisioning profile full name"
Run Code Online (Sandbox Code Playgroud)

注意:

  • 在文件夹(桌面)中复制存档后运行此命令,然后将终端位置更改为该文件夹(cd dekstop),然后运行命令
  • 另外,不要忘记根据归档构建配置(发布或调试)更改配置文件,您可以将其从方案设置更改为进行调试或发布版本.

  • `PROVISIONING_PROFILE` 和 `CODE_SIGN_IDENTITY` 是构建设置,而不是命令选项,这意味着它们不以“--”开头。如果您出于某种原因打包 .app 进行上传,而不是使用“xcodebuild archive / -exportArchive”(例如,如果您想避免完全重建),则使用这些设置非常有用 (2认同)