Category Archive: IDEA

[etc]新しいpc買って(windows8.1)でssh使ってcmdからgithubとかをcloneできるようにするのに悩んだときのメモ

ssh回り、いつも悩みながら適当に設定してなんとなく使えるようになっているのだけど、今回も相当悩んで、やっとなんとなく動くようになったので、今後同じことを繰り返すであろう未来の自分へのメモ。
(これの通りにやって動くようになるかはわからないので過度な期待しないように)


■SourceTreeのインストール

cmd使うから厳密にはいらないかもしれないけど、これを使った”おまじない”が必要となる。
そして、puttygen/pageant/plinkもここに含まれている。
(C:\Program Files (x86)\Atlassian\SourceTree\tools\putty)

■ssh用の公開鍵、秘密鍵を作る

puttygenを使って、公開鍵・秘密鍵なるものを作る
(C:\Program Files (x86)\Atlassian\SourceTree\tools\putty/puttygen.exe)
保存するときのファイル名(この名前が大切かもしれない)
秘密鍵:id_rsa.ppk
公開鍵:id_rsa.pub
※OpenSSH形式の秘密鍵・公開鍵に変換しておく必要があるかもしれないのでやっておく
→Conversions → Export OpenSSH key:id_rsa(拡張子なしとする)

参考 → SSH(PuTTY)設定

秘密鍵、公開鍵の保存場所はとても大事
例:C:\Users\393\.ssh\id_rsa.ppk
カレントユーザー直下に.sshフォルダを作ってそこに置く。
(※.sshフォルダは、cmdから、mkdirコマンドを使わないと作れない)

■githubにsshキーを設定する

githubにログインして、settings→SSH keys → Add SSH keyで、
key欄にはさっき作ったやつでputtygenに表示されているkeyをコピペする。

■Gitのインストール

gitfor windowsからDownload.
※インストール時のラジオボタンの設定はちょっと変更する。

・Adjusting your PATH environment > Use Git from the Command Pronmpt
→cmdで、gitコマンドが使えるように環境変数が設定される

・Choosing the SSH executable > Use(Tortoise)Plink
→sshのときplinkを使うように環境変数が設定される
(TortoiseってあるけどインスコしてないせいかplinkまでのpathはSourceTree内のplink.exeになってる)

・Configuring the line ending conversions > Checkout as-is,commit Unix-style line endings
→改行コードが変わる(ここはデフォルトでもいいかも)

cmdでgitをたたいてなんかでればうまくいっている

■pageantにprivate keyをadd

pageantを起動して上で作った秘密鍵をadd keyしておく。
(C:\Program Files (x86)\Atlassian\SourceTree\tools\putty/pageant.exe)
※スタートアップに登録しておくといちいち起動しなくていいから楽。

■githubのリポジトリをcmdからクローン(失敗するはず)

cmdを開いて、githubのリポジトリをcloneしてみる
例:git clone git@github.com:hoge/moja.git

こんなエラーがでるはず。
Disconnected: No supported authentication methods available (server sent: publickey..)

■SourceTreeでクローンしてみる

SourceTree上でsshパスを使って、githubのcloneを試みると、初回だけなんかの認証的なYes/noなポップアップがでる
↓こんなの
popup

Yesを選択する。(これが上に書いていた”おまじない”)
(設定に間違いはなければSourceTree上でもこのままcloneできる)

■githubのリポジトリをcmdからクローン

“おまじない”のおかげでさっきでたエラーはでなくなっている
githubに限らず、bitbucketとかbacklogでもSSHキーを登録したあと1発目のcmdからcloneしようとすると上述のエラーがでるので、SourceTreeでクローンしようとすると、認証のポップアップがでるから、それをOKしてやれば、その後、cmdからもcloneとかできるようになるっぽい。

■intellij IDEA上でのgit操作

上の設定ができてる前提で、
setting/VersionControl/Git/SSH executable:Buit-in
でいけた。

[IDEA]intelliJ IDEAでFlashプロジェクトからipaの書き出しとiPhone実機での実行

intelliJ IDEA

昨年マヤ暦が終わっちゃう記念で75%OFFセールがあったのでなんとなく買ってたのですが、せっかく買ったので触ってみました。
とりあえずはFlashプロジェクトでipaを作ってみたのですが、普段使ってるFlashDevelop(以下FD)との使い勝手の違いに悩まされましたので、その辺のメモ。


基本的なFlashプロジェクトの作り方は、katapadさんがまとめてくれているこちら記事どおりやったら問題なくできました。
IDEAでのFlashプロジェクトの作り方

ちょっとだけ悩んだのは、記事はver11.1でかかれていて、ボクは12.0.2で試したのでUIのレイアウトが微妙に異なってるところもありました。
具体的には、「ライブラリに追加」の項目での[+]ボタンの位置
11.1では下にあったのが、12.0.2では横になったようです。

11.1
4d57a47b329187e7f7f342757014346b

12.0.2
12

 


■FlashMobileプロジェクトの手順
File->New Projectで、Other:FlashModuleを選択してNext
(ここではProject名はMobileTestにしとく)
99965e99517bd4bf7b8b3dfb1a1f5767

