Opprette en AppleScript for å bytte mellom flere iTunes-kontoer

Introduksjon

Hvis du eier en Apple-enhet, har du en Apple-ID som også vil være din konto for å handle i iTunes. Noen Apple-eiere kan ha flere Apple ID-er: kanskje jobbe, personlig, for delt innhold med familiemedlemmer eller til og med Apple ID-er for iTunes-butikker i forskjellige land.

Hvis du har flere Apple ID-er som du bruker med iTunes, er du allerede kjent med bryet med å endre kontoer ofte og må skrive inn legitimasjonene hver gang.

I denne opplæringen vil jeg vise deg hvordan du lager en AppleScript som gjør det enkelt å bytte mellom alle Apple-IDene dine, med et enkelt klikk i iTunes.


Før vi begynner

Før vi begynner, er det viktig å forstå at dette er en avansert opplæring med AppleScript. Hvis du ikke er kjent med AppleScript, blir du først anbefalt å sjekke ut noen nybegynneropplæring publisert på Mactuts +. Jeg har listet dem nedenfor.

  • Den Ultimate Beginner's Guide To AppleScript
  • Hvis og hvis annet: AppleScript betingede uttalelser
  • Avanserte AppleScript-teknikker
  • Spar tid og innsats med AppleScript Repeat Loops

1. Målet

Målet med denne opplæringen er å kode en AppleScript som lar deg:

  • lagre alle dine Apple ID-kontoer i en plistfil
  • logg inn på iTunes ved hjelp av en registrert konto
  • Slett alle registrerte kontoer

Skriptet lagrer alle dine Apple ID-kontoer i en plistfil med følgende struktur: Hver fil rad har som nøkkel en etikett som identifiserer kontoen, og den har som verdi en matrise som inneholder Apple ID-e-postadressen og passordet.

Tips: Merk at passordfeltene i plistfilen ikke er kryptert. For å beskytte dette anbefales det at du oppretter et passord på OS X-brukerkontoen din. Vurder å sette opp separate brukerkontoer i OS X hvis du deler Mac med noen andre.

Bildet nedenfor viser et eksempel på plistfilen som er oppdatert med to Apple ID-er registrert.


Kontoer Plistfil

Hvis du ikke er kjent med plistfiler, anbefaler jeg at du leser dokumentasjonen om det på Apple Developer-siden.


2. Start AppleScript Editor

Start AppleScript Editor app. Du finner søknaden inni Programmer> Utility. Du kan også skrive inn appnavnet i Spotlight (eller Alfred app) for å starte det.


AppleScript Editor

AppleScript Editor er ditt utviklingsmiljø der du kan skrive, redigere, kompilere og teste AppleScript-koden din. Når du har åpnet appen, kan du begynne å skrive skriptet.


3. Begynn koding av skriptet

Skriptet har noen funksjoner som forenkler hovedkoden, slik at den blir mer lesbar og klar. La oss kode funksjonene.

Trinn 1

Den første funksjonen tillater opprettelsen av en plistfil som inneholder alle dine Apple ID-kontoer. Koden nedenfor definerer funksjonen.

 -- Funksjon for å lage en plistfil på createAccountsFile (filePath) fortell applikasjonen "System Events" - Opprett Root Dictionary sett rootDict for å lage nytt eiendomsliste med egenskaper kind: record - Legg til Root Dictionary til en ny plistfil lagret i filPath sett plistFile for å lage ny egenskapslistefil med egenskaper innhold: rootDict, navn: filePath end tell end createAccountsFile

De createAccountsFile (filepath) funksjonen har en parameter filepath hvilken er den POSIX bane av plistfilen din. Linje 5 lager rotordelen, og linje 7 lagrer den til den nye plistfilen.

Steg 2

En annen funksjon lar deg legge til en ny Apple-konto for å plistre filen. De addAccount (filePath, label, email, pass) funksjonen har fire parametere:

  • filepath er den POSIX bane av plistfilen
  • merkelapp er en etikett for å identifisere Apple-kontoen
  • e-post er e-posten til Apple ID-kontoen
  • passere identifiserer passordet for kontoen

