Crontab shellscript xcodebuild没有创建.app或.ipa文件

时间:2014-04-27 19:11:14

标签: shell crontab xcodebuild ipa

我有一个运行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

1 个答案:

答案 0 :(得分:0)

当在登录的shell中执行的脚本与通过cron之间存在差异时,它几乎总是环境。你知道通过cron运行时$PWD的价值是多少?看起来您嵌入的配置文件使用的是相对路径,但可能找不到。

我会尝试将所有路径设置为绝对路径,这样您就可以准确了解在cron中运行时的环境。

此外,您没有显示实际的错误消息。那显然会有所帮助。如果您没有重定向到文件,cron会将它们邮寄给crontab的所有者。