Android StudioはVCS(Version Control System:バージョン管理システム)を使って、プロジェクトの変更履歴の管理が可能です。
Android Studioで利用可能なVCSはいくつかありますが、Gitを取り上げて、アプリパスワードを使ったリモートリポジトリのクローン(コピー)とプル(履歴の取得)の方法を紹介します。
※環境:Android Studio Electric Eel | 2022.1.1
※前提:リモートリポジトリの構築済み
目次
アプリパスワードによるアクセス
Bitbucketにおけるアプリパスワードを使ったアクセスは、次のような特徴があります。
アプリパスワードとは
アプリパスワードはツール(ここではAndroid Studio)に与えるチケットです。
遊園地で遊ぶために入場チケットが必要なように、リモートリポジトリへアクセスするためにアプリパスワードが必要です。
ログインで使用するパスワードとは別なので注意してください。
このアプリパスワード(チケット)を持っているツールは、Bitbucketのアカウントの有無に関係なく、リポジトリへアクセスが可能になります。
ですので、アプリパスワードが漏洩しないように、厳重な管理が必要です。
アクセスの様子
アプリパスワードはBitbucketのアカウントが発行します。
ですので、アカウント(UserA)が所持するストレージ内のみで有効です。他者(UserB)が発行したアプリパスワードは無効であり、アクセスは許されません。※ただし、他者をワークスペース内に招待すればアクセス可
アプリパスワードは、「1:1(パスワード:ツール)」や「1:多」といった配布が出来ます。
どのように配布するかは、アプリパスワードに指定する権限(後述)と合わせて決めます。ここは「誰に何を見せて、何を許可するか!」といった、アプリ開発の方針に関わるところです。
アプリパスワードの取得
Bitbucketにログインし、そのアカウントのアプリパスワードを作成します。
アプリパスワードには権限(許可の範囲)が指定できます。このアプリパスワードを使ってリポジトリへアクセスするツールは、操作内容が権限で許された範囲に限られます。
Android Studioから扱える操作はGitのみなので、「リポジトリ」が許可されていれば十分です。権限は最小限に絞りましょう!
作成されたアプリパスワードは下図のようなウィンドウに表示されます。ウィンドウを閉じた後、同じパスワードの再取得ならびに再表示はできません。紛失すると再作成になってしまいます。注意してください。
アプリパスワードが作成されると、アカウント宛にメールで通知が届きます。
クローン(Clone)の実施
リポジトリのクローンを行う方法は、次の2通りがあります。
「Clone」ボタンの押下でクローンが実行されます。
配布されたアプリパスワードを入力します。
ここで、「Remember」へチェックを行えば、Android Studio内にアプリパスワードが記録(KeePassにより管理)できます。次回以降は、Android Studioがアプリパスワードの入力を肩代わりしてくれるので、入力は求められません。
※KeePass:Android Studioで採用されているパスワードマネージャー
プル(Pull)の実施
リモートリポジトリから最新の履歴が取得できます。
プルの実行
リポジトリのプルは「Git」メニューから行います。
「Pull」ボタンの押下でプルが実行されます。
リモートの定義
クローン後のAndroid Studioプロジェクトはリモートリポジトリが定義されています。
> git config --local --list core.repositoryformatversion=0 core.filemode=false core.bare=false core.logallrefupdates=true core.symlinks=false core.ignorecase=true submodule.active=. remote.origin.url=https://user_a@bitbucket.org/gittestroom/sampleapp.git remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* branch.master.remote=origin branch.master.merge=refs/heads/master
ただし、クローンを行った時に指定したURLがそのまま定義されます。
ですので、リモートリポジトリへのアクセスは、アプリパスワードが持つ権限の範囲内になります。権限が「書き込み」を含んでいればプッシュ(Push)も可能です。
関連記事: