Xcodeビルドシステム高床なチュヌトリアル

画像

Xcodeのプロゞェクト構成は、宇宙船のコントロヌルパネルのように芋えたす。 倚くの堎合、人々はアセンブリシステムの仕組みを理解しおいたすが、甚語を混同しおいたす。 この蚘事では、プロゞェクトの構造、タヌゲット、構成蚭定、ワヌクスペヌスに぀いお説明したす。 行こう



トピックが新鮮であるず蚀っおいない-Appleは2011幎にwwdcでそれをカバヌしたした 。 そしおたた今幎 。

したがっお、新鮮さの蚘事を远加するために、ファッショナブルな技術を䟋えずしお䜿甚したす。 たずえば、Xcodeが食べ物を印刷できる3Dプリンタヌであるずしたす。 そしお、私たちはフヌドサヌビスアりトレットのキッチンずしお䜿甚するこずにしたした。



順番に考えおみたしょう。以䞋で説明したす。

  1. プロゞェクト
  2. 察象
  3. ビルド蚭定
  4. ビルド構成
  5. ワヌクスペヌス




プロゞェクト



たずえば、人々にピザを食べさせたいので、3DプリンタヌPizza.project甚の特別なモゞュヌルを䜜成したす。このモゞュヌルには、抜象的なピザの調理方法に関する情報フォヌム、調理時間、䜿甚可胜な材料などが含たれおいたす。



画像



ドキュメント

プロゞェクトは、゜フトりェア補品の構築に必芁なファむルずリ゜ヌスのリポゞトリです。 プロゞェクトには、補品の構築に䜿甚されるすべおの芁玠が含たれ、これらの芁玠間の関係をサポヌトしたす。 プロゞェクトは、プロゞェクト内のすべおのタヌゲットのデフォルト蚭定を定矩したす。


プロゞェクト機胜




ボンネットの䞋
拡匵子が.xcodeprojのファむルは、フェヌダヌで開いお、Projectが割り圓おられた機胜を実装する方法を確認できるフォルダヌです。

このように

画像

内郚には次のものがありたす。

  1. .Pbxprojファむル。 たれなiOS開発者は、それをフリヌズする必芁はありたせんでした。 これは、プロゞェクトに関するほずんどすべおの情報が含たれおいるため、これが絶えず倉化しおいる巚倧なファむルであるこずを知っおいたす。 ゜ヌスずリ゜ヌスぞのリンク、ファむルグルヌプの説明、タヌゲットのリスト、タヌゲットの䟝存関係、プロゞェクトアセンブリ構成、タヌゲットアセンブリ構成など。 䞀般に、このファむルの機胜ず内郚構造の説明は、別の蚘事に倀したす。
  2. Xcuserdataフォルダヌ。 プロゞェクトの状態開いおいるファむル、遞択されおいるタヌゲットなど、ブレヌクポむント、珟圚のXcodeナヌザヌのスキヌムに関する情報を保存したす。 ただ行っおいない堎合は、このフォルダヌを.gitignorファむルに远加する必芁がありたす。
  3. Xcshareddataフォルダヌ。 名前から掚枬できるように、フォルダヌは、アプリケヌション開発仲間ず共有したい蚭定スキヌムずブレヌクポむントを保存するずいう点で、前のものずは異なりたす。

    • ブレヌクポむントを共有するにはブレヌクポむントナビゲヌタに移動し、共有するブレヌクポむントを右クリックしお、[ブレヌクポむントの共有]をクリックしたす。
    • スキヌムを共有するには、[補品]-> [スキヌム]-> [スキヌムの管理]に移動し、共有するスキヌムの暪にある[共有]列をチェックしたす。


  4. .Xcworkspaceファむル内郚ワヌクスペヌス。




察象



誰も私たちから抜象的なピザを買わないので、特定のピザのいく぀かのモデルを3dプリンタヌに远加でアップロヌドする必芁がありたす。これは、Pizza.projectに基づいお、特定のピザの印刷方法䜿甚可胜な原料の皮類、枩床どんな倧きさであるべきかを調理し続ける。 そのようなモデルがタヌゲットになりたす。



画像



ドキュメント

タヌゲットは、どの補品をビルドするかを正確に決定し、䞀連のワヌクスペヌスファむルたたはプロゞェクトからプロゞェクトをビルドするための指瀺を含みたす。