Koden nedenfor implementerer funksjonen som er definert.

 -- Funksjon for å registrere en ny Apple-konto på addAccount (filPath, etikett, e-post, pass) fortell søknad "System Events" - Åpne listeportfilen Fortell eiendomslisten filfilPath - Få plist filinnholdet fortell innholdet - Legg til en ny rad med all kontoinformasjon til Root Dictionary of Plist-filen, gjør det nye objektlisten på slutten med egenskaper type: liste, navn: etikett, verdi: email, pass slutt tell slutt slutt slutt tell end addAccount

Trinn 3

Funksjonen som er kodet nedenfor, returnerer en liste over alle etiketter på hver konto. De getLabels (filepath) har bare én parameter: filepath det er plistfilen POSIX sti.

 -- Funksjon for å få alle kontoutskrifter på getLabels (filePath) - Definer en tom liste som inneholder alle etikettene som er satt til  fortell programmet "System Events" - Hent pakkefilinnholdet og lagre det i filenContent variable set fileContent til eiendom liste innholdsfortegnelser i eiendomslisten filfil - Skann hver filrad og legg til hver etikett til etikettlisten gjenta med konto i filen Innholdssett-etikett for å gi navn til kontosett slutten av etikettene til etikett Endre End-End-fortell - Returner listen med alle Etikettene returnerer etiketter og endrer getLabels

Trinn 4

En annen viktig funksjon er getAccountInfo (filePath, selectedAccount) som returnerer informasjon (e-post og passord) om en registrert Apple-konto. Funksjonen nedenfor har to parametere:

  • filepath er den POSIX bane av plistfilen
  • selectedAccount er den valgte kontoen når du kjører sluttskriptet

Koden nedenfor utfører funksjonen.

 -- Funksjon for å få e-post og passord for en valgt konto på getAccountInfo (filePath, selectedAccount) fortell søknad "System Events" - Åpne plistfilen og få innholdet satt filContent til eiendomslistefil (filePath) - Få informasjon basert på selectedAccount sett info til verdien av egenskapslisteelementet valgtAccount of fileContent end tell - Retur info array returinfo end getAccountInfo

Trinn 5

De getPath (filename) funksjonskodet nedenfor, implementerer en bruksfunksjon som returnerer absolutt POSIX bane av en fil som er spesifisert av parameteren filnavn. I vårt tilfelle vil filnavnet representere plistfilen med alle Apple-kontoer.

 -- Funksjon for å få den absolutte banen til en fil på getPath (filnavn) fortell søknad "Finder" - Få den absolutte banen til overordnet mappe i AppleScript-filen. sett _path til foreldre av (bane til meg) som streng - Forvandle banen i en POSIX-bane sett _path til POSIX-banen til _path - Sammenkoble mappebanen med filnavnet satt _path til _path & fileName - Gjenopprett POSIX-banen av plistfil med navn 'filnavn' som er inne i mappen for AppleScript-filreferanse _path end tell end end getPath

Trinn 6

Til slutt, la oss kode den siste funksjonen: kjernefunksjonen. Det tillater oss å logge på iTunes, automatisk, med en konto registrert i plistfilen. De iTunesLogin (info) funksjonen har bare én parameter: info representerer en matrise som inneholder e-post og passord for en Apple-konto.

For å logge på iTunes automatisk, simulerer AppleScript-språket de manuelle operasjonene du vil gjøre for å oppnå følgende:

  • Start iTunes
  • Klikk på Lagre> Logg inn ...
  • Skriv inn din e-postadresse
  • Skriv inn passordet ditt
  • Klikk på Logg inn knapp

Funksjonen nedenfor gjør alle trinnene ovenfor for deg.

 -- Funksjon for iTunes logg inn på iTunesLogin (info) - Start iTunes fortelle programmet "iTunes" for å aktivere fortellingsprogrammet "System Events" fortell prosessen "iTunes" angi fremste til ekte - Logg ut før du utfører et nytt påloggingsforsøk, klikk på menyelementet loginBtn of meny "Lagre" på menylinje 1 på feilklikk menyelement logoutBtn av menyen "Lagre" på menylinjen 1 forsinkelse 2 klikk menyelementet loginBtn av menyen "Lagre" på menylinjen 1 sluttforsøk forsinkelse 1 - Skriv konto e-post tastetrykk element 1 av info tastetrykkfeil forsinkelse 1 - Type konto passord tastetrykk element 2 av info - Trykk på returknappen tastetrykk returtidsforsinkelse 3 tastetrykk returendre fortell slutt fortell slutt iTunesLogin

