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

时间:2015-02-08 15:03:48

标签: ios xcode code-signing provisioning-profile xcodebuild

我正在尝试使用命令行导出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

它确实导出了.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/archived-expanded-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

谢谢

1 个答案:

答案 0 :(得分:10)

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

-PROVISIONING_PROFILE= xxxxxxx-8a61-4264-8fe9-0513bd7935e6 
-CODE_SIGN_IDENTITY=iPhone Developer:xxxxx

正确的是:

-exportProvisioningProfile "Provisioning profile full name "

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

xcodebuild -exportArchive -archivePath myArchive.xcarchive -exportPath myApp.ipa -exportFormat ipa -exportProvisioningProfile "Provisioning profile full name"

注意:

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