14

问题:如何使用 Deliver 将 IPA 从在 Xcode 7 和 Server 4.1 上运行的 Bot 上传到 itunesconnect?

我已经能够使用 Xcode 6.4、使用机器人的 Server 4.1 和Deliver(通过 fastlane)建立一个持续集成解决方案。升级到 Xcode 7 beta-3 后,我的机器人停止工作。

以下是我为 Xcode 6.4 所做的简要概述:

  1. 在机器人设置中选择“执行存档操作”
  2. 从后触发器:echo gem install --user-install deliver#Run To Install Gem
  3. 从后触发器:echo export PATH=$PATH:/var/_xcsbuildd/.gem/ruby/2.0.0/bin#Run 将宝石添加到路径
  4. 从后触发器:

    echo `DELIVER_PASSWORD="Password"
    /var/_xcsbuildd/.gem/ruby/2.0.0/bin/deliver testflight 
    "${IPA_PATH}" -a 101233338 -u example@gmail.com --beta`
    

一切都很好,每次集成后都会将构建上传到 itunesconnect。

当我升级到 Xcode 7 时,我不再能够使用 Deliver 上传到 itunesconnect。这是我的 Xcode 7 工作流程:

  1. 测试通过
  2. 存档成功
  3. 触发后 1:成功构建 IPA(使用此苹果开发人员帖子的推荐)

     xcrun xcodebuild -exportArchive -archivePath 
     $XCS_ARCHIVE -exportPath $XCS_ARCHIVE
     -exportOptionsPlist /Library/Developer/XcodeServer/ExportOptions.plist 
     -IDEPostProgressNotifications=YES 
     -DVTAllowServerCertificates=YES 
     -DVTSigningCertificateSourceLogLevel=3 
     -DVTSigningCertificateManagerLogLevel=3 
     -DTDKProvisioningProfileExtraSearchPaths=/Library/Developer/XcodeServer/ProvisioningProfiles
    
  4. 尝试使用 Deliver 上传 IPA:

    echo `DELIVER_PASSWORD="Password"
    /var/_xcsbuildd/.gem/ruby/2.0.0/bin/deliver testflight 
    "${IPA_PATH}" -a 101233338 -u example@gmail.com --beta`
    

结果: 构建服务问题:终止 xcodebuild,因为它太长时间没有产生输出。 在此处输入图像描述 注意:我可以获取机器人生成的 IPA 并通过终端上传它们。

更新

Xcode 没有打印出所有日志,当我将输出重定向到一个文件时,看起来 Deliver 运行得很好

ESC[37m[12:03:08]: ESC[0mESC[32mReady to upload new build to TestFlight (CiTest - 1018099468)ESC[0m
ESC[37m[12:03:08]: ESC[0mUploading ipa file to iTunesConnect
ESC[37m[12:03:08]: ESC[0mGoing to upload updated app to iTunesConnect
ESC[37m[12:03:08]: ESC[0mESC[32mThis might take a few minutes, please don't interrupt the scriptESC[0m
ESC[37m[12:03:08]: ESC[0mESC[32mWaiting for iTunes Connect transporter to be finished.ESC[0m
ESC[37m[12:03:08]: ESC[0mESC[32miTunes Transporter progress... this might take a few minutes...ESC[0m

只是 xcode 服务器在交付完成之前转义了该过程。

追问:有没有其他人遇到过这个或类似的问题?

4

1 回答 1

1

我从苹果开发者论坛找到了这个帖子: https ://forums.developer.apple.com/thread/9812

万一打不开。有人说

Xcode bot 触发脚本似乎有 10 秒的超时时间——这对于做任何有用的工作来说太短了。我可以通过添加一个“集成前”触发器来复制它,该触发器只包含对“睡眠 10”的调用。当集成运行时,它会失败并显示错误“终止 xcodebuild,因为它太长时间没有产生输出”。

可能的临时解决方案可能是

确保在运行较长时间的任务时产生一些输出?不是修复,但可能是一种解决方法。

人们回复了

我已经这样做了,错误不再发生。我使用的是 bash 脚本,需要不时回显输出以解决此问题。

希望这暂时会有所帮助。

于 2015-10-15T07:57:58.037 回答