Lansați aplicații ios din consola dispozitivului și simulatorului

Lansăm aplicații iOS din consola dispozitivului și simulatorul +12

- la fel ca Forbes, doar mai bine.

Articolul va descrie pe scurt cum să construiască o aplicație cu comenzi de consola și să ruleze pe un dispozitiv real și simulator fără a fi nevoie să deschideți xcode pentru aceasta.

În general, merită să începem cu faptul că firma mea are un departament de dezvoltare iOS format din> 10 persoane care lucrează la un pachet de aplicații. Pentru automatizarea muncii de rutină, am avut de a disloca server de CI (până la samopisny, din motive istorice speciale (bine, ca noi toți), migrația planificată a) Jenkins. Pentru lucrurile de rutină vreau să spun - asamblarea de proiecte, lansarea de teste (dacă, desigur, le scrieți), crearea de Ipasks pentru testeri și pentru magazinul de aplicații. În general, aș dori să pot face clic pe butonul sau pe cârligul din gita. În timp ce lucrăm cu toții la apăsarea unui buton de către dezvoltator, este doar în planurile pentru moment. În acest articol, mă voi referi doar la subiectul compilării unui proiect și al ambalării într-un fișier ipa. Funcționalitatea lansării proiectelor pe dispozitivele de pe partea serverului CI este încă în curs de dezvoltare, dar procesul de ambalare însăși a fost mult timp în "luptă", poate cineva să vină la îndemână.

  • compilați aplicația și rulați pe simulator
  • colectați ipa și rulați pe un dispozitiv real
  • noi colectăm ipa pentru stabilirea pentru piață
  • se creează o mică eroare de subansamblu

Avem:
  • OS X 10.10.5
  • Xcode 7.1

Pentru frecvența experimentului vom folosi o aplicație terță parte pentru ca cititorii dragi să poată repeta ceea ce este descris în articol. Folosim aplicația de testare pentru framework-ul Framework ResearchKit cu cadru open-source.

Înainte de a compila proiectul, trebuie să instalați generatorul de documente applet github.com/tomaz/appledoc (există o descriere a modului de instalare a acestuia).
Trecem la proiectul descărcat. Proiectul rădăcină este framework-ul ResearchKit în sine, aplicația de testare în sine este localizată în altă parte, mergeți acolo:


Încercăm să compilam aplicația. Colectăm sub simulator, pentru că pentru a construi proiectul în cadrul simulatorului, nu sunt necesare certificate / fișiere.

Construcția este în jos, deoarece nu există nicio schemă ORKCatalog. Având în vedere că schema în proiectul inițial nu a fost marcat ca fiind partajata, după „scurgere“ din Gita, Xcode nu știe nimic despre această schemă că el este bullfinches ei, trebuie doar pentru a deschide proiectul. Deci, deschideți proiectul:


Și imediat închideți, după ce schema noastră apare, puteți verifica schema prin lista xcodebuild. Încercați să colectați din nou:


După ce a văzut mult așteptatul ** BUILD SUCCEEDED **. Mare, funcționează.

Rulați proiectul pe simulator


Compilam sub simulator, arhitectura poate fi i386 / x86_64. Prin SYMROOT, am stabilit calea rezultatului asamblării:


(Gândire cu voce tare:. Când am scris un articol de compilare în modul de eliberare funcționează, înainte de publicarea articolului verificat încă o dată toți pașii și compilarea în acest mod a încetat să funcționeze, astfel încât să colecteze în Debuger, unele dintre cele mai recente comite este rupt)

După construirea cu succes, am primit fișierul ORKCatalog.app în build / Debug-iphonesimulator /. Rămâne să o executați pe simulator. Pentru a face acest lucru, vom folosi utilitarul ios-sim github.com/phonegap/ios-sim. Pentru ao folosi este destul de simplă.

Obțineți o listă a simulatoarelor disponibile:


Lansați aplicații ios din consola dispozitivului și simulatorului

Din listă am ales "iPhone-6-Plus". Rulați aplicația pe ea:


Dacă totul se face corect, atunci simulatorul cu aplicația ar trebui să înceapă (pentru a intra în modul de intrare în consolă utilizați ctrl + C).

