Xcode工作区ile Birden Fazla Proje Kurulumu

在Xcode工作区中,可以在iOS上下载和下载iOS上的应用程序。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 iOS发行版,macOS,tvOS发行版,发行版,发行版,发行版,发行版,发行版,发行版和发行版。

Pekiamaçnedir?

  • Buyaklaşımmodülerdüşünmenizisağlar。 Projenizi birden fazlamodüleayırmanızdaha iyiarayüzlerve sorumluluklartasarlamanızısağlar。
  • 她的模范比尔·乌尔卡·奥兰卡多·丹莱她的比林宁·肯迪测验·塞拉莱·奥拉克·科维奇·测验·萨曼·卡曼·曼萨奇·萨莱亚卡克。
  • Birbaşkafayda ise yenidenkullanılabilirlik。 她的模样很漂亮。 Bu da bize下摆Geliştirmesürecinde下摆debakımsürecindezamankazandırır。

BuanlatımımdaXcode 9.3kullandım。 Bu versiyonda eski versiyonlarakıyaslaçokufak bir fark var ve bufarkıyerigeldiğindebelirteceğim。 Eski versiyonlardan birinikullanıyorsanızyine de takip edebilirsiniz。

哈迪başlayalım!

工作空间

Bos bir工作区oluşturarakbaşlıyoruz。 Xcode File工作区中工作,在工作区中工作。

肯迪西的工作区。

Yine Xcode’un File menüsünükullanıyoruz。 BumenüdenProjectseçtiğimizzamanaşağıdakiekranıgörüyoruz。

Tam olarak bu noktada yenioluşturduğumuzprojeyi,biröncekiadımdaoluşturduğumuzboşworking’e ekliyoruz。 Projeyibaşkabir dizinde kaydetmek yerine,dizinseçimiekranınınaltkısmındaki Add to列表Add to工作区’imiziseçiyoruz。 不可以,不可以在halihazırdaaçıkolmasıgerekiyor中找到“ imizigörebilmemiziçin工作区”列表。

Bu noktada elimizde neler var birbakalım。 Bir工作区’imiz var ve bu工作区’te bir projemiz var。 可以在iOS uygulama上进行测试,在bir测试ve上进行UI测试ürünlerimizvar(“目标” daha isabetlinasılTürkçe’yeçevrilirbilen varsapaylaşsınlütfen😅)。 Projemiziworkspace’e ekledikten sonrauygulamamızınşemasınıneklendiğinide solüsttengörebilirsiniz。 workspace,工作区olduğunubilmesek aradakifarkısöyleyemeyiz。

框架projesini ekleme

Workspace’imize birbaşkaproje daha ekleyerekgerçekten工作区gibigörünmesinisağlayalım。 Uygulama projesini eklerkenizlediğimizadımlarınaynısınıizleyeceğiz。 Tek fark,uygulamadeğil框架projesi eklememiz。

Workspace’imiziseçtikten声音,Xcode下摆uygulama projemizin dizinini,下摆工作区dosyamızı,下边框架projemizin dizininiaynıdizinaltındayan yanakoymuşolacak。 Create diyerekaşağıdakiekranadönüyoruz。

Burada AwesomeAPIClient可以static删除tanymlayarak’singleton’yaptık。 声呐testRunadındabir fonksiyontanımladık。 下摆sınıfı,下摆değişkeni,下摆de fonksiyonu public tanımladığımızadikkat edelim。 AwesomeAPI框架,然后AwesomeAPI框架。请使用public API框架。

Framework’üuygulamamızilebağlama

Uygulamatarafınageçelimveframework’ümüzükullanalım。

可能是“框架”(链接)。 Fakat bununla beraber框架(嵌入)。 您可以说bir framework gibi kendiframework’ümüzükullanabilecek。

Framework’ümüzünsoldaki项目导航员,爱丁堡。 YazımınbaşındabelirttiğimXcode 9.3 ve eskisürümlerfarkıtam olarak burada。 Xcode,eskiversiyonlarında,其他工作区içerisindekibirframework’übiröncekiadımdakigibi Embedded Binaries olanak vermiyordu。 Xcode 9.3版本的工作区格式文件将在工作区Project Format显示( Project Format会显示)。

Maalesef Xcodebütüngüzellikleriaynıand vermiyor ¯\_(ツ)_/¯ 。 开发者框架框架涉及到框架参考。 Projeyesağtıklayıp New Group without Folder更多信息grupiçerisineframework’ümüzüsürüklemeyideneyin veaynıReferanstan bir tane dahaoluşturacağınıgöreceksiniz。 Üstelikbu yenireferansbağladığımızvegömülüolmasınıbelirttiğimizreferansla daaynıdeğil。

