xcodeauto.sikuli

(Download this script)
def startSubmit():
    print '---------------startSubmit-----------------'
    wait(, 60*15)
    click()
    wait(Pattern().similar(0.66).targetOffset(133,45), 60*5)
    click(Pattern().similar(0.66).targetOffset(133,45))
    wait(, 60*5)
    click(Pattern().targetOffset(163,22))


wait(Pattern().similar(0.50), 60*2)
click(Pattern().similar(0.51).targetOffset(-20,6))

try:
    click(Pattern().similar(0.50).targetOffset(-19,7))
except:
    pass #ignore

#"Distribution" already set from the Java code, before this is run.

try:
    click(Pattern().targetOffset(-23,-4))#misses sometimes
except:
    click(Pattern().targetOffset(-24,-2))
wait(, 50)
type(Key.RIGHT)
for i in range(40): #press many times, may not catch all.
    type(Key.UP)
type(Key.DOWN)
sleep(1.0) #or it clicks lower than updated screen?
try:
    wait(,10)
    type('\n')
except:
    click(Pattern().targetOffset(-23,-4))
    wait(, 50)
    type(Key.RIGHT)
    for i in range(40): #press many times, may not catch all.
        type(Key.UP)
    type(Key.DOWN)
    sleep(1.0)
    type('\n')
hover()

sleep(2.0) #or it fails: sometimes? Or is it caused by mouse being at top of screen?
try:
    click(Pattern().similar(0.54))
except: #If Sikuli menu shows up: switch:
    sleep(2.0)
    type(Key.TAB, KeyModifier.CMD)
    click()
    sleep(2.0)
    click(Pattern().similar(0.54)) #why does it still fail here often?
    sleep(2.0)

try:
    wait(, 10)
    click(Pattern().targetOffset(-46,-4))
except:
    type(Key.TAB, KeyModifier.CMD)
    click(Pattern().similar(0.54)) #why does it still fail here often?
    click(Pattern().targetOffset(-63,-5))
wait(, 60*20)

success = False
while not success:
    startSubmit()
    try:
        wait(, 60*30)
        success = True

    except:
        print "-------------------timeout? do-over-------------------------"
        try:
            click(Pattern().targetOffset(-245,141))#cancel, errored
            startSubmit()
            wait(, 60*30)
            success = True
        except:#not error, timeout?:
            click(Pattern().targetOffset(-239,142)) #cancel neverending submit
            print "----------------------Clicked neverending submit----------------------------------"
            startSubmit() #do-over
            try:
                wait(, 60*30)
                success = True
            except:
                pass #Try below:

    try:
        click(Pattern().targetOffset(-234,141))#cancel, errored, retry:
        print "------------------------------Error-again? Retry...--------------------------------"
        #Back to start of loop
    except:#not error
        pass
#(here success=True, finally uploaded?)
click()
wait(Pattern().similar(0.82), 50) #in case unfocused?
click(Pattern().similar(0.82))
sleep(1.0)
wait(Pattern().similar(0.83), 60)
click(Pattern().similar(0.83))
wait(, 10)
click(Pattern().targetOffset(-226,-5))
click()
wait(Pattern().similar(0.66).targetOffset(133,45), 60)
click(Pattern().similar(0.66).targetOffset(133,45))
try:
    wait(, 20)
    click(Pattern().similar(0.58).targetOffset(210,30))
except:
    pass #ok
wait(, 30)
click(Pattern().targetOffset(242,151))

wait(, 30) #How does it not find this?
click(Pattern().targetOffset(190,119))#in case out of focus window
#This is really specific to os and finder setup, moved to Java:
#wait(Pattern("ScreenShot17.png").similar(0.58), 30)
#click(Pattern("ScreenShot17-1.png").similar(0.58).targetOffset(6,-8))
#drag(Pattern("ScreenShot20.png").targetOffset(-66,0))
#dropAt(Pattern("ScreenShot19.png").targetOffset(0,30))
#click(Pattern("ScreenShot17-1.png").similar(0.58).targetOffset(6,-8))
type('w', KeyModifier.CMD)
#ipa in desktop, should be moved. 
# Dsym file (folder actually) is ls ~/Library/Developer/Xcode/Archives/2015-01-14/Sharefaith\ ChurchApp\ 1-14-15\,\ 8.24\ AM.xcarchive/dSYMs/Sharefaith\ ChurchApp.app.dSYM/
# or similar.

wait(, 10)
click(Pattern().targetOffset(-80,0))
#In focus, close:
type('w', KeyModifier.CMD)
wait(, 10)
click(Pattern().targetOffset(-66,0))
#wait("ScreenShot22.png",10)
#click(Pattern("ScreenShot22-1.png").targetOffset(-38,13))