iPhoneアプリ開発 リビジョン管理

作成日:2020/10/01

お役立ちコラム

iPhoneアプリ開発 リビジョン管理

前回のコラム(第2回)では「 iPhone アプリ開発 デバッグと自動テスト 」と題して、iPhone アプリのデバッグ方法について解説しました。
今回も、開発を始めたらまず必要となる機能、ソースコードのバージョン管理、またはリビジョン管理について解説します。
Swift言語、UIKit、SwiftUI に関する解説書は書店にあふれていますが、それらの書籍にはリビジョン管理の方法についてほとんど記載がありません。
しかしソースコードのリビジョン管理をせずにソフトウエアの開発を行うことは考えられません。
リビジョン管理ツールの事実上の標準は Git ですが、Apple の開発ツールである Xcode は、標準で Git によるリビジョン管理機能をサポートします。
Xcode で共有リポジトリを使ったチーム開発も可能ですし、GitHub をはじめとする Git ホスティングサービスとの連携も可能です。
今回は、はじめに Mac 上にリビジョン履歴を保存するGitリポジトリを作成してソースコードのリビジョン管理をする方法を解説します。
次いで Xcode と GitHub との連携方法をご紹介します。

バージョンとリビジョン

Git はリリースの番号としてバージョンという言葉を使います。

$ git --version
git version 2.24.3 (Apple Git-128)

一方で変更履歴上の記録単位のことをリビジョンと呼びます。
ここでは Git の用語に合わせてリビジョン管理という言葉を使います。

Gitリポジトリの作成

以下の説明は最新版の Xcode 14 を用いて行います。
Xcode で新規にプロジェクトを作成する場合は、プロジェクトの作成画面で、

Create Git repository on my Mac

をチェックします。

このチェックをしなかった既存のプロジェクトで、新たに Git リポジトリを作成するには、
Xcode のメニューで、

Source Control → New Git Repositories...

を選択してください。
ダイヤログが表示されますので、青色のCreateボタンをクリックしてください。

これで Git リポジトリが作成され、Xcode のメニューの Source Control 配下の機能を使うことができます。
最初に、

Source Control → Commit...

を選択します。
ダイヤログが表示されますのでコメントを入力し、右下の Commit xx Files (xxはファイル数) という青色のボタンをクリックします。
これで最初のリビジョンのソースコードが記録されました。

ソースコードの変更とコミット

それでは 第2回コラム のサンプルプログラムを用いてソースコードの修正と記録の手順を見ていきましょう。
Xcode でリビジョン管理を始めますと、前回コミットしたソースコードに対して変更のあった行が青い線でマークされます。
コミットとは前リビジョンとの変更差分の記録です。
下の例では109行、118行、119行、120行、122行が変更されました。

変更されたファイルにはMというマークが付きます。
下の例では TableViewController.swift というファイルが変更されています。

変更を取り消したい場合はファイルを選択し、Control を押しながらクリック( Windows でいう右クリック )のコンテクストメニューか、あるいは Xcode のメニューのいずれかで、

Source Control → Discard changes in “TableViewController.swift”...

を選択しますと、確認の後、変更をすべてキャンセルできます。
すべてのファイルにつき修正を取り消したい場合は、Xcode のメニューの

Source Control → Discard All changes...

で前回のコミットまで戻せます。

ソースコード全体にわたり大幅な変更を加えるときは、必ずその直前にコミットしておきましょう。
そうすれば、最悪の場合でも Discard All Changes... で元に戻せます。

修正とデバッグが終わり、コードが完成したら再びコミットします。

Source Control → Commit...

このとき表示されるウインドで変更したファイルを選びますと、右側に以前のコード、左側に新しいコードが表示され、追加、変更、削除された箇所がハイライトされます。
修正コメントを入れて 青色の Commit xx Files ボタン (xxはコミットされるファイルの数) をクリックします。

ソースコードの変更履歴の表示と変更箇所の確認

Xcode 画面右の Hide or show the Inspectors ボタン(下図の赤枠)をクリックし、Show the History Inspector ボタン(時計アイコン)をクリックしますと、変更履歴が表示されます。