名前が瀺すように、タヌゲットは、私たちの仕事で私たちが向かっおいる目暙を衚したす。 4぀の軞のうちの1぀、ラむブラリたたはフレヌムワヌク、拡匵機胜たたはりィゞェット、䞀連のテストのいずれかの䞋にあるアプリケヌションです。 Swiftでは、各Xcodeタヌゲットは個別のモゞュヌルずしお提瀺され、パブリックAPIを介しおむンポヌトおよびアクセスできたす。 最も重芁なのは、同じ゜ヌスずリ゜ヌスを䜿甚できる耇数のタヌゲットを同じコヌドベヌスに配眮できるこずです。 最終補品のタむプず、それが動䜜するオペレヌティングシステムに応じお、タヌゲットの責任は異なりたす。

タヌゲットの機胜




タヌゲットに䟝存関係を远加しお、Xcodeが補品のビルド順序を決定できるようにするこずもできたす。 ピザの䟋に戻り、PizzaComboタヌゲットを远加するこずにより、2぀のピザコンボを顧客に提䟛できたす。



画像



スクリヌンショットでわかるように、このために、フレヌムワヌクの圢匏でハワむのピザずマルガリヌタのタヌゲットを䜜成する必芁がありたした。 次に、それらを䟝存関係ずしおPizzaComboタヌゲットに远加するだけで、これらの補品を別の補品内で䜿甚できたす。



画像



ビルド蚭定



適切なピザを䜜るための適切な材料に加えお、3Dプリンタヌはいく぀かの芏則に埓う必芁がありたす。 それらのいく぀かは、䞀般的にピザプロゞェクトに固有のものですたずえば、すべおのピザは同じ圢匏で印刷する必芁がありたす、いく぀かは特定のピザに固有のものですたずえば、ハワむのピザはマルガリヌタずは異なる枩床で調理する必芁があり、そうでなければパむナップルは也燥したす。



ドキュメント

アセンブリのカスタマむズは、アセンブリプロセスの特定の偎面の実行方法に関する情報を含む倉数です。


ビルド蚭定セクションを最初に芋たずき、最初の関連付けは次のずおりでした。



画像



ただし、幞いなこずに、日垞の開発で利甚可胜なすべおの蚭定ずそのキヌを知る必芁はありたせんが、垞に少数しか䜿甚しおいたせん。



各蚭定は、キヌ、倀、および人間が読める圢匏のキヌのタむトルで構成されたすそのため、[ビルド蚭定]タブに収たるようになりたす。



蚭定倀は、プロゞェクトレベルずタヌゲットレベルの䞡方で蚭定できたす。 䞀郚のレベルで蚭定倀が蚭定されおいない堎合、前のレベルの倀を継承したす。



継承は次の順序で実行されたす小さいものから倧きいものぞ。





「ビルド蚭定」セクションの「レベル」ボタンを䜿甚しお、特定の蚭定の倀がXcodeで蚭定されおいるレベルを理解できたす。 緑色は、アセンブリ䞭に蚭定される倀を瀺したす。



画像



ナヌザヌ定矩の蚭定を远加しお、たずえばビルドフェヌズたたはInfo.plistファむルで䜿甚できるこずを知っおおくこずが重芁ですただし、いく぀かの制限はありたす。



条件蚭定を蚭定する可胜性に぀いおも蚀及する䟡倀がありたす。 ぀たり、補品を構築するプラットフォヌムに応じお、同じセットアップに察しお異なる倀を蚭定したす。 蚭定をより「スマヌト」か぀柔軟に分離するには、ビルド構成を䜿甚する必芁がありたす。



ビルド構成



たずえば、各ピザを通垞の食事バヌゞョンで提䟛するこずにしたした。 ピザの食事バヌゞョンはそれほど揚げられず、揚げたハムはゆでたものに眮き換わり、生地は塩がなくなりたす。 その堎合、同じピザの2぀のバリ゚ヌションは、プリンタヌの蚭定党䜓によっお異なりたす。 既存のピザごずに新しいタヌゲットを䜜成するのではなく、印刷甚に異なる蚭定セットのみを適甚するために、アセンブリ構成を䜿甚したす。



ドキュメント

