1

我整天都在努力建立一个自动化系统来构建我的 Android 应用程序,如果有人可以帮助我或为我指明正确的方向,我将不胜感激。我编写了一个 shell 脚本,它从 Git 获取最新版本,构建它并将 APK 发送到 Testflight。当我自己运行这个脚本时,它可以正常工作,但是当我设置一个 cronjob 以在指定的时间间隔运行它时,我遇到了以下错误:

构建文件:build.xml 不存在!

#!/bin/sh

API_TOKEN=""
TEAM_TOKEN=""
NOTES=$(<Release.txt)
APP_NAME="MainActivity-release.apk"

#Reset git
echo resetting
git reset --hard

echo pull latest
git pull

echo configure for build
android update project -p .

echo build api
ant release

/usr/bin/curl "http://testflightapp.com/api/builds.json " -F file=@"bin/$APP_NAME" -F api_token="$API_TOKEN" -F team_token="$TEAM_TOKEN" -F notes="$NOTES" -#

我已将此 shell 脚本文件移动到我的主目录并使用

cd ~/Documents/workspace/AutomatedAndroidApp更改目录,然后手动尝试脚本并且它有效。但是,在使用 cronjob 运行它时,我又遇到了同样的错误。

我还尝试使用设置 ant 文件路径

ant -file ~/Documents/workspace/AutomatedAndroidapp/build.xml

但没有运气。在今天之前,我从来没有使用过 ant 来构建我的应用程序,因为我一直在 Eclipse 中使用这些工具,所以我有点迷茫,任何帮助都将不胜感激!

4

1 回答 1

1

正如@ben75 所建议的那样,这似乎是 cronjob 用户与您用来手动执行它的用户帐户不同的问题。因此~将解析到错误用户的主目录。请改用完整/绝对路径,并使用-file开关将其传递给 ant。

于 2013-10-04T14:11:01.563 回答