iOS Code Signing & Provisioning pähkinänkuoressa

Kehitän sovelluksia jo yli 3 vuotta ja yksi asia, joka edelleen ärsyttää minua, on Code Signing ja Provisioning iOS:ssä. Mitä ovat allekirjoitustunnukset? Miksi minun pitää luoda Provisioning Profiles ja välittää tällaisista asioista kehittäjänä? Jos sinulla ei ole hyviä vastauksia näihin kysymyksiin ja et todellakaan halua lukea Apple Docsia läpi, tämä on toivottavasti artikkeli, joka paljastaa koko prosessin sinulle ja minulle referenssinä alle 5 minuutissa.

Olen varma, että monet teistä oppivat asiat nopeasti vain lukemalla tekstin läpi, mutta se, mistä minä todella pidän, on saada asiat selitettyä visuaalisesti laatikoilla ja nuolilla. Joten suurin ongelma minulle on se, että ei ole mitään kaaviota tai grafiikkaa, joka poimii kaikki olennaiset osat ja näyttää, miten kaikki toimii yhdessä helposti ymmärrettävällä tavalla. Tästä syystä yritän luoda sellaisen tämän viestin lopussa. Aloitetaan.

Kerätään ensin tärkeimmät termit, joihin törmää, kun yrittää löytää Provisioningiin ja Code Signingiin liittyviä asioita Internetistä.

  • Xcode
  • Member Center
  • Keychain
  • Signing Identity
  • Private & Public Key
  • Provisioning Profile
  • App. ID

Xcode & Member Center

Jos olet iOS-kehittäjä, käytät yleensä Xcodea sovellusten ja resurssien luomiseen ja hallintaan sekä niiden lataamiseen Appstoreen. Tämä on kaikki mitä sinun tarvitsee tietää Xcodesta seurataksesi tätä viestiä. jos haluat lukea siitä lisää, klikkaa tästä: Xcode

Kun olet rekisteröitynyt Apple Developer Programiin, voit kirjautua Member Centeriin. Tämä on paikka, jossa voit luoda Provisioning Profiles, App ID:t, Sertifikaatit yms. Member Centerin osat ovat suoraan yhteydessä Xcodeen. Voit esimerkiksi nähdä ja luoda Signing Identityjäsi tai ladata ja päivittää Provisioning Profiles -profiileja Xcode-asetuksissa.

Signing Identity, Public & Private Key, Keychain Application

Yksi asia, joka meidän on selvitettävä, on termi Signing. Sovelluksen allekirjoittaminen antaa iOS:lle mahdollisuuden tunnistaa, kuka on allekirjoittanut sovelluksesi ja varmistaa, että sovellusta ei ole muutettu sen jälkeen, kun olet allekirjoittanut sen. Allekirjoitustunniste koostuu julkisen ja yksityisen avaimen parista, jonka Apple luo sinulle. Ajattele julkista avainta pelkkänä lukitusmekanismina, joten sinun on tiedettävä yksityinen avain purkaaksesi, avataksesi lukituksen tai purkaaksesi datan uudelleen.

Mistä julkinen ja yksityinen avainpari tulevat ja miten pyydät niitä sisältävän varmenteen? Kaikki tämä taika tapahtuu, kun luot varmenteen allekirjoituspyynnön (CSR, Certificate Signing Request) avainketjun käyttösovelluksen kautta. Jos teet näin, Keychain-sovellus luo yksityisen avaimen ja certSigningRequest-tiedoston, jonka sitten lataat Applelle. Apple tarkistaa pyynnön ja myöntää varmenteen puolestasi. Varmenne sisältää julkisen avaimen, jonka voit ladata järjestelmääsi. Kun olet ladannut sen, sinun on asetettava se Keychain Access -sovellukseen kaksoisnapsauttamalla sitä. Kryptografiset toiminnot käyttävät sitä luodakseen sovelluksellesi yksilöllisen allekirjoituksen, joka on periaatteessa koodin allekirjoitustunnuksesi.