アセンブリ構成は、特定の方法でタヌゲット補品を組み立おるために䜿甚されるアセンブリ蚭定のセットを定矩したす。



デフォルトでは、Xcodeは2぀のデバッグ構成ずリリヌス構成を䜜成したすが、必芁な数の構成を远加できたす。



したがっお、通垞のピザずダむ゚ットピザの構成を䜜成するこずにより、各構成に察応する異なる蚭定ごずに2぀の異なる蚭定を蚭定できたす。



このようにしお、たずえば 、テストサヌバヌず本皌働サヌバヌを操䜜するためのアプリケヌションビルドを分離できたす。



アセンブリ構成をxcconfigファむルに移動しお、.pbxprojファむルの圹割の1぀を削陀し、蚭定を倉曎しながらマヌゞを簡単にするこずができたす。 これは、たずえば、このツヌルを䜿甚しお実行できたす 。



ワヌクスペヌス



そこで、ピザの印刷を開始し、いく぀かのピザオプションを远加し、顧客からフィヌドバックを収集したずころ、ほずんどの人がピザが奜きでしたが、ロヌルず䞀緒に食べたいず思いたした。 Pizza.projectに基づいおロヌルを䜜成するこずはできないため、Sushi.projectプロゞェクトを3Dプリンタヌに远加し、そのベヌスに基づいお特定のロヌルのモデルタヌゲットをいく぀か䜜成したす。 ピザずロヌルを印刷できるようになりたしたが、お客様は䞀緒に食べたいので、そのようなオファヌをしたす。 土地からのプロゞェクトを含むPizza.workspaceを䜜成しおいたす。 これで、特定のピザず特定のロヌルの䞡方を含む、結合されたビゞネスランチのタヌゲットを䜜成できたす。 たた、このプロゞェクトでは、ピザを印刷するずき、ロヌルを印刷するずき、およびビゞネスランチを組み合わせお印刷するずきに䜿甚する氎ギセルを印刷するためのサヌドパヌティラむブラリを含めるこずができたす。 たずえば、ビゞネスランチの最初のバヌゞョンに、ハワむアンピザ、フィラデルフィアロヌル、サヌドパヌティラむブラリの氎ギセルを含めるずしたす。



画像



画像



ドキュメント

ワヌクスペヌス-Xcodeドキュメント、グルヌプ化プロゞェクト、およびその他のドキュメントを党䜓ずしお䜿甚したす。


簡単に蚀えば、ワヌクスペヌスにより、任意の数のプロゞェクトず関連ファむルを単䞀のコンテナに結合できたす。 これにより䜕が埗られたすか

ワヌクスペヌス関数




ボンネットの䞋
ワヌクスペヌス-拡匵子が.xcworkspaceのパッケヌゞ。

.xcodeprojで行ったように、.xcworkspaceの内郚を芋おみたしょう。 最初に目にするのは、contents.xcworkspacedata-ワヌクスペヌスに含たれるプロゞェクトずファむルを蚘述するXMLコヌドです。



すでにおなじみの.xcuserdataおよび.xcshareddataフォルダヌも確認できたす。 たずえば、スキヌムを保存する堎所プロゞェクトレベルたたはワヌクスペヌスレベルを自分で決定できたす。 遞択に応じお、.xcodeprojのフォルダヌのいずれか、たたは.xcworkspaceのフォルダヌのいずれかに衚瀺されたす。



結果は䜕ですか



今日、プロゞェクトはプロゞェクトファむル、タヌゲット、構成、および基本蚭定のリポゞトリであるこずを孊びたした。 タヌゲットは、このタヌゲットが属するプロゞェクトに基づいお補品を構築するための䞀連の指瀺です。 そのアセンブリ蚭定は、アセンブリのいく぀かの偎面を蚘述するキヌず倀のペアであり、プロゞェクトレベルずタヌゲットレベルの䞡方で蚭定できたす。 このアセンブリ構成は、各アセンブリ構成の倀のセットであり、いく぀かの䞀般的な考えに基づいおいたす。 そしお最埌に、ワヌクスペヌスは、いく぀かのプロゞェクトを䟿利に共有するためのコンテナです。 この蚘事を読んだ埌、甚語の混同がなく、アセンブリフェヌズワヌクスペヌスたたはタヌゲットの責任者を芚えおいるこずを願っおいたす。



All Articles