IOS Code Signing & Provisioning in a Nutshell

Dezvolt aplicații de mai bine de 3 ani și un lucru care încă mă enervează este Code Signing și Provisioning în iOS. Ce sunt identitățile de semnare? De ce trebuie să creez Provisioning Profiles și să mă interesez de astfel de lucruri în calitate de dezvoltator? Dacă nu aveți niciun răspuns bun la aceste întrebări și chiar nu vreți să citiți prin Apple Docs, sper că acesta este articolul care expune întregul proces pentru voi și pentru mine, ca referință, în mai puțin de 5 Minute.

Sunt sigur că mulți dintre voi pot învăța lucruri rapid doar citind un text, dar ceea ce îmi place cu adevărat, este să mi se explice lucrurile într-un mod vizual, cu casete și săgeți. Deci, cea mai mare problemă pentru mine este că nu există o diagramă sau un grafic care să selecteze toate părțile relevante și să arate cum funcționează totul împreună într-un mod ușor de înțeles. Acesta este motivul pentru care voi încerca să creez unul la sfârșitul acestei postări. Să începem.

În primul rând, haideți să adunăm termenii majori, de care vă veți împiedica atunci când veți încerca să găsiți pe internet orice lucru legat de Provisioning și Code Signing.

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

Xcode & Member Center

Dacă sunteți un dezvoltator iOS, veți utiliza de obicei Xcode pentru a vă crea și gestiona aplicația și resursele și pentru a le încărca în Appstore. Aceasta este tot ce trebuie să știți despre Xcode pentru a urmări acest post. dacă doriți să citiți mai multe despre el, faceți clic aici: Xcode

După ce v-ați înregistrat pentru Apple Developer Program veți putea să vă conectați la Member Center. Acesta este locul unde puteți crea Provisioning Profiles, App ID-uri, Certificate etc.. Unele părți ale Centrului pentru membri sunt conectate direct cu Xcode. De exemplu, puteți să vă vedeți și să vă creați Signing Identities sau să descărcați și să reîmprospătați Provisioning Profiles în Xcode Settings.

Signing Identity, Public & Private Key, Keychain Application

Un lucru pe care trebuie să-l clarificăm este termenul Signing. Semnarea aplicației dvs. permite iOS să identifice cine a semnat aplicația dvs. și să verifice dacă aplicația dvs. nu a fost modificată de când ați semnat-o. Identitatea de semnare constă într-o pereche de chei publice-private pe care Apple o creează pentru dumneavoastră. Gândiți-vă la cheia publică ca la un mecanism de blocare, astfel încât trebuie să cunoașteți cheia privată pentru a desface, debloca sau decoda din nou datele.

De unde provine perechea de chei publice și private și cum solicitați un certificat care să le conțină? Toată această magie se întâmplă atunci când creați o cerere de semnare a certificatului (CSR) prin intermediul aplicației Keychain Access. Dacă faceți acest lucru, aplicația Keychain va crea o cheie privată și un fișier certSigningRequest pe care îl veți încărca apoi la Apple. Apple va verifica cererea și va emite un certificat pentru dumneavoastră. Certificatul va conține cheia publică care poate fi descărcată pe sistemul dumneavoastră. După ce l-ați descărcat, trebuie să îl introduceți în aplicația de acces Keychain Access prin dublu clic pe el. Acesta este utilizat de funcțiile criptografice pentru a genera o semnătură unică pentru aplicația dumneavoastră, care este practic Code Signing Identity.

Certificatul va fi, de asemenea, disponibil prin intermediul Centrului pentru membri, dar va conține doar cheia publică, așa că păstrați în siguranță cheia privată.

Un certificat intermediar este, de asemenea, necesar să fie în brelocul dumneavoastră pentru a vă asigura că certificatul de dezvoltator sau de distribuție este emis de o altă autoritate de certificare. Știu că sună un pic confuz, dar iată cum funcționează. Este instalat automat atunci când se configurează Xcode pentru prima dată, așa că, practic, nu trebuie să vă pese atât de mult de el, deoarece este configurat automat.

Profil de furnizare & ID-ul aplicației

După cum știm, Apple îi place să păstreze lucrurile în siguranță, așa că nu este posibil să instalați o aplicație pe orice dispozitiv iOS existent folosind doar certificatul. Aici intervine Provisioning Profiles. Un Provisioning Profile trebuie instalat pe fiecare dispozitiv pe care trebuie să ruleze codul aplicației dumneavoastră. Fiecare profil de dezvoltare Provisioning Profile va conține un set de certificate de dezvoltare iPhone, identificatori unici de dispozitiv și un ID de aplicație. Un App ID este un șir format din două părți utilizat pentru a identifica una sau mai multe aplicații de la o singură echipă de dezvoltare.

Dispozitivele specificate în Development Provisioning Profile pot fi utilizate pentru testare numai de către acele persoane ale căror Development Certificates sunt incluse în profil. Un singur dispozitiv poate conține mai multe profiluri de provizionare. Diferența dintre profilurile de dezvoltare și cele de distribuție este că profilurile de distribuție nu specifică niciun ID de dispozitiv. Dacă doriți să lansați o aplicație care ar trebui să fie limitată la un număr de dispozitive înregistrate, trebuie să utilizați un profil Ad-Hoc pentru aceasta.

Cartet

Iată graficul pe care l-am realizat. Dacă descoperiți unele lucruri pe care le-am omis sau pe care le-am explicat greșit, vă rog să mă anunțați. După cum s-a spus, aceasta este prima dată când am încercat cu adevărat să mă descurc cu măruntaiele Provisioning și Code Signing. Știu că mai sunt multe de discutat, dar cred că acesta este un bun început pentru tot ce ține de acest subiect. Voi încerca să țin această postare la zi și să repar tot ce este greșit cât de repede pot.

  1. Xcode va fi instalat și certificatul intermediar va fi împins în Keychain
  2. Se va crea o cerere de semnare a certificatului (CSR).
  3. Cheia privată va fi generată odată cu crearea CSR și va fi stocată în Keychain
  4. CSR va fi încărcată în Member Center
  5. Apple va verifica totul și va emite certificatul
  6. Certificatul va fi descărcat pe computerul dumneavoastră
  7. Certificatul va fi împins în Keychain și va fi asociat cu cheia privată pentru a forma Code Signing Identity
  8. Profilul de provizionare va fi creat folosind un certificat, App ID și Device Identifiers și descărcat de Xcode
  9. Xcode va semna aplicația și va împinge Provisioning Profiles pe dispozitiv
  10. iOS va verifica dacă totul este configurat corect.Asta înseamnă că Profilul de Aprovizionare ar trebui să includă Certificatul pe care l-ați folosit pentru a semna Aplicația, UDID-ul dispozitivului și ID-ul corect al Aplicației.
  11. Aplicația dvs. ar trebui să ruleze acum!

Lasă un răspuns

Adresa ta de email nu va fi publicată.