Lansați aplicații ios din consola dispozitivului și simulatorului

Crearea unui fișier ipa și rularea pe un dispozitiv real


Colectăm arhiva sub dispozitiv (arhitecturile arm64 / armv7):


Compilația va scădea, din moment ce nu am scris încă codul dvs. de pachet în aplicație și nu a legat mobileprovision, eroarea va arăta astfel:

Vom trimite id-ul pachetului din consola + trebuie să îl înregistrăm în fișierul Info.plist. De asemenea, prin consola vom transfera link-ul către telefonul mobil. fișier Plist este pe drum ORKCatalog / fișiere de suport / Info.plist, în cazul în care pentru a expune CFBundleIdentifier valoare-cheie ru.habrahabr.test. Codul Bundle este trecut prin cheia cu valoarea id-ului nostru PRODUCT_BUNDLE_IDENTIFIER = en.habrahabr.test. Legătura către mobileprovision este transmisă prin intermediul cheii PROVISIONIG_PROFILE, cu valoarea UUID, care este înregistrată în mobileprovision.


Valoarea va fi similară cu valoarea 87b0df89-793a-4a0f-92bf-c5f9c35f1405. Din nou, colectăm:


Încercați să colectați ipa:


Construieste toamna, jurnalele pot fi intelese ca ceva cu drepturi:

Din greșeală, este clar că aplicația este semnarea drepturilor, valorile în care nu se potrivesc cu valorile din mobileprovisionul nostru, și anume com.apple.developer.healthkit. Căutăm motivul. Vedeți ce drepturi este semnată:


Vedem că totul este bine, cu excepția următoarelor:


La noi în mobileprovision nu există această opțiune, este necesar să aflăm de unde sa angajat:


Căutați-ne emise ORKCatalog / Supporitng Files / ORKCatalog.entitlements. Priviți în interior:


Există doar un singur înțeles:


Conform logicii necesare pentru a replanta mobileprovision, pe care doriți să adăugați această valoare, dar suntem leneși și pentru testul nu este necesar, doar avem nevoie de a re-semna cererea cu drepturi fără această valoare.

Avem cel puțin două opțiuni:

1. Modificați pur și simplu drepturile existente (ORKCatalog / Supporitng Files / ORKCatalog.entitlements) și re-compilați (prin arhivă).
2. Fără refacerea, redăm ORKCatalog.app cu drepturile necesare.

Am ales prima opțiune ca fiind mai simplă. Prin urmare, din fișierul ORKCatalog / Supporitng Files / ORKCatalog.entitlements ștergem pur și simplu liniile:


și re-compilați arhiva:


După crearea ipa:


Vedem mesajul mult așteptat ** EXPORT SUCCEEDED **. Sub build / dev-ipa / apare fișierul ipa, care va fi instalat pe dispozitiv. Instalarea pe dispozitiv va utiliza ios-deploy github.com/phonegap/ios-deploy. Aducem dispozitivul la mașină, primim ID-ul dispozitivului prin:


Deploim pe dispozitiv:

Colectăm fișierul ipa pentru piață


Tot la fel ca și pentru a dezvolta o versiune, doar link-ul de schimbare la versiunea de presă mobileprovision, în options.plist de dezvoltare în loc să ștampilată app-store (ce alte opțiuni pe care le puteți adăuga un aspect în xcodebuild -help de ajutor).


Fără utilizarea codului xcode, au fost capabili să compileze fișierele ipa pentru teste și pentru evaluare în magazinul de aplicații. Toate acestea pot fi ușor automatizate pe un server CI pentru a ușura viața dezvoltatorilor.

P.S. Este demn de remarcat faptul că procesul de elaborare a aplicațiilor / semn cu structură complexă, în cazul în care mai multe țintă și fiecare necesită propriul fișier mobileprovision separat (cu cererea de prelungire, ceas, încorporate cadru-kami), procedeul de mai sus, fără un fișier nu va funcționa.

Vă puteți ajuta și puteți transfera niște bani la dezvoltarea site-ului

Articole similare