How can I schedule updates for iPhone and iPad apps?

Sonny March 4, 2011
Pinterest Stumbleupon Whatsapp

I need to update large iPhone and iPad apps at a time that will not put me into violation of my ISP’s fair access policy. Is there a way to choose (or automate) a specific time for downloads to begin?

  1. Sonny
    March 8, 2011 at 4:49 pm

    Works beautifully. I did have to turn on all alarms in iCal preferences. I usually have alarms off and it took a few minutes for me to remember that.

    Thanks very much Mike and MakeUseOf.com

    • Mike
      March 8, 2011 at 9:17 pm

      No problem, I'm glad you figured it out and are happy with this solution.

  2. Tina
    March 7, 2011 at 7:12 pm

    Sonny,

    does Mike's solution work for you? Please let us know. Thank you!

    • Sonny
      March 7, 2011 at 7:23 pm

      I have not master "scripts" yet so I'm not sure. Some thoughts I've had. One, I don't have to use sign in with a password when updating apps now so that should not be a problem with automating the download and since my Calendar is shared with two other iMacs on the same network would that be an issue with using iCal as a core part of the solution.

      I need to find a simple how to for Mac scripts.

      • Tina
        March 7, 2011 at 7:25 pm

        Thanks for the feedback, Sonny! Maybe you should ask a new question regarding 'how tos' for Mac scripts.

      • Mike
        March 7, 2011 at 10:35 pm

        I don't know how you share the Calender (Google, BusySync, Exchange ..) but pretty much all solutions allow you to create a local private Calender which is not shared to other people. So this shouldn't be a problem.

        As for the automation there is not much to it (step by step):

        1. create an iCal Event which open iTunes
        (http://cl.ly/153C0c3N2Q2C0u1M2h14)

        2. open the AppleScript-Editor
        /Applications/Utilities/AppleScript Editor.app

        3. create a script that quits iTunes (http://cl.ly/3g2B001W2x0M2F2p461U)

        4. save the script using File > Save as... e.g. in your Documents folder

        5. create an iCal event which runs the script you just saved (http://cl.ly/331v0u2I1R3N2k3W0435)

        In my example iTunes would be started at ~8:15pm (actually 1 minute before) and will be closed at ~6:15.

        All you have to do then is start the downloads of the large Apps, quit iTunes and let iCal do it's magic...

        • Sonny
          March 7, 2011 at 11:02 pm

          I am trying to get around manually starting app downloads which must occur in the wee hours of the morning (after midnight) to comply with ISP fair access policy. I don't quite understand how your solution will do that. For instance I want to schedule an app update for 12:10 a.m. when I'm fast asleep. Am I missing something?

        • Sonny
          March 7, 2011 at 11:10 pm

          Mike, I think the light just went on. I will give this a try tomorrow. Thanks.

        • Mike
          March 8, 2011 at 5:43 pm

          Fine, report back if it worked or if you need further help.

          Maybe to explain it:
          The idea behind this trick is that iTunes will not download Apps, Music etc. while it is closed. By starting the downloads and closing iTunes they will remain in the download queue and continue downloading as soon as you open iTunes again.

          Instead of opening & closing it yourself you use iCal to do it automatically.

  3. Mike
    March 4, 2011 at 9:00 pm

    It is a bit tricky to fully automate it because iTunes will ask for your iTunes Account Password when starting App Store downloads.

    Once the downloads are started and in the download queue you can automate it using Task Scheduler (Windows) or iCal with an AppleScript (Mac) to open and close iTunes within your preferred Time Window.

    On Windows (Task Scheduler):

    1. create a Task that open/starts iTunes on a certain time (that one is easy)

    2. create another Task to kill iTunes at a certain time
    don't use the Wizards for this one, the following settings are required:
    - at the General Tab: Run with highest privileges
    - at the Actions tab: select the following
    Action: Start a program
    Program/script: C:WindowsSystem32taskkill.exe
    Add arguments (optional): /F /IM "iTunes.exe"

    On Mac OS X:

    1. create an new iCal Event and as Alarm type select "open File" and locate the iTunes.app

    2. open the AppleScript-Editor and enter the following

    tell Application "iTunes" to quit

    3. save this somewhere safe as "quit_iTunes.scpt" or whatever name you prefer

    4. create another iCal Event and as Alarm type select run script and locate the previously saved AppleScript

    That should do it - as for fully automation it might be possible with something like AutoIt (Windows) and one of it's alternatives for Mac, but I never looked into this to be honest - can't give you much heading here.

    • Plunic
      October 14, 2011 at 9:55 am

      Hi Mike!

      Your solution is really effective vor Sonnys Problem. Geat and elegant solution!
      I would love to automate the process of checking for new updates and tell iTunes to download them all. Do you think there is any way for a script to go to app-section in iTunes, check for updates, click on update all, enter my password end hit enter again? A lot of this would probably be able with Automator and the "watch me do something on the screen and repeat it"-feature, but then the clicks would have to be at the

      • Plunic
        October 14, 2011 at 9:58 am

        ... exact same spot for Automator to get it. Do you think navigating through iTunes is possible for a script? I do use a lot of apps and I think hitting the free update button every day would be better done by a program :)

        Would be really great if you had such an elegant solution for my problem as well :)

        Greetings, Plunic

        • Mike
          October 14, 2011 at 5:05 pm

          You already got the point:
          In order to start the App updates automatically you have to create a GUI script using AppleScript and schedule it via iCal.

          Creating the AppleScript will certainly take some time and a lot of testing until it's working properly.

          One alternative would be to search the depths of Google for a magic command. For example some guys found out there is an actual command to update podcasts

          tell application "iTunes"
          activate
          updateAllPodcasts
          end tell

          I don't know if such a command exists for the iTunes Apps ~ if it does finding it might take the same time or longer than automating the GUI using AppleScript.

        • Mike
          October 14, 2011 at 5:52 pm

          One small update on the matter:

          You could also tell iTunes to run the WebObject for updates however the problem is in finding it.

          For example the available updates are located at one of the following URLs:
          h**p://ax.su.itunes.apple.com / WebObjects/MZSoftwareUpdate.woa / wa/availableSoftwareUpdates
          h**p://ax.su.itunes.apple.com / WebObjects/MZSoftwareUpdate.woa / wa/viewSoftwareUpdates

          * They are http and no spaces in between - I had to split it up else Disqus would have shorten them

          However telling iTunes to open it always resulted in an error for me:

          tell application "iTunes"
          launch
          open location "itmss://ax.su.itunes.apple.com/WebObjects/MZSoftwareUpdate.woa/wa/availableSoftwareUpdates"
          end tell

          But yea, those 3 methods are pretty much the only things you can do with the first one (GUI scripting with AppleScript) is probably the one with the highest success rate :)

        • Plunic
          November 12, 2011 at 11:29 pm

          thanks a lot for your answer. also, opening the web objects results in the popups asking for password and so on, right? as it always takes a different time to response with that dialog, and sometimes has the "you can just download this app if you are 17 or older" dialog, the GUI method is not so good :/ i hoped to find a way to just tell it via scripting to update everything and take the password from the keychain or something :)
          thank you anyways for your answer!

Ads by Google