Target PlattformをMobileに。
Pure actionScriptにチェック(チェックしないとmxmlになる)
FlexSDKは自分で用意して指定する
f775311a67e35423decbf6b32301ab82
 


■SWFの基本設定
swfのwidth、height、frameRateの設定はIDEから入力できるところはなさげ
SWFタグで指定するのがいいかも。
(指定しないと、width:500,height:375,frameRate:24になるっぽい)

package {

import flash.display.Sprite;
import flash.text.TextField;

[SWF(width="640",height="960",frameRate="60")]

public class MobileTest extends Sprite {
    public function MobileTest() {
        var textField:TextField = new TextField();
        textField.text = "Hello, World";
        addChild(textField);
		this.graphics.beginFill(0xFF0000);
		this.graphics.drawRect(0,0,100,100);

		trace(stage.stageWidth, stage.stageHeight);
    }
}
}

■書き出しの各種設定
File->Project Structure
Modules->MobileTest(app)を選択するとこんな画面
ffe78124e78958bafdd8b7e059b1701f

iOSタブでプロビジョニングプロファイル,証明書ファイル,applicationXMLの設定などができる。
1b0be155773854d9babde8eecd958658

applicationXMLはApplication descriptorでGeneratedにチェックが入ってると自動で生成してくれる。
ただ、IDE上で各種XMLの項目を設定する機能はないようなので、Generatedではなく、Custom templateを選択したほうがよさげ。
(GeneratedだとappIDがプロジェクト名なってしまうし)

Createボタンを押すとTemplateウィドウで基本的な設定ができる。
9e7431335116ff1f25c06075e14a7b93

これで任意のxmlファイルが生成されてipaのパッケージに使える。
(Templateで設定できなかった項目に関しては直接XMLを編集)

■実行
Edit Configrations…というところから設定可能
Clipboard01

こんな設定画面
d60a6db2cace261ff99a595d7f5ea885

Run onという項目でEmulatorを選択すればPC上で確認できるのはありがたい。
(FDのモバイルプロジェクトだとできなかった気がする)
Emulatorには主要な端末データが入っていて、ステージサイズが設定されるっぽいのだけど実際に書き出されるSWFには反映されてないっぽい。
たとえばiPhoneRetinaに設定してRunするとEmulatorは幅:高さは640:960の枠サイズで表示されるけども、中に表示されるswfは(SWFタグを指定していないと)500:375で表示されてる。
明示的にSWFタグで幅と高さは指定してあげる必要がありそう。


実機テストは、
Run onの、iOS deviceにチェック
OptionsのDebug on device overをUSB,port:7936にチェック
PCにUSBでiPhoneを接続した状態で、Run->MobileTestを実行するとipaが生成されてiPhoneにインストールされるところまでやってくれる。
(USBのポート番号はデフォルトのままでうまくいった)
複数の端末をつないでるときは
must specify -device parameter when more than one device is available
というアラートがでた。
「複数の端末がつながってるときは指定デバイスのパラメータは必須」という意味らしい。


ちなみに、Run->Run MobileTestで生成されるipaの形式は、”ipa-test”
(もしくはipa-test-interpreter:fast_packagingにチェックした場合)
デバッグモードは、Run->Debug MobileTestで”ipa-debug”が生成
(もしくはipa-debug-interpreter:fast_packagingにチェックした場合)

store用やaddhoc用のipaを作るには、
Build->Package AIR Applicationを選択すると以下のウィンドウがでるので、
iOS package typeのセレクトボックスから選択可能。

4f57fe8d9b3428da392bfe62d49fae61

store用やaddhoc用のipaの実機へのインストールは手動でやるしかないみたい。
Runで生成される”ipa-test”だとパフォーマンスが落ちるので、addhocかstoreで動作テストしないといけなかった経験があるのでstore/addhocビルドを自動インストールする仕組みがないとちょっとめんどくさい気がする。。。


あとipaファイルの出力はデフォルトでoutフォルダとなるけど、outフォルダはIDEA上のProjectパネルには表示されない。

dad6a6607501b64f71952382fd9feddb

見えて欲しいところだけど、プロジェクト上での出力フォルダと定義されたものはExcluded扱いとなるので無理っぽい。
(Project Structureパネルでも、Excludedを解除することもできない)

e111a8b13e6608a09dc2d57ba7003c26

表示するようにするにはProject Structureパネルで、
Projectを選択し、Project compiler output:の項目に記載されてるoutまでのファイルパスを削除する

823904a7878a5d7ceeca0c7b0f877ffc

プロジェクト上での出力フォルダの定義を消しちゃうとどこに出力されることになるのか?と思うけど、Modules側のOutput folderで設定されていれば特に問題ないみたい

8404208c0a32b8be4cd05208d0781efa

IDEAを再起動するとoutフォルダが見えるようになります。

bbf2cefc1496661e2f94c93ed2cf8e8c


挙動がよくわからなくて調べるのに結構苦労してるわけですが、まだIDEAに完全移行しようという気にはなれず。
もうちょっと触ってみないと、よさがわからない。