iOS Code Signing & Provisioning in a Nutshell

Már több mint 3 éve fejlesztek alkalmazásokat, és 1 dolog, ami még mindig bosszant, az a Code Signing és Provisioning az iOS-ben. Mik azok az aláíró identitások? Miért kell Provisioning Profilokat létrehoznom és fejlesztőként törődnöm ilyen dolgokkal? Ha nincs jó válaszod ezekre a kérdésekre és tényleg nem akarod végigolvasni az Apple Docs-t, akkor ez remélhetőleg az a cikk, ami kevesebb, mint 5 percben feltárja számodra és számomra referenciaként az egész folyamatot.

Biztos vagyok benne, hogy sokan gyorsan meg tudtok tanulni dolgokat csak egy szöveg átolvasásával, de amit én nagyon szeretek, az az, hogy vizuálisan, dobozokkal és nyilakkal magyarázzák el a dolgokat. Szóval a legnagyobb probléma számomra az, hogy nincs olyan táblázat vagy grafikon, amely az összes lényeges részt összeválogatná, és könnyen érthető módon mutatná meg, hogyan működik minden együtt. Ez az oka annak, hogy megpróbálok egyet létrehozni ennek a bejegyzésnek a végén. Kezdjük el.

Először is gyűjtsük össze a főbb kifejezéseket, amelyekbe belebotlik, amikor a Provisioning és a Code Signing témaköréhez kapcsolódó dolgokat keres az interneten.

  • Xcode
  • Magánközpont
  • Keychain
  • Signing Identity
  • Private & Public Key
  • Provisioning Profile
  • Alkalmazás. ID

Xcode & Tagközpont

Ha Ön iOS-fejlesztő, akkor általában az Xcode-ot használja az alkalmazások és erőforrások létrehozására és kezelésére, valamint az Appstore-ba való feltöltésre. Ez minden, amit tudnod kell az Xcode-ról, hogy követni tudd ezt a bejegyzést. ha többet szeretnél olvasni róla, kattints ide: Xcode

Miután regisztráltál az Apple Developer Programba, be tudsz majd jelentkezni a Tagközpontba. Ez az a hely, ahol Provisioning Profilokat, App ID-ket, tanúsítványokat stb. tudsz létrehozni. A Tagközpont egyes részei közvetlenül kapcsolódnak az Xcode-hoz. Például az Xcode beállításaiban láthatja és létrehozhatja az aláírási azonosítókat, vagy letöltheti és frissítheti a Provisioning Profilokat.

Signing Identity, Public & Private Key, Keychain Application

Egy dolgot kell tisztáznunk: az aláírás fogalmát. Az alkalmazás aláírása lehetővé teszi az iOS számára, hogy azonosítsa, ki írta alá az alkalmazást, és ellenőrizze, hogy az alkalmazást nem módosították-e az aláírása óta. Az aláíró identitás egy nyilvános-magán kulcspárból áll, amelyet az Apple hoz létre az Ön számára. Gondoljon a nyilvános kulcsra úgy, mint egy csak zárható mechanizmusra, tehát ismernie kell a magánkulcsot ahhoz, hogy az adatokat újra feloldja, feloldja vagy dekódolja.

Honnan származik a nyilvános és a magánkulcs-pár, és hogyan kérhet egy tanúsítványt, amely tartalmazza őket? Mindez a varázslat akkor történik, amikor a Kulcstár-hozzáférési alkalmazáson keresztül létrehoz egy tanúsítványaláírási kérelmet (Certificate Signing Request, CSR). Ha ezt megteszi, a Kulcstár alkalmazás létrehoz egy privát kulcsot és egy certSigningRequest fájlt, amelyet aztán feltölt az Apple-nek. Az Apple ellenőrzi a kérelmet, és kiállítja a tanúsítványt az Ön számára. A tanúsítvány tartalmazza majd a nyilvános kulcsot, amelyet letölthet a rendszerére. Miután letöltötted, duplán kattintva be kell helyezned a Kulcstár-hozzáférési alkalmazásodba. Ezt a kriptográfiai funkciók arra használják, hogy egyedi aláírást generáljanak az alkalmazásához, ami lényegében az Ön kódaláíró identitását jelenti.