ここで履歴を選択し、Open in Code Review をクリックしますと、先ほどと同様に右側に以前のコード、左側に新しいコードが表示され、変更箇所がハイライトされます。
この機能により、過去にさかのぼって変更箇所を確認することができます。

機能追加やバグ修正など開発作業の区切りごとにコミットしておけば、履歴と差分が保存され、安全にソフトウエア開発を進めることができます。

GitHubリポジトリの作成

チーム開発のために GitHub を使うこととして、GitHub 上にリポジトリを作成してみましょう。
Xcode の画面上部、左から2つめのボタン( Show the Source Control navigator )をクリックし Remotes フォルダを、Control を押しながらクリックし、New “Project名” Remote... を選択します。(下図参照)

表示される「 Create “プロジェクト名” remote 」ダイヤログの Account: 欄で Add an account を選び、GitHub を選択して、青色の Continue ボタンをクリックします。

GitHub のアカウント名と個人アクセストークンを入力してサインインします。
トークンの作成方法は下記をご覧ください。

GitHub に接続できたら、リポジトリ名( Repository Name )とリポジトリの説明( Description )を入力して、青色の Create ボタンをタップします。

これで GitHub 上にもリポジトリが作成されました。
GitHub にログインしてソースコードがリポジトリに登録されているか確認しましょう。

以降、Xcode からこのリポジトリをリモートリポジトリとしてアクセスできます。

GitHubリポジトリとの同期

GitHub のリポジトリをハブにしてチーム開発をしていくには、各開発メンバーが Mac 上のローカルリポジトリと、GitHub 上のリモートリポジトリを同期していく必要があります。
ソースコードを修正したら、まずは従来と同じくローカルリポジトリにコミットします。

Source Control → Commit...

次にXcodeのメニューで、

Source Control → Push...

でローカルリポジトリの変更を GitHub のリモートリポジトリに反映します。
下図の origin/main はブランチ名ですが、ソースコードが枝分かれしたときは、ここでブランチ名を指定できます。

他の開発者の変更を取り込むには、Xcode のメニューで

Source Code → Fetch Changes

を選択します。

この時点では、まだローカルリポジトリは更新されていません。
ソースコントロール ナビゲーターの Remote – origin – main で GitHub の修正履歴を確認できます(下図参照)。
修正履歴をダブルクリックすれば GitHub 上のソースコードの変更箇所を確認できます。
補足ですが、このソースコントロール ナビゲーターで Control を押しながらクリックすることでメニューから BranchやMerge も選べます。
またメニューから英語ですがヘルプ( Source Control Navigator Help )にもアクセスできます。

確認の上、この GitHub 上の変更をローカルリポジトリに反映するには、

Source Control → Pull...

を選択し、表示されるダイヤログで青色の Pull ボタンをクリックします。

以上が、自身で作成したプロジェクトを、GitHub をハブとして他の開発メンバーと共有する方法です。
他のメンバーが作成した GitHub リポジトリにアクセスするには Xcode の起動画面で Clone an existing project を選択します。
「 GitHub リポジトリの作成 」の節で説明した手順で既に GitHub のアカウントを Xcode に登録済みであれば、リポジトリの一覧が表示されます。
リポジトリを選択して青色の Clone ボタンをクリックすれば、ローカルリポジトリが作成されて GitHub からソースコードがコピーされます。
これでチーム開発を開始できます。

まとめ

今回は Xcode と Git を使ってソースコードのリビジョン管理をする方法、および、GitHub をハブにして開発チームでソースコードを共有する方法を解説しました。
3回にわたり iPhone アプリ開発をスタートするための情報をお伝えしてきましたが、いかがでしたでしょうか?
次回は最終回ですが、Instruments という Xcode のランタイム解析ツール群の中から、特にアプリの性能向上に役立ちそうなツールを紹介する予定です。

お問い合わせ

Xcodeでの開発用にはMacレンタルをご利用ください。

追加で開発用機材が必要な時にご利用ください。

お気軽にお問い合わせください

ページの先頭に戻る