Varmenne on saatavilla myös Jäsenkeskuksen kautta, mutta se sisältää vain julkisen avaimen, joten pidä yksityinen avain tallessa.

Avaimenperässäsi on oltava myös välivarmenne, jotta voit varmistaa, että kehittäjä- tai jakeluvarmenteen on myöntänyt jokin toinen varmentaja. Tiedän, että tämä kuulostaa hieman sekavalta, mutta näin se toimii. Se asennetaan automaattisesti, kun Xcode asetetaan ensimmäistä kertaa, joten periaatteessa sinun ei tarvitse huolehtia siitä niin paljon, koska se määritetään automaattisesti.

Provisioning Profile & App ID

Kuten tiedämme, Apple haluaa pitää asiat turvallisina, joten sovellusta ei voi asentaa mihinkään iOS-laitteeseen tuolla ulkona pelkän varmenteen avulla. Tässä kohtaa Provisioning Profiles tulee kuvaan mukaan. Käyttöönottoprofiili on asennettava jokaiseen laitteeseen, jossa sovelluskoodisi on tarkoitus toimia. Jokainen kehitysprofiili sisältää joukon iPhone-kehitysvarmenteita, yksilöllisiä laitetunnisteita ja sovellustunnisteen. Sovellustunnus on kaksiosainen merkkijono, jota käytetään yhden tai useamman sovelluksen tunnistamiseen yhdestä kehitystiimistä.

Kehityksen käyttöönottoprofiilissa määritettyjä laitteita voivat käyttää testaukseen vain ne henkilöt, joiden kehitystodistukset sisältyvät profiiliin. Yksi laite voi sisältää useita provisiointiprofiileja. Kehitys- ja jakeluprofiilien ero on se, että jakeluprofiileissa ei määritetä laitetunnuksia. Jos haluat julkaista sovelluksen, joka pitäisi rajoittaa vain tiettyyn määrään rekisteröityjä laitteita, sinun on käytettävä siihen Ad-Hoc-profiilia.

Kaavio

Tässä on kaavio, jonka keksin. Jos huomaat jotain, mitä en huomannut tai selitin väärin, kerro minulle. Kuten sanottu, tämä on ensimmäinen kerta, kun todella yritin kietoa pääni Provisioningin ja Code Signingin sisuksiin. Tiedän, että puhuttavaa on paljon enemmän, mutta mielestäni tämä on hyvä alku kaikelle tämän aiheen ympärillä olevalle. Yritän pitää tämän postauksen ajan tasalla ja korjata kaiken väärän niin nopeasti kuin pystyn.

  1. Asennetaan Xkoodi ja työnnetään välivarmenne varmenne avaimenperään
  2. Luodaan varmenteen allekirjoittamispyyntö CSR.
  3. Yksityinen avain luodaan CSR:n luomisen yhteydessä ja tallennetaan avaimenperään
  4. CSR ladataan Member Centeriin
  5. Apple tarkistaa kaiken ja myöntää varmenteen
  6. Varmenne ladataan tietokoneellesi
  7. Varmenne työnnetään avaimenperään ja se paritetaan yksityisen avaimen kanssa, jolloin muodostuu koodin allekirjoittava identiteetti
  8. Käyttöönottoprofiili luodaan varmenteen avulla, App ID ja Device Identifiers ja ladataan Xcodeen
  9. Xcode allekirjoittaa sovelluksen ja työntää Provisioning Profileja laitteeseen
  10. iOS tarkistaa, onko kaikki konfiguroitu oikein.Tämä tarkoittaa sitä, että Provisioning Profile pitää sisältää Appin allekirjoittamiseen käyttämäsi sertifikaatti, laitteesi UDID ja oikea App-tunnus.
  11. Sovelluksesi pitäisi olla nyt käynnissä!

Vastaa

Sähköpostiosoitettasi ei julkaista.