我有一个运行shell脚本的crontab,用于自动构建ios应用程序。 从命令行运行shell脚本编译并构建.ipa没有问题。但是当crontab运行shell脚本时,应用程序会被编译,但不能完全使用.app或.ipa文件完成。为什么不以同样的方式运行?
CONFIGURATION="Adhoc"
OUTPUT_DIR="$PWD/Build/Products/Adhoc-iphoneos"
HOCKEY_TOKEN="token"
DEVELOPER_NAME="name"
########
#
# Cleanup
#
if [ -f "$OUTPUT_DIR/AppName-App.app.dSYM.zip" ]; then
rm -f "$OUTPUT_DIR/AppName-App.app.dSYM.zip"
fi
########
#
# Build The App
#
xcodebuild \
-workspace "AppName.xcworkspace" \
-scheme "AppName-App" \
-configuration "$CONFIGURATION" \
ONLY_ACTIVE_ARCH=NO clean build
########
#
# Code Sign
#
xcrun \
-sdk iphoneos PackageApplication \
-v "$OUTPUT_DIR/AppName-App.app" \
-o "$OUTPUT_DIR/AppName-App.ipa" \
--sign "$DEVELOPER_NAME"\
--embed AppName/BuildResources/AppName.mobileprovision
########
#
# Zip the dSYM
#
zip -r "$OUTPUT_DIR/AppName-App.app.dSYM.zip" "$OUTPUT_DIR/AppName-App.app.dSYM"
########
#
# Upload to HockeyApp
#
curl \
-F "status=2" \
-F "notify=0" \
-F "notes=automated build" \
-F "notes_type=1" \
-F "ipa=@$OUTPUT_DIR/AppName-App.ipa" \
-F "dsym=@$OUTPUT_DIR/AppName-App.app.dSYM.zip" \
-H "X-HockeyAppToken: $HOCKEY_TOKEN" \
https://rink.hockeyapp.net/api/2/apps/upload
答案 0 :(得分:0)
当在登录的shell中执行的脚本与通过cron之间存在差异时,它几乎总是环境。你知道通过cron运行时$PWD
的价值是多少?看起来您嵌入的配置文件使用的是相对路径,但可能找不到。
我会尝试将所有路径设置为绝对路径,这样您就可以准确了解在cron中运行时的环境。
此外,您没有显示实际的错误消息。那显然会有所帮助。如果您没有重定向到文件,cron会将它们邮寄给crontab的所有者。