{"id":42201,"date":"2019-03-18T00:00:00","date_gmt":"2019-03-17T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/publikuem-prilozheniya-ios-v-app-store-s-gitlab-i-fastlane"},"modified":"2020-02-18T13:45:01","modified_gmt":"2020-02-18T10:45:01","slug":"publikuem-prilozheniya-ios-v-app-store-s-gitlab-i-fastlane","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/publikuem-prilozheniya-ios-v-app-store-s-gitlab-i-fastlane","title":{"rendered":"iOS alkalmaz\u00e1sokat publik\u00e1lunk az App Store-ban GitLab \u00e9s fastlane seg\u00edts\u00e9g\u00e9vel","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"iOS alkalmaz\u00e1sokat publik\u00e1lunk az App Store-ban GitLab \u00e9s fastlane seg\u00edts\u00e9g\u00e9vel\" src=\"\/wp-content\/uploads\/2019\/03\/a82a2584dfa78743d9e91e399939061f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hogyan gy\u0171jti \u00f6ssze, \u00edrja al\u00e1 \u00e9s teszi k\u00f6zz\u00e9 a GitLab a fastlane seg\u00edts\u00e9g\u00e9vel az iOS alkalmaz\u00e1sokat az App Store-ban.<\/p>\n<p><\/p>\n<p>Nemr\u00e9g volt egy <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/2019\/01\/28\/android-publishing-with-gitlab-and-fastlane\/\">bejegyz\u00e9s\u00fcnk arr\u00f3l, hogyan lehet gyorsan \u00f6ssze\u00e1ll\u00edtani \u00e9s elind\u00edtani egy Android alkalmaz\u00e1st<\/a><\/noindex> a GitLab \u00e9s <noindex><a rel=\"nofollow\" href=\"https:\/\/fastlane.tools\/\">fastlane<\/a><\/noindex>. Itt megn\u00e9zz\u00fck, hogyan lehet \u00f6ssze\u00e1ll\u00edtani \u00e9s elind\u00edtani egy iOS alkalmaz\u00e1st, majd k\u00f6zz\u00e9tenni a TestFlighton. N\u00e9zd meg, mennyire klassz <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=325FyJt7ZG8\">m\u00f3dos\u00edt\u00e1st v\u00e9gzek az iPad Pro-n a GitLab Web IDE seg\u00edts\u00e9g\u00e9vel<\/a><\/noindex>, k\u00e9sz\u00edtem a buildet, \u00e9s friss\u00edt\u00e9st kapok az alkalmaz\u00e1s tesztverzi\u00f3j\u00e1b\u00f3l ugyanazon az iPad Pro-n, ahol fejlesztettem.<\/p>\n<p><\/p>\n<p>Itt egy <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/jlenny\/flappyokr\">egyszer\u0171 iOS alkalmaz\u00e1st vesz\u00fcnk alapul Swiftben<\/a><\/noindex>, amelyhez vide\u00f3t k\u00e9sz\u00edtettem.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"para-slov-o-konfiguracii-apple-store\">N\u00e9h\u00e1ny sz\u00f3 az Apple Store konfigur\u00e1ci\u00f3j\u00e1r\u00f3l<\/h3>\n<p><\/p>\n<p>Sz\u00fcks\u00e9g\u00fcnk lesz egy alkalmaz\u00e1sra az App Store-ban, terjeszt\u00e9si tan\u00fas\u00edtv\u00e1nyokra \u00e9s inicializ\u00e1l\u00f3 profilra, hogy mindent \u00f6sszekapcsoljunk.<\/p>\n<p><\/p>\n<p>A legnehezebb itt az al\u00e1\u00edr\u00e1si jogok be\u00e1ll\u00edt\u00e1sa az App Store-ban. Rem\u00e9lem, ezzel magatok is elboldogultok. Ha \u00fajonc vagy, megadom a megfelel\u0151 ir\u00e1nyt, de itt nem fogunk a tan\u00fas\u00edtv\u00e1nyok kezel\u00e9s\u00e9nek finoms\u00e1gair\u00f3l besz\u00e9lni, r\u00e1ad\u00e1sul ezek \u00e1lland\u00f3an v\u00e1ltoznak. Ez a bejegyz\u00e9s seg\u00edt elkezdeni a munk\u00e1t.<\/p>\n<p><\/p>\n<h3 id=\"moi-prilozheniya\">Az alkalmaz\u00e1saim<\/h3>\n<p><\/p>\n<p>Sz\u00fcks\u00e9ges egy alkalmaz\u00e1s az App Store Connectben, hogy legyen egy ID a konfigur\u00e1ci\u00f3hoz <code>.xcodebuild<\/code>. A profil \u00e9s az alkalmaz\u00e1s ID \u00f6sszekapcsolj\u00e1k a k\u00f3d\u00e9p\u00edtm\u00e9nyeket, az \u00e1rakat \u00e9s a rendelkez\u00e9sre \u00e1ll\u00e1st, valamint a TestFlight konfigur\u00e1ci\u00f3j\u00e1t, hogy tesztel\u00e9si alkalmaz\u00e1sokat terjeszthess\u00fcnk a felhaszn\u00e1l\u00f3k k\u00f6z\u00f6tt. Ne csin\u00e1lj nyilv\u00e1nos tesztel\u00e9st, ha van egy kis csoportod, elegend\u0151 a mag\u00e1n tesztel\u00e9s, ha egyszer\u0171 a be\u00e1ll\u00edt\u00e1s \u00e9s nem ig\u00e9nyel plusz enged\u00e9lyt az Apple-t\u0151l.<\/p>\n<p><\/p>\n<h3 id=\"profil-inicializacii\">Inicializ\u00e1l\u00f3 profil<\/h3>\n<p><\/p>\n<p>Az alkalmaz\u00e1s be\u00e1ll\u00edt\u00e1sa mellett sz\u00fcks\u00e9g van az Apple Developer Console-ban a Certificates, Identifiers &amp; Profiles (Tan\u00fas\u00edtv\u00e1nyok, azonos\u00edt\u00f3k \u00e9s profilok) alatt l\u00e9trehozott iOS terjeszt\u00e9si \u00e9s fejleszt\u00e9si kulcsokra is. Mindezek a tan\u00fas\u00edtv\u00e1nyok egyes\u00edthet\u0151k egy inicializ\u00e1l\u00f3 profilban.<\/p>\n<p><\/p>\n<p>Azok a felhaszn\u00e1l\u00f3k, akik azonos\u00edt\u00e1st v\u00e9geznek, k\u00e9pesek kell, hogy legyenek tan\u00fas\u00edtv\u00e1nyokat l\u00e9trehozni, k\u00fcl\u00f6nben a <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fastlane.tools\/codesigning\/getting-started\/#using-cert-and-sigh\">cert \u00e9s sigh<\/a><\/noindex> l\u00e9p\u00e9sekn\u00e9l hib\u00e1t fogsz l\u00e1tni.<\/p>\n<p><\/p>\n<h3 id=\"drugie-varianty\">Egy\u00e9b lehet\u0151s\u00e9gek<\/h3>\n<p><\/p>\n<p>Ezen egyszer\u0171 m\u00f3dszer mellett m\u00e1s lehet\u0151s\u00e9gek is vannak a tan\u00fas\u00edtv\u00e1nyok \u00e9s profilok be\u00e1ll\u00edt\u00e1s\u00e1ra. Teh\u00e1t, ha m\u00e1s m\u00f3don dolgozol, lehet, hogy \u00e1t kell \u00e9p\u00edtened a folyamatot. A legfontosabb - sz\u00fcks\u00e9ged lesz egy konfigur\u00e1ci\u00f3ra <code>.xcodebuild<\/code>, amely a megfelel\u0151 f\u00e1jlokra mutat, \u00e9s a kulcstart\u00f3nak el\u00e9rhet\u0151nek kell lennie a build g\u00e9pen annak a felhaszn\u00e1l\u00f3nak a nev\u00e9ben, akinek a neve alatt a futtat\u00f3 m\u0171k\u00f6dik. A digit\u00e1lis al\u00e1\u00edr\u00e1shoz a fastlane-t haszn\u00e1ljuk, \u00e9s ha probl\u00e9m\u00e1k vannak, vagy t\u00f6bbet szeretn\u00e9l tudni, n\u00e9zd meg a r\u00e9szleteiket. <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fastlane.tools\/codesigning\/getting-started\/\">digit\u00e1lis al\u00e1\u00edr\u00e1sokr\u00f3l sz\u00f3l\u00f3 dokument\u00e1ci\u00f3<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Ebben a p\u00e9ld\u00e1ban egy megk\u00f6zel\u00edt\u00e9st haszn\u00e1lok <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fastlane.tools\/codesigning\/getting-started\/#using-cert-and-sigh\">cert \u00e9s sigh<\/a><\/noindex>, de val\u00f3di alkalmaz\u00e1s eset\u00e9n tal\u00e1n jobb, ha ink\u00e1bb <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fastlane.tools\/codesigning\/getting-started\/#using-match\">match<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h2 id=\"podgotovka-gitlab-i-fastlane\">GitLab \u00e9s fastlane el\u0151k\u00e9sz\u00edt\u00e9se<\/h2>\n<p><\/p>\n<h3 id=\"podgotovka-ci-runner\">CI Runner el\u0151k\u00e9sz\u00edt\u00e9se<\/h3>\n<p><\/p>\n<p>Miut\u00e1n \u00f6sszegy\u0171jt\u00f6tt\u00fck ezeket az adatokat, \u00e1tt\u00e9r\u00fcnk a GitLab runner konfigur\u00e1l\u00e1s\u00e1ra MacOS eszk\u00f6z\u00f6n. Sajnos, iOS alkalmaz\u00e1sokat val\u00f3j\u00e1ban csak MacOS-en lehet fejleszteni. De minden megv\u00e1ltozhat, \u00e9s ha v\u00e1rsz az el\u0151rel\u00e9p\u00e9sekre ezen a ter\u00fcleten, k\u00f6vesd a projekteket, mint p\u00e9ld\u00e1ul <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/facebook\/xcbuild\">xcbuild<\/a><\/noindex> \u00e9s <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/saucelabs\/isign\">isign<\/a><\/noindex>, \u00e9s a bels\u0151 feladatunk <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-ce\/issues\/57576\">gitlab-ce#57576<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>A runner be\u00e1ll\u00edt\u00e1sa nagyon egyszer\u0171. K\u00f6vesd a legfrissebb <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.gitlab.com\/runner\/install\/osx.html\">GitLab Runner be\u00e1ll\u00edt\u00e1si \u00fatmutat\u00f3it macOS-re<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Megjegyz\u00e9s: A runnernek haszn\u00e1lni kell egy futtathat\u00f3 programot <code>shell<\/code>. Ez elengedhetetlen az iOS \u00e9p\u00edtkez\u00e9shez MacOS-en, hogy k\u00f6zvetlen\u00fcl felhaszn\u00e1l\u00f3k\u00e9nt m\u0171k\u00f6dj\u00f6n, ne kont\u00e9nerek seg\u00edts\u00e9g\u00e9vel. Ha te <code>shell<\/code>, az \u00e9p\u00edt\u00e9s \u00e9s tesztel\u00e9s a runner felhaszn\u00e1l\u00f3jak\u00e9nt, k\u00f6zvetlen\u00fcl a build gazd\u00e1n zajlik. Ez nem olyan biztons\u00e1gos, mint a kont\u00e9nerek, ez\u00e9rt \u00e9rdemes \u00e1tn\u00e9zni a <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.gitlab.com\/runner\/security\/#usage-of-shell-executor\">biztons\u00e1gi dokument\u00e1ci\u00f3t<\/a><\/noindex>, hogy ne hagyj ki semmit.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">sudo curl --output \/usr\/local\/bin\/gitlab-runner https:\/\/gitlab-runner-downloads.s3.amazonaws.com\/latest\/binaries\/gitlab-runner-darwin-amd64\nsudo chmod +x \/usr\/local\/bin\/gitlab-runner\ncd ~\ngitlab-runner install\ngitlab-runner start<\/code><\/pre>\n<p><\/p>\n<p>Az Apple kulcsk\u00f6tetet be kell \u00e1ll\u00edtani ezen a gazd\u00e1n, hogy hozz\u00e1f\u00e9rjen a kulcsokhoz, amelyekre sz\u00fcks\u00e9g van az Xcode k\u00e9sz\u00edt\u00e9s\u00e9hez. A legegyszer\u0171bb m\u00f3d ezt tesztelni, ha bejelentkezel, mint az a felhaszn\u00e1l\u00f3, aki elind\u00edtja az \u00e9p\u00edt\u00e9st, \u00e9s megpr\u00f3b\u00e1lsz manu\u00e1lisan \u00e9p\u00edteni. Ha a rendszer k\u00e9r hozz\u00e1f\u00e9r\u00e9st a kulcsk\u00f6tetet, v\u00e1laszd a 'Mindig enged\u00e9lyez' opci\u00f3t, hogy a CI m\u0171k\u00f6dj\u00f6n. Lehet, \u00e9rdemes bejelentkezni \u00e9s figyelni az els\u0151 p\u00e1r pipeline-t, hogy megbizonyosodj r\u00f3la, hogy m\u00e1r nem k\u00e9rik a kulcsk\u00f6tetet. Gond, hogy az Apple nem egyszer\u0171s\u00edti meg a munk\u00e1t automatikus \u00fczemm\u00f3dban, de amikor be\u00e1ll\u00edtod, minden rendben lesz.<\/p>\n<p><\/p>\n<h3 id=\"fastlane-init\">fastlane init<\/h3>\n<p><\/p>\n<p>A fastlane haszn\u00e1lat\u00e1hoz a projektben futtass <code>fastlane init<\/code>. Csak k\u00f6vesd <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fastlane.tools\/getting-started\/ios\/setup\/\">a fastlane telep\u00edt\u00e9si \u00e9s futtat\u00e1si \u00fatmutat\u00f3j\u00e1t<\/a><\/noindex>, k\u00fcl\u00f6n\u00f6sen a <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fastlane.tools\/getting-started\/ios\/setup\/#use-a-gemfile\">Gemfile<\/a><\/noindex>-re, mert gyors \u00e9s kisz\u00e1m\u00edthat\u00f3 ind\u00edt\u00e1sra van sz\u00fcks\u00e9g\u00fcnk az automatikus CI vezet\u00e9ken.<\/p>\n<p><\/p>\n<p>A projekt mapp\u00e1ban futtasd ezeket a parancsokat:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">xcode-select --install\nsudo gem install fastlane -NV\n# Alternat\u00edvak\u00e9nt Homebrew haszn\u00e1lat\u00e1val\n# brew cask install fastlane\nfastlane init<\/code><\/pre>\n<p><\/p>\n<p>A fastlane k\u00e9rni fog egy alap konfigur\u00e1ci\u00f3t, majd l\u00e9trehoz egy fastlane mapp\u00e1t a projektben, h\u00e1rom f\u00e1jllal:<\/p>\n<p><\/p>\n<p><strong><code>1. fastlane\/Appfile<\/code><\/strong><\/p>\n<p><\/p>\n<p>Itt semmi bonyolult. Csak ellen\u0151rizd, hogy az Apple ID \u00e9s az alkalmaz\u00e1s ID helyesen van megadva.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">app_identifier(\"com.vontrance.flappybird\") # Az alkalmaz\u00e1s bundle azonos\u00edt\u00f3ja\napple_id(\"your-email@your-domain.com\") # Az \u00d6n Apple email c\u00edme<\/code><\/pre>\n<p><\/p>\n<p><strong><code>2. fastlane\/Fastfile<\/code><\/strong><\/p>\n<p><\/p>\n<p><code>Fastfile<\/code> meghat\u00e1rozza a build l\u00e9p\u00e9seit. Sok be\u00e9p\u00edtett funkci\u00f3t haszn\u00e1lunk a fastlane-nel, \u00edgy itt is minden vil\u00e1gos. L\u00e9trehozunk egy sort, amely megszerzi a tan\u00fas\u00edtv\u00e1nyokat, elv\u00e9gzi a buildet \u00e9s felt\u00f6lti azt a TestFlight-ra. Ha sz\u00fcks\u00e9ges, ezt a folyamatot k\u00fcl\u00f6n feladatokra oszthatja. Minden m\u0171velet (<code>get_certificates<\/code>, <code>get_provisioning_profile<\/code>, <code>gym<\/code> \u00e9s <code>upload_to_testflight<\/code>) m\u00e1r benne van a fastlane-ben.<\/p>\n<p><\/p>\n<p>M\u0171veletek <code>get_certificates<\/code> \u00e9s <code>get_provisioning_profile<\/code> kapcsol\u00f3dnak a jogosults\u00e1gi megk\u00f6zel\u00edt\u00e9shez <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fastlane.tools\/codesigning\/getting-started\/#using-cert-and-sigh\">cert \u00e9s sigh<\/a><\/noindex>. Ha \u00d6n a <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fastlane.tools\/codesigning\/getting-started\/#using-match\">match<\/a><\/noindex> vagy b\u00e1rmi m\u00e1st haszn\u00e1l, m\u00f3dos\u00edtsa.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">default_platform(:ios)\n\nplatform :ios do\n  desc \"Alkalmaz\u00e1s buildel\u00e9se\"\n  lane :flappybuild do\n    get_certificates\n    get_provisioning_profile\n    gym\n    upload_to_testflight\n  end\nend<\/code><\/pre>\n<p><\/p>\n<p><strong><code>3. fastlane\/Gymfile<\/code><\/strong><\/p>\n<p><\/p>\n<p>Ez opcion\u00e1lis f\u00e1jl, de manu\u00e1lisan hoztam l\u00e9tre, hogy megv\u00e1ltoztassam az alap\u00e9rtelmezett kimeneti mapp\u00e1t, \u00e9s a kimenetet a jelenlegi mapp\u00e1ba helyezzem. Ez egyszer\u0171s\u00edti a CI-t. Ha ez \u00e9rdekli, olvasson a <code>gym<\/code> \u00e9s annak param\u00e9tereir\u0151l a <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fastlane.tools\/actions\/gym\/\">dokument\u00e1ci\u00f3<\/a><\/noindex>.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">https:\/\/docs.fastlane.tools\/actions\/gym\/<\/code><\/pre>\n<p><\/p>\n<p>CMS&nbsp;t\u00e1rhely\u00fcnk <strong><code>.gitlab-ci.yml<\/code><\/strong><\/p>\n<p><\/p>\n<p>Teh\u00e1t van CI-futtat\u00f3nk a projekthez, \u00e9s k\u00e9szen \u00e1llunk a pipeline tesztel\u00e9s\u00e9re. N\u00e9zz\u00fck meg, mi van a <code>.gitlab-ci.yml<\/code>:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">stages:\n  - build\n\nvariables:\n  LC_ALL: \"en_US.UTF-8\"\n  LANG: \"en_US.UTF-8\"\n  GIT_STRATEGY: clone\n\nbuild:\n  stage: build\n  script:\n    - bundle install\n    - bundle exec fastlane flappybuild\n  artifacts:\n    paths:\n    - .\/FlappyBird.ipa<\/code><\/pre>\n<p><\/p>\n<p>Minden rendben van! <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fastlane.tools\/getting-started\/ios\/setup\/#set-up-environment-variables\">Az UTF-8 form\u00e1tumot \u00e1ll\u00edtjuk be a fastlane-re, ahogy kell,<\/a><\/noindex>, clone strat\u00e9gi\u00e1t haszn\u00e1lva <code>clone<\/code> a futtat\u00f3programmal <code>shell<\/code>, hogy legyen egy tiszta munkater\u00fclet minden build sz\u00e1m\u00e1ra, \u00e9s egyszer\u0171en megh\u00edvjuk a <code>flappybuild<\/code> fastlane-t, ahogy fent l\u00e1that\u00f3. V\u00e9g\u00fcl kapunk egy buildet, al\u00e1\u00edr\u00e1st \u00e9s az utols\u00f3 buildet a TestFlight-ba telep\u00edtj\u00fck.<\/p>\n<p><\/p>\n<p>Kapunk egy artefaktumot is, \u00e9s megtartjuk a builddel. Ne feledje, hogy a form\u00e1tum <code>.ipa<\/code> \u2014 ez egy ARM al\u00e1\u00edrt futtathat\u00f3 f\u00e1jl, ami nem futtathat\u00f3 emul\u00e1torban. Ha szeretne kimenetet az emul\u00e1torhoz, egyszer\u0171en adjon hozz\u00e1 egy build c\u00e9lpontot, amely azt el\u0151\u00e1ll\u00edtja, majd kapcsolja be az artefaktum \u00fatvonal\u00e1ba.<\/p>\n<p><\/p>\n<h3 id=\"drugie-peremennye-sredy\">Egy\u00e9b k\u00f6rnyezeti v\u00e1ltoz\u00f3k<\/h3>\n<p><\/p>\n<p>Itt van n\u00e9h\u00e1ny k\u00f6rnyezeti v\u00e1ltoz\u00f3, ami mindent m\u0171k\u00f6dtet.<\/p>\n<p><\/p>\n<p><strong><code>FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD<\/code><\/strong> \u00e9s <strong><code>FASTLANE_SESSION<\/code><\/strong><\/p>\n<p><\/p>\n<p>Az App Store-hoz val\u00f3 hiteles\u00edt\u00e9shez \u00e9s a TestFlight-ra val\u00f3 felt\u00f6lt\u00e9shez sz\u00fcks\u00e9ges a fastlane hiteles\u00edt\u00e9s. Ehhez hozzon l\u00e9tre egy alkalmaz\u00e1s jelsz\u00f3t, amelyet CI-ben haszn\u00e1lunk. R\u00e9szletek <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fastlane.tools\/best-practices\/continuous-integration\/#use-of-application-specific-passwords-and-spaceauth\">itt<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Ha k\u00e9tfaktoros hiteles\u00edt\u00e9st haszn\u00e1l, hozzon l\u00e9tre egy v\u00e1ltoz\u00f3t, <code>FASTLANE_SESSION<\/code> (utas\u00edt\u00e1sok ott tal\u00e1lhat\u00f3k).<\/p>\n<p><\/p>\n<p><strong><code>FASTLANE_USER<\/code><\/strong> \u00e9s <strong><code>FASTLANE_PASSWORD<\/code><\/strong><\/p>\n<p><\/p>\n<p>Ahhoz, hogy <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fastlane.tools\/codesigning\/getting-started\/#using-cert-and-sigh\">cert \u00e9s sigh<\/a><\/noindex> k\u00e9rte a profil inicializ\u00e1l\u00e1s\u00e1t \u00e9s a tan\u00fas\u00edtv\u00e1nyokat ig\u00e9ny szerint, meg kell adnia a v\u00e1ltoz\u00f3kat. <code>FASTLANE_USER<\/code> \u00e9s <code>FASTLANE_PASSWORD<\/code>R\u00e9szletek <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fastlane.tools\/best-practices\/continuous-integration\/#environment-variables-to-set\">itt<\/a><\/noindex>. Ez nem sz\u00fcks\u00e9ges, ha m\u00e1s al\u00e1\u00edr\u00e1si m\u00f3dszert haszn\u00e1l.<\/p>\n<p><\/p>\n<h3 id=\"v-zaklyuchenie\">V\u00e9g\u00fcl<\/h3>\n<p><\/p>\n<p>N\u00e9zd meg, hogyan m\u0171k\u00f6dik mindez <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/jlenny\/flappyokr\">az \u00e9n egyszer\u0171 p\u00e9ld\u00e1mban<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Rem\u00e9lem, hasznos volt, \u00e9s inspir\u00e1ltalak, hogy foglalkozz az iOS buildjeivel a GitLab projektben. \u00cdme m\u00e9g n\u00e9h\u00e1ny <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fastlane.tools\/best-practices\/continuous-integration\/\">tipp a CI-hez<\/a><\/noindex> a fastlane-hez, h\u00e1tha szeretn\u00e9d haszn\u00e1lni <code>CI_BUILD_ID<\/code> (increment\u00e1lis buildekhez), hogy <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fastlane.tools\/best-practices\/continuous-integration\/gitlab\/#auto-incremented-build-number\">automatikusan n\u00f6velje a verzi\u00f3t<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>M\u00e9g egy nagyszer\u0171 lehet\u0151s\u00e9g a fastlane-ben \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fastlane.tools\/getting-started\/ios\/screenshots\/\">automatikus k\u00e9perny\u0151k\u00e9pek<\/a><\/noindex> az App Store sz\u00e1m\u00e1ra, amelyeket nagyon k\u00f6nny\u0171 be\u00e1ll\u00edtani.<\/p>\n<p><\/p>\n<p>Oszt meg a tapasztalataidat a megjegyz\u00e9sekben, \u00e9s osszd meg az \u00f6tleteidet a GitLab iOS alkalmaz\u00e1sfejleszt\u00e9s\u00e9nek fejleszt\u00e9s\u00e9re.<\/p>\n<p>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/444170\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u0430\u043a GitLab \u0441 fastlane \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442, \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f iOS \u0432 App Store. \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u0443 \u043d\u0430\u0441 \u0431\u044b\u043b \u043f\u043e\u0441\u0442 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0431\u044b\u0441\u0442\u0440\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 Android \u0441 GitLab \u0438 fastlane. \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c, \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 iOS \u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 TestFlight. \u0417\u0430\u0446\u0435\u043d\u0438\u0442\u0435, \u043a\u0430\u043a \u043a\u0440\u0443\u0442\u043e \u044f \u0432\u043d\u043e\u0448\u0443 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 iPad Pro [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":42202,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-42201","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u0430\u043a GitLab \u0441 fastlane.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/publikuem-prilozheniya-ios-v-app-store-s-gitlab-i-fastlane\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f iOS \u0432 App Store \u0441 GitLab \u0438 fastlane | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u0430\u043a GitLab \u0441 fastlane.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/publikuem-prilozheniya-ios-v-app-store-s-gitlab-i-fastlane\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-03-17T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T10:45:01+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47iOS alkalmaz\u00e1sok k\u00f6zz\u00e9t\u00e9tele az App Store-ban a GitLab \u00e9s a fastlane seg\u00edts\u00e9g\u00e9vel | ProHoster","description":"Hogyan haszn\u00e1lja a GitLab a fastlane-t.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/publikuem-prilozheniya-ios-v-app-store-s-gitlab-i-fastlane","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f iOS \u0432 App Store \u0441 GitLab \u0438 fastlane | ProHoster","og:description":"\u041a\u0430\u043a GitLab \u0441 fastlane.","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/publikuem-prilozheniya-ios-v-app-store-s-gitlab-i-fastlane","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-03-17T21:00:00+00:00","article:modified_time":"2020-02-18T10:45:01+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"42201","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 07:36:23","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:23:50","updated":"2026-01-22 07:36:23","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/42201","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=42201"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/42201\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/42202"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=42201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=42201"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=42201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}