在bash脚本中为我的应用创建一个zip

时间:2013-11-26 21:30:57

标签: xcode bash zip continuous-integration build-automation

我正在尝试将Xcode 5机器人用于我的Continuos集成。我需要创建我的app文件的zip文件。

在Archive下的我的方案中,我使用这个脚本:

LATESTBUILD=$(ls -1rt /Library/Server/Xcode/Data/BotRuns | tail -1)
APP="/Library/Server/Xcode/Data/BotRuns/${LATESTBUILD}/output/Archive.xcarchive/Products/Applications/${PRODUCT_NAME}.app"

echo "Zipping .app for ${PRODUCT_NAME}"
/usr/bin/zip -r "${APP}.zip" "${APP}"

echo "Sending to *HockeyApp*"
curl \
-F "status=2" \
-F "notify=0" \
-F "notes=Testing CI" \
-F "notes_type=0" \
-F "ipa=${APP}.zip" \
-H "X-HockeyAppToken: myToken \
https://rink.hockeyapp.net/api/2/apps/myAppID/app_versions/upload

这将创建一个.zip文件。但是,不是实际的应用程序,而是$ {app}的整个文件夹结构。

如何创建仅包含实际应用的zip文件?

2 个答案:

答案 0 :(得分:0)

要使用curl指定文件参数,必须在文件名前加上@。正确的是:

echo "Sending to *HockeyApp*"
curl \
-F "status=2" \
-F "notify=0" \
-F "notes=Testing CI" \
-F "notes_type=0" \
-F "ipa=@${APP}.zip" \
-H "X-HockeyAppToken: myToken \
https://rink.hockeyapp.net/api/2/apps/myAppID/app_versions/upload

答案 1 :(得分:0)

通过在压缩之前插入目录来解决此问题。

cd "/tmp/Archive.xcarchive/Products/Applications/"