Ebener gibi obsesiftakıntılıdeğilsenizve’ben buşekildede idare ederim’diyorsanızbuşekildebırakabilirsiniz。 Ama projeniz dahadüzenliolsunistiyorsanız,eskiusüleklememiz gerekiyor。 Eğerdüzenliyoluseçiyorsanızönceliklebu yerindenoynatamadığımızreferansımızasağtıklayınve silin。 通用框架Embedded Binaries Linked Frameworks and Libraries listelerinden de silinmesine sebep olacak ama birazdan tekrarekleyeceğiz。 计划New Group without Folder (默认为Vendor isminikullanıyorum)。 Sonra bu grupiçerisine框架projemizi( AwesomeAPI )sürükleyipbırakın。 Aşağıdakiekranıgörüyoruz。

Listeye dikkat edersenizaynıframework’üniki kerelistelendiğinigöreceksiniz。 您可以在iOS或iOS上轻松完成工作。 Biz ikincisiniseçiyoruzve bu sayede ekstra bir Referanseklenmemişoluyor。

2019年05月17日

Xcode 10.2.1Güncellemesi

Yukarıdabahsettiğimsıkıntıtam olarak hangi versiyondaçözüldübilmiyorum fakatyakınzamanda Xcode 10.2.1 versiyonu iledenediğimdeartıkprojeninaltındakidiğerprojeReferansınagerekkalmadı。 Ayrıcaprojeninyapısınıdüzenlitutmak damümkün。

Yukarıdakiekrangörüntüsünde供应商grubununboşolduğunadikkat edin。 Yaniiçiçe引用ettiğimizprojemizsilinmişdurumda。 AynızamandaAwesomeAPI.framework’üiçinde birreferansımızvar。 Yukarıdabahsettiğimadımlarıtakip ettikten sonra tekyapmamızgereken,eklenen框架referansınıdilediğimizbir gruba⌘ 命令 tuşunabasılıtutarkensürükleyipbırakmak。 Bu detayönemli,çünküeğer⌘命令tuşunukullanmazsaksürüklediğimiz推荐了kopyalanmışolacak(aslındayukarıdakiprobleminaynısı)。

Düzgünbirreferansımızolduğusürecegeri kalan herşeyaynıolmalı。 Makalenindevamındaiçeeklenmişprojelerigöreceksinizfakat hangi yolu kullanarak entegreettiğinizdenbağımsız,alacağınızsonuçlaraynıolacaktır。

测试sürüşüneçıkalım

她的yoeyda gidiyor。 Bu noktaya kadar beni takip ettiyseniz projedüzeninizinaşağıdakiekrandaki gibiolmasıgerekiyor。 Şimdiframework’ümüzüuygulamamızdakullanma vakti! Taslak olarak gelen ViewController可以添加到gibidüzenliyoruz。

Çalışmaortamımızıdüzenlitutmakiçin, Vendor adındaayrıbir dizinoluşturup迦太基kullanımımızıbu diziniçinesınırlamamıziyi bir fikirolacaktır。 Bu diziniçerisindeCartfileadındabir dosyaoluşturuyoruz。

Vendor/Carthage/Build/iOS dizininde yeniderlenmiş, Alamofire.framework 。 Buframework’übasitçe突出了sürükle-bırakyaparak ekleyebiliriz。

测试sürüşümüzübir sonraki seviyeyeçıkaralım

AwesomeAPIClient edelim ve testRun fonksiyonumuzaörnekbir istek ekleyelim。

Bu girdide Xcode’a projemizinkulladığıframework’leriaramasınıistediğimizdizini belirtiyoruz。 Birden fazla dizin belirtebiliyoruz。 Ayrıcaçeşitlikonfigürasyonlar(调试,发布gibi)在farklıdizinler de belirtebiliyoruz中。 Fakat biz hepsiiçinaynıdizini belirtmekistediğimiziçingirdiyeçifttıklayarakCarthage’ınframework’ümüzüsakladığıdizinin yolunu giriyoruz。

ŞimditestRun fonksiyonumuzaörnekisteğimiziekleyelim。