A tanúsítvány a Tagközponton keresztül is elérhető lesz, de csak a nyilvános kulcsot tartalmazza, ezért a magánkulcsot tartsa biztonságban.

A kulcsláncában egy köztes tanúsítványra is szükség van, hogy a fejlesztői vagy terjesztői tanúsítványát egy másik tanúsítványkiadó állítsa ki. Tudom, hogy ez egy kicsit zavarosan hangzik, de ez így működik. Automatikusan települ az Xcode első beállításakor, így alapvetően nem kell vele annyira törődnöd, mert automatikusan konfigurálódik.

Provisioning Profile & App ID

Amint tudjuk, az Apple szereti a dolgok biztonságát, így nem lehetséges, hogy csak a tanúsítványt használva telepítsünk egy alkalmazást bármelyik kinti iOS eszközre. Itt jönnek a képbe a Provisioning Profilok. Egy Provisioning Profile-t kell telepíteni minden olyan eszközre, amelyen az alkalmazáskódodnak futnia kell. Minden fejlesztői Provisioning Profile tartalmaz egy sor iPhone fejlesztési tanúsítványt, egyedi eszközazonosítókat és egy alkalmazásazonosítót. Az App ID egy kétrészes karakterlánc, amely egy vagy több, egyetlen fejlesztői csapatból származó alkalmazás azonosítására szolgál.

A Development Provisioning Profile-ban megadott eszközöket csak azok a személyek használhatják tesztelésre, akiknek a fejlesztői tanúsítványai szerepelnek a profilban. Egy eszköz több rendelkezésre bocsátási profilt is tartalmazhat. A fejlesztési és a terjesztési profilok közötti különbség az, hogy a terjesztési profilok nem adnak meg eszközazonosítót. Ha olyan alkalmazást szeretne kiadni, amelyet csak bizonyos számú regisztrált eszközre kell korlátozni, akkor ehhez egy Ad-Hoc profilt kell használnia.

Grafikon

Itt van az általam készített grafikon. Ha felfedezel néhány dolgot, amit kihagytam vagy rosszul magyaráztam el, kérlek, szólj nekem. Mint mondják, ez az első alkalom, hogy tényleg megpróbáltam a Provisioning és a Code Signing belsejét körbejárni. Tudom, hogy van még sok mindenről beszélni, de úgy gondolom, hogy ez egy jó kezdet mindenhez a téma körül. Igyekszem majd naprakészen tartani ezt a bejegyzést és mindent kijavítani, ami rossz, amilyen gyorsan csak tudok.

  1. Az Xcode telepítésre kerül és a Közbenső tanúsítvány bekerül a kulcstárba
  2. A tanúsítvány aláírási kérelem (CSR) létrejön.
  3. A magánkulcs a CSR létrehozásával együtt generálódik és a kulcstárban tárolódik
  4. A CSR feltöltésre kerül a Tagközpontba
  5. Az Apple mindent ellenőriz és kiadja a tanúsítványt
  6. A tanúsítvány letöltésre kerül a számítógépre
  7. A tanúsítványt a kulcstárba tolja és a magánkulccsal párosítva létrehozza a kódaláíró azonosítót
  8. A Provisioning Profile a tanúsítvány segítségével jön létre, App ID és Device Identifiers és letölti az Xcode
  9. Az Xcode aláírja az alkalmazást és a Provisioning Profilokat az eszközre tolja
  10. Az iOS ellenőrzi, hogy minden megfelelően van-e beállítva.Ez azt jelenti, hogy a Provisioning Profile-nak tartalmaznia kell az App aláírásához használt tanúsítványt, a Device UDID-t és a helyes App ID-t.
  11. Az App-nak most már futnia kell!

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.