I denne funksjonen er det to globale variabler loginBtn og logoutBtn. De representerer knappene for å logge inn og logge ut av iTunes. Knappnavnene er basert på systemspråket; du må sette dem riktig for at AppleScript skal fungere.


4. AppleScript-hovedkoden

Når du er ferdig med å kode alle tidligere funksjoner, kan du skrive hovedkoden til AppleScript. Inne i AppleScript, plasser du markøren øverst på filen.

Trinn 1

Det første trinnet for å fullføre opplæringen vår er å stille noen variabler og gjøre noen sjekker.

 -- Angi navnet på plistfilen som inneholder alle dine Apple-kontoer, sett filenavn til "accounts.plist" - Få den absolutte banen til plistfilen ved hjelp av funksjonen "getPath (filnavn)" som angir filPath til getPath (filnavn) - Definer iTunes-innloggings- og logoutknappens navn basert på systemsprogegenskapens logginnloggingBtn: "Logg inn ..." logg på eiendomBtn: "Logge ut" fortell søknad "Finder" - Sjekk om plistfilen allerede eksisterer. Hvis false la oss lage den med 'createAccountsFile (filePath)' -funksjonen hvis ikke (eksisterer filenPath som POSIX-fil), slutter createAccountsFile (filPath) hvis sluttmeldingen

Steg 2

Det neste trinnet er å vise en dialogboks som spør brukeren hva de vil gjøre? Vår AppleScript har følgende funksjoner:

  • Velg konto (for iTunes logg inn)
  • Legg til en ny Apple-konto (til plistfilen)
  • Tilbakestill kontoer (tøm plistfilen)

Handlinger Dialog

Koden nedenfor implementerer dialogen.

 -- Vis dialogboksen for dialogboksen for handling dialogbokser. Resultat for å vise dialogboksen "Bytt Apple-konto" -knapper "Velg konto", "Legg til konto", "Tilbakestill konto" med skjult svar

Trinn 3

Nå er det på tide å analysere brukervalget.

 -- Parse resultatet hvis dialogResult = knapp returneres: "Legg til konto" da - Klikk på "Legg til konto" -knappen ellers hvis dialogResult = knapp returnert: "Velg konto" deretter - Klikk på "Velg konto" -knappen ellers hvis dialogResult = knapp returnert: "Tilbakestill kontoer" deretter - Klikk på "Tilbakestill konto" -knappen slutt hvis

Hvis brukeren klikker på Legg til konto Trykk på skriptet, spør han om å sette inn legitimasjonene for en ny Apple-konto. Det vil vise tre dialogbokser med inntastingsfelter for kontonett, e-post og passord. Koden nedenfor implementerer denne prosessen.

 -- Klikk på "Legg til konto" -knappen - Be om å sette inn dialogboksen for kontoutskriftets etikett "Sett inn en etikett for den nye Apple-kontoen" standard svar "" - Lagre feltverdien i etikettvariabel sett etikett til (tekst returnert av resultat) - - Be om å sette inn e-postdisplaydialogboksen "Sett inn e-postadressen til Apple-kontoen" standard svar "" - Lagre feltverdien i e-postvariabler med e-post til (tekst returnert av resultat) - Be om å sette inn dialogboksen for dialogboksen " Sett inn passordet for Apple-kontoen "standard svar" "med skjult svar - Lagre feltverdien i passordvariabelen sett til (tekst returnert av resultat) - Sett inn den nye kontoen inne i plistfilen ved hjelp av addAccount (filPath, etikett , e-post, pass) 'funksjon addAccount (filPath, etikett, e-post, pass) - Vis en dialog med suksess messagge display "The & label &" -kontoen ble registrert! knapper "Ferdig"

Hvis en bruker klikker på Velg konto knappen, viser skriptet en dialog med alle registrerte kontoer. Når brukeren velger en konto, kjører scriptet iTunes-innlogging. La oss implementere handlingen.

 -- Klikk på 'Velg konto' -knappen - Få alle kontoutskrifter ved hjelp av funksjonen 'getLabels (filePath)', sett etiketter til getLabels (filePath) - Sjekk om brukeren har satt inn minst en konto hvis (antall etiketter) ikke er 0 da - Vis alle tilgjengelige kontoer velg fra listetiketter med tittelen "Apple-kontoer" med ledig "Logg inn i iTunes med:" OK-knappens navn "Velg" Avbryt knappnavn "Avbryt" - Lagre valget Kopier resultatet som streng til selectedAccount - Hvis brukeren ikke har trykket på Avbryt-knappen, fortsett hvis ikke valgtAccount er lik «false» da - Få kontoinformasjonen om valgt konto ved hjelp av 'getAccountInfo (filePath, selectedAccount)' sett info til getAccountInfo (filePath, selectedAccount) - Kjør påloggingen iTunesLogin (info) avslutte hvis ellers vise dialogboksen "Ingen kontoer registrert ennå! Sett inn en ny!" knapper "Done" avslutte hvis

Hvis brukeren klikker på Tilbakestill kontoer knappen, overskriver skriptet plistfilen med en tom. Koden nedenfor kaller createAccountsFile (filepath) funksjonen igjen for å fullføre prosessen.

 -- Klikk på 'Reset Accounts' -knappen, prøv - Spør brukeren om å bekrefte handlingsdisplaydialogen "Vil du slette alle innlagte kontoer?" - Hvis brukeren ikke avbryter handlingen, overskriv plistfilen createAccountsFile (filePath) - Vis en dialog med suksessmeldingsdisplayet "Alle kontoer slettes vellykket" knapper "Ferdig" ved feil - Gjør ikke noe sluttforsøk

5. Kjør skriptet inne i iTunes

Den siste oppgaven som kreves for å fullføre opplæringen, er å installere AppleScript i iTunes, slik at du enkelt kan få tilgang til den når som helst.

Trinn 1

Først eksporter AppleScript. I AppleScript Editor-appen klikker du på Fil> Eksporter ... fra toppmenyen.

Inne i eksportpanelet må du:

  • eksporter som "tilgang til iTunes"
  • Velg som stasjon skrivebordet ditt
  • velge Manus som filformat
  • og velg Kjør-only alternativ

Når du er klar, klikk på Lagre knapp.


Eksporter Script

Steg 2

Flytt det eksporterte skriptet til iTunes nå. For å gjøre det, start Finder app og velg Gå> Gå til mappe fra toppmenyen.
Fyll inn feltfelt med /Users/Your.System.User/Library/iTunes/ og klikk på knapp.


Gå til mappe

Nå flytte den Tilgang til iTunes fil fra Desktop til Manus mappe (hvis denne mappen ikke allerede eksisterer, må du opprette den først) for å fullføre prosessen.


Flytt skript

Trinn 3

Et annet viktig skritt for å sikre at AppleScript fungerer riktig, er å aktivere tilgang til hjelpemidler: åpne Systemvalg app, velg tilgjengelighet ikon og sjekk Aktiver tilgang til hjelpemidler. Bildet under viser panelet med dette alternativet.


tilgjengelighet

Trinn 4

Nå kan du utløse AppleScript direkte fra iTunes.


Trigger Script

Konklusjon

Gratulerer! Du har fullført AppleScript. Hvis du har fulgt alle trinnene, vil du kunne bruke AppleScript fra iTunes. I denne opplæringen har du lært hvordan du kodes en AppleScript, for å bytte mellom Apple-kontoer, uten å skrive inn forskjellige e-postadresser og passord flere ganger. Du kan enkelt tilpasse denne AppleScript til å jobbe med Mac App Store også. Bare endre iTunesLogin funksjon. Jeg håper du likte denne opplæringen, gi meg beskjed om hvordan du fortsetter med skriptene og eventuelle kommentarer eller spørsmål du har brukt i kommentarfeltet nedenfor.