我一整天都在努力想要建立一个自动化系统来构建我的Android应用程序,如果有人可以帮助我或指出我正确的方向,我会很感激。我有一个shell脚本,它从Git中获取最新版本,构建它并将APK发送到Testflight。当我自己运行它时,此脚本正常工作,但是当我设置一个cronjob以指定的时间间隔运行它时,我遇到以下错误:
Buildfile: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 -file路径ant -file ~/Documents/workspace/AutomatedAndroidapp/build.xml
但没有运气。我从来没有使用过ant来构建我的应用程序,因为我总是使用Eclipse中的工具,所以我有点迷失了,任何帮助都会受到赞赏!
答案 0 :(得分:1)
正如@ ben75所建议的那样,这似乎是cronjob用户与您手动执行的用户帐户不同的问题。因此~
将解析为错误用户的主目录。使用完整/绝对路径,并使用-file
开关将其传递给ant。