Buradaçokbasit bir test ekledik。 Fakat bu noktadayapmamızgereken birşeydaha var。 Testlerimiziçalıştıranbirimaslındaframework’( AwesomeAPITests )。 O yzzden Alamofire buürüneeklememiz gerekiyor。 Bütünbuişlerçetrefilligelebilir amainanındeğil。 Kısasüredebuadımlarıkavrayıpmantığınıçözersenizgözünüzkapalıyapar hale gelirsiniz。 您可以在bukurulumu bi projeiçinen fazla bir kereyapacaksınız中找到自己的名字。 Sonrasındagetirdiğiavantajlarbütünbu zaman ve eforyatırımınızadeğmişolacak。

瞧!

超! 哈迪·乌古拉玛达·达库拉纳勒姆

ViewController可能会影响到视图控制器。 Gilmedimyseniz de ilk derlemegirişiminizdegöreceksiniz。 😅

运行测试testRun运行测试程序。运行测试程序。 testRun fonksiyonu zaten print çağrılarına船。 Oyüzdenbu fonksiyonuuygulamamızçağırdığızamanisteğimizbaşarılıolursa konsoldaçinektölarıyinegöreceğiz。

从Alwefire AwesomeAPI Alamofire AwesomeAPI, AwesomeAPI Alamofire框架。 Herhangi bir framework birbaşkaframework’ükendiiçerisinegömülüyapamadığıiçin,uygulamamızınikisini de beraberinde getirmesinisağlayacağız。

AwesomeAPI框架,将Alamofire引入Birazfarklıbirişlemyapacağız。 Buradaki detayşu, Alamofire derlemekiçin迦太基kullanmıştık。 您可以在Alamofire框架中使用bizimkullandığımızveyakullanmadığımızbirden fazla mimariye destek veriyor。 iOS模拟器(i386)和BundleçeşitliiOScihazları(arm64,armv7 ve armv7s)。 框架是她的书架,是她的书架(slice)。 Bunlarınhepsiniuygulamamızadahil etmemizde kesinliklehiçbirsıkıntıyok。 Uygulamamızbeklediğimizşekildeçalışacaktır。 Sadece herhangi bir iOScihazındakullanamayacağımızekstra bir mimari(i386)从birparçabulundurmuşolacağız。 Fakat bu hamleuygulamamızıApp Store’agönderirkenbirsıkıntıyasebep olacak。 iTunes Connect可以在bulundurduğumuzparçalarıçıkarmamızıisteyecek中运行。 Bu noktada yine迦太基比兹院子里edecek。

您可以在“框架”列表中找到所需的Frameworks

瞧! zh-cnbeklediğimizkonsolçıktısı!

苏努克

listedimdiye kadaryaptıklarımızıufak bir listinge derlemek istersek:

  • Bos bir Xcode工作区
  • iOS的工作区和工作区的“ imize ekledik”
  • Framework’ümüziçinde bir projeoluşturdukve bunu da工作区’imize ekledik
  • Yenioluşturduğumuzframework’ümüzüuygulamamızabağladıkvegömülüolmasınıayarladık
  • Carthage ile Alamofireframework’ünüindirip derledik
  • Alamofire框架’ükendi框架’ümüzebağlayıpkullandık
  • Alamofire框架’ünyuygulamamızagömülüolmasınıayarladık

Buşekildeistediğinizkadar birbirindenayrıprojeleroluşturabilirsinizvebunlarınbirbirini veyauygulamanızınhepsinikullanmasınısağlayabilirsiniz。 Alamofire gibibirçokharici框架ekleyebilirsiniz。 Bu harici framework’leri bir veya daha fazlaframework’ünüzveyauygulamanızkullanabilir。 亚妮(Yani)istediğinizçeşitliliktebirdüzenoluşturabilirsiniz。

Kendioluşturduğunuzframework’lerinizidiğerprojelerinizde de kullanabilirsiniz。 Hatta kendi框架’Carthage veya git子模块kullanarakdiğerprojelerinizin工作区’lerine ekleyebilirsiniz。 Carthage ile kendi framework’lerinizi eklerseniz,framework’leriniz halihazırdaderlemişolacağıiçinuygulamanızıntestlerinizesnasındadahakısasüredederlenmesini desağlayabilirsiniz。 Birden fazla projemizinolmasınınbirdiğeravantajıise herhangi bir birimdeyaptığımızdeğişiklikiçinprojemizinbütüntestleriniçalıştırmamızgerekmiyor。 她的birimin kendi testleriayrıayrıçalıştırılabilirhalde oluyor。 Buşekildebirdüzenoldukçaesnekliksağlıyorve birçokgetirisi var。

Yazıboyuncaoluşturduğumörnekprojeyi burada bulabilirsiniz。