2013-03-19 53 views
12

我发现Testflight支持通过API调用http://testflightapp.com/api/builds.format上传应用程序。它接受应用程序包,dsyms,应用程序信息和其他信息。应用程序归档中是否有任何自动Testflight上传脚本?

所以我的问题是下一个:是否有任何自动脚本的Xcode将上传构建到Testflight“归档”操作后?请分享链接。

解决方案是这里(的Mac OS X 10.8):

1)按照this manual和安装后执行脚本

2)拆下换上一条规则 “回声” 的字符串:

#!/bin/bash 
# 
# (Above line comes out when placing in Xcode scheme) 
# 

API_TOKEN="<YOUR-TESTFLIGHT-API-TOKEN>" 
TEAM_TOKEN="<YOUR-TESTFLIGHT-TEAM-TOKEN>" 
SIGNING_IDENTITY="iPhone Developer" 
PROVISIONING_PROFILE="${HOME}/Library/MobileDevice/Provisioning Profiles/<YOUR-PROFILE-NAME>.mobileprovision" 
LOG="/tmp/testflight.log" 
GROWL="/usr/bin/terminal-notifier -title Xcode -message" 

DATE=$(/bin/date +"%Y-%m-%d") 
ARCHIVE=$(/bin/ls -t "${HOME}/Library/Developer/Xcode/Archives/${DATE}" | /usr/bin/grep xcarchive | /usr/bin/sed -n 1p) 
DSYM="${HOME}/Library/Developer/Xcode/Archives/${DATE}/${ARCHIVE}/dSYMs/${PRODUCT_NAME}.app.dSYM" 
APP="${HOME}/Library/Developer/Xcode/Archives/${DATE}/${ARCHIVE}/Products/Applications/${PRODUCT_NAME}.app" 

#/usr/bin/open -a /Applications/Utilities/Console.app $LOG 

#echo -n "Creating .ipa for ${PRODUCT_NAME}... " > $LOG 
${GROWL} "Creating .ipa for ${PRODUCT_NAME}" 

/bin/rm "/tmp/${PRODUCT_NAME}.ipa" 
/usr/bin/xcrun -sdk iphoneos PackageApplication -v "${APP}" -o "/tmp/${PRODUCT_NAME}.ipa" --sign "${SIGNING_IDENTITY}" --embed "${PROVISIONING_PROFILE}" 

#echo "done." >> $LOG 
${GROWL} "Created .ipa for ${PRODUCT_NAME}" 

#echo -n "Zipping .dSYM for ${PRODUCT_NAME}..." >> $LOG 
${GROWL} "Zipping .dSYM for ${PRODUCT_NAME}" 

/bin/rm "/tmp/${PRODUCT_NAME}.dSYM.zip" 
/usr/bin/zip -r "/tmp/${PRODUCT_NAME}.dSYM.zip" "${DSYM}" 

#echo "done." >> $LOG 
${GROWL} "Created .dSYM for ${PRODUCT_NAME}" 

#echo -n "Uploading to TestFlight... " >> $LOG 
${GROWL} "Uploading to TestFlight" 

/usr/bin/curl "http://testflightapp.com/api/builds.json" \ 
-F [email protected]"/tmp/${PRODUCT_NAME}.ipa" \ 
-F [email protected]"/tmp/${PRODUCT_NAME}.dSYM.zip" \ 
-F api_token="${API_TOKEN}" \ 
-F team_token="${TEAM_TOKEN}" \ 
-F notes="Build uploaded automatically from Xcode." 

#echo "done." >> $LOG 
${GROWL} "Uploaded to TestFlight" 
/usr/bin/open "https://testflightapp.com/dashboard/builds/" 

3)在查找器中显示供给配置文件:转到Organazier/Devices/Provision配置文件,然后右键单击您的配置文件,然后单击“在查找器中显示”。复制配置文件名称,并粘贴到PROVISIONING_PROFILE变量,而不是<YOUR-PROFILE-NAME>

4)打开终端,并安装terminal-notifier

sudo gem install terminal-notifier

5)你准备好:)

+0

似乎没有为我上传。尽管我确实收到最终通知,但已上传到Testflight,但没有任何内容已经上传。通知“Uploaded”似乎可以快速上传15Mb,这让我怀疑上传失败了,没有任何警告。有小费吗?谢谢 – Bach 2013-07-10 01:31:50

+0

检查提供配置文件和SIGNING_IDENTITY是正确的。该文件是否出现在/ tmp中? – 2013-07-10 11:41:24

回答

1
+1

这里几乎没有通知:1)显示PROVISIONING_PROFILE转到Organazier/Devices/Provision配置文件,然后在您的配置文件上点鼠标右键,然后单击“在finder中显示”; 2)你可以使用“iPhone Developer”作为SIGNING_IDENTITY; 3)而不是GROWL使用终端通知器。 – 2013-03-19 10:47:26

2

这里有一个很好的收集实用程序http://nomad-cli.com/

我最终使用了Shenzen来自动化构建和testflight部署。

+0

现在深圳对我来说已经不行了。似乎没有太多积极的发展。 – Alper 2013-08-13 12:03:51

3

我也创造了这样的红宝石的宝石,如果你想这个融入耙任务:在my github here

+0

谢谢@Miles +1 – 2014-02-05 05:19:56

0

深圳

gem install testflight_upload

源中断,您可以使用pilot代替。这是一个基于Ruby的工具,可以上传新版本并管理您的测试版测试人员。在引擎盖下它使用iTunes Transporter和spaceship

相关问题