Titanium StudioでBitbucketを使う

  • OS: Yosemite(10.10)
  • Titanium Studio: 3.4.0
  • git: git version 1.9.3 (Apple Git-50)

Titaniumでアプリを作っていて、今まではローカルGitで管理していたんだけど、Mac買い替えたこのタイミングでBitbucket管理に変えた。

Githubだとプライベートリポジトリ有料だけど、Bitbucketだとぼっち開発している限り無料で使えるのでBitbucketにした。

今回作成したリポジトリはここ。サンプルなのでPublicにしてる。

BitbucketにSSHキーを登録する

Bitbucketアカウント作成

Bitbucketのアカウントは適当に作っておいてください。
画面の誘導する通りに作れば迷わないはずです。

RSAキー生成

上記サイトに詳しく書いてあるけど、下記コマンドでSSHキーを生成する (既にsshキー作ってある人は無視していい)

ssh-keygen -t rsa
cd .ssh
chmod 600 id_rsa

次に、vim ~/.ssh/configして、configにBitbucketを追加する。

Host bitbucket.org
  HostName bitbucket.org
  IdentityFile ~/.ssh/id_rsa
  User git

最後に、クリップボードsshキーをコピーしておく。

pbcopy < ~/.ssh/id_rsa.pub

BitbucketにSSHキーを登録

ここも先ほどの記事に詳しく書いてあるけど

  • アカウントの管理(画面右上) > SSH キー(画面左下) > 鍵を追加

を押す。

Label は適当な値を入れて(私はMBP2014にした)、Keyに先ほどクリップボードにコピーした値を入れる。

SSHキーが利用できるか確認

Terminalで

ssh -T git@bitbucket.org

と入力して問題ないか確認、途中で出るyes/noはyesにする。
OKなら以下のような文章が出る。

The authenticity of host 'bitbucket.org (131.103.20.167)' can't be established.
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'bitbucket.org,131.103.20.167' (RSA) to the list of known hosts.
logged in as starhoshi.

You can use git or hg to connect to Bitbucket. Shell access is disabled.

Titanium Studioと連携する

ここからが本番。

Titanium Studioでプロジェクトを作る

Titanium Studioを開いて、

  • File > New > Mobile App Project > Default Alloy Project

をやって、適当にプロジェクトを作成する。

今回は、bitbucket-testっていう名前で作成した。

Bitbucketでリポジトリを作る

Bitbucketのwebサイト画面上部の、作成を押す。
そうすると新規リポジトリの作成という画面になる。

こんなかんじで入力した。

f:id:star__hoshi:20141102194122p:plain

リポジトリにpushする

リポジトリを作成すると、これからどうすればいいか操作方法を出してくれる、今回はCommando lineと書かれたものを利用する。

操作方法に習いTerminalで

cd ~/Documents/Titanium_Studio_Workspace/bitbucket-test
git init
git add .
git commit -m "initial commit"
git remote add origin git@bitbucket.org:starhoshi/bitbucket-test.git
git push -u origin --all

をすると、Bitbucketにpushされる。
pushできてたらBitbucketの画面に表示されるので、それで確認する。

Titanium Studioからpushする

Titanium Studioに戻ってきて、先ほど作ったbitbucket-testを見てみると、既にバージョン管理されていた。

この時点でバージョン管理されていない人は Team > Share Project をすればたぶんバージョン管理される。

pushするためには適当にファイルをいじるる必要があるので、tiapp.xml

<modules>
    <module platform="commonjs">ti.cloud</module>
</modules>

を追加した。

そうするとtiapp.xml*tiapp.xmlというようにアスタリスクがファイルの前につく。

次に

  • bitbucket-test を右クリック > Team > Commit

tiapp.xmlが編集されていることを確認して、Commit Messageを入力する。

コミットが完了したら、

  • bitbucket-test を右クリック > Team > Push

Pushが完了すると、Consoleに

f:id:star__hoshi:20141102194320p:plain

と出る。赤文字だとエラーみたいで気持ち悪いね。
Push完了。

他のリポジトリをCloneして使う

まずCloneする

Titanium Stduioに直接Cloneできると良かったんだけど、Titanium Studioのimport見てみたらGitHubのログインばかり求められて、Bitbucketでどうやるかはよくわからなかった。

なので、TerminalでCloneしてTitanium Studioにimportする手段を使った。

// 適当なフォルダに移動してclone
cd ~/Documents/git
git clone git@bitbucket.org:starhoshi/bitbucket-test.git

Titanium Studioでimportする

  1. Project Explorer上で右クリック > import
  2. General > Existing Folder as New Project > Next
  3. Promote to Projectに入力
    • Select folder: CloneしたPath
    • Project name: Select folder入れたら自動で入る
    • Project Type: 適宜選ぶ。bitbucket-testはAlloy,mobileにチェックする。

これでimportは完了、Gitもちゃんと効いてる。

もしProject Typeでチェックしわすれると

importする時、チェックし忘れてしまうと、Runするときに、RunボタンがDisableになって

The selected project bitbucket-test does not contain titanium mobile project

というアラートが表示される。

これを解決するためには.projectファイルを弄る必要がある。
下記はmobileのチェックを忘れた場合。

cd bitbucket-testvim .projectして、

<nature>com.appcelerator.titanium.mobile.nature</nature>

を追記する。

Titanium Studio Run Icon Disabled に書いてあった。

以上、Titanium StudioでBitbucketを使う方法でした。