u02の雑ブログです

ネイティブアプリの開発とか、プログラミング、Java、C++、Android、iOS、Objective-C、Kotlin、Swift、ゲーム、アニメなどです。

Jenkinsで困ってた話 (private github pods library)

Jenkinsで困ってた話

 

Ci-Serverで 会社のprivate Githubのライブラリーを使おうとしたが、権限の問題でできなかったので困ってた。

 

Jenkinsの plug-inで SSH-Agentがあってそれを使い解決しようと思ってたが、
うまく行かなかったため、shellで直接するようにしてみたら行けた。

 

 

準備物

0. jenkins & 回せるプロジェクト

1. githubのプロジェクトに接続できるrsaファイル

 

手順

1. $ ssh-agent

2. $ eval `ssh-agent`

3. $ ssh-add hoge.rsa

こうすることでうまく行くはずだが、

rsaファルが 0644だったため、addができてなかったので

4. chmod 0600 hoge.rsa

これをして rsaファイルのパーミッションを 0600にして、addしてみたら行けてた

 

 

 

 

SonqrQubeで Android appの ソースコードを分析して修正してみよう。

SonqrQubeで Android appの ソースコードを分析&修正

Androidのプロジェクトで Sonar Qubeを利用した話をします。


まず、前回のポスト!でインストールしてた前提でやりますが
インストールしてない人はこちらから設定をお願いします。
http://u02.hatenablog.com/entry/2016/03/03/195653

 

1. Login

まず http://localhost:9000/ に入って、右上のログインボタンを押し、ログインします。

f:id:wkddn1235:20160305233609p:plain

defaultのアカウントは (admin/admin)で管理者としてログインができます。

f:id:wkddn1235:20160305233808p:plain

2. SonarQubeへ Android Pluginを設置
Androidのlintを分析するためにはまず、pluginをインストールする必要があります。

上の administrationのボタンを押し、
その下のタップで [System] -> [Update Center] をクリックしましょう。

f:id:wkddn1235:20160305233834p:plain

ここで Availableをクリックし、Androidを探して installします。
(ちなみに、日本語パックもありますね)

ボタンを押すとこうなるので sonarをリスタートしてあげましょう

`sonar restart`

 

3. SCM Sensor設定
SCMの設定を行いましょう

[Administration]->[SCM]

f:id:wkddn1235:20160305233900p:plain

ここをTrueにします。

こうする理由は、SonarQubeは Language別に分析してくれますが、
*.java 以外の xmlとか assetの分析の結果も見たいためですね。

 

4. Quality Profileを作る

Quality Profilesにはいると先インストールしたため、 Android Lintが追加されていることを確認できます。

f:id:wkddn1235:20160305234052p:plain

ここでやることは、

Sonar Wayの defaultが javaになっているため、
Android Lintのプロジェクトをcopyし、javaの検証も一緒に行うための設定をします。

まず [Android Lint]をクリックして、copyします(右上)

名前は [Android Lint+Sonar way]にしました。

f:id:wkddn1235:20160305234152p:plain 

で、作ったプロジェクトをクリックすると下に [Change Parent] というボタンがあります。

f:id:wkddn1235:20160305234237p:plain

ここを押しましょう

f:id:wkddn1235:20160305234556p:plain

親を sonar wayにします。

 

f:id:wkddn1235:20160305234614p:plain

これで、lintとsonar wayを合わせたprofileを作りました。

とりあえず、これを defaultにします。

f:id:wkddn1235:20160305234650p:plain

これで準備はokですね。

 

 

 5. GRADLEの設定

gradleprofileに次みたいに設定を保存しときます。

systemProp.sonar.host.url=http://localhost:9000/
systemProp.sonar.login=admin
systemProp.sonar.password=admin

 

あとは、Gradlefileの設定を行ってみます。

 

buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
classpath "org.sonarqube.gradle:gradle-sonarqube-plugin:1.1"
}
}

 

apply plugin: 'org.sonarqube'

runSonarQube {
properties {
property "sonar.sourceEncoding", "UTF-8"
property "sonar.projectKey", "davidlab:sonartest"
property "sonar.projectName", "SonarTest"
property "sonar.projectVersion", "0.1"

properties["sonar.sources"] += "src/main"
property "sonar.java.binaries", "build/intermediates/classes/debug"
property "sonar.android.lint.report", "build/outputs/lint-results.xml"
}
}

 

こういう感じで設定して、一応lintを使いましょう。

 

gradle lintでできると思います。

android studioは簡単にここでクリックすることでできます

f:id:wkddn1235:20160306001646p:plain

あとは otherの sonarqubeを事項します。

f:id:wkddn1235:20160306001716p:plain

 

 

これで情報がsonarqubeに載っていることが確認できます。

 

f:id:wkddn1235:20160306001833p:plain

 

6.issueの修正 

確認もできたし終わりっ!と。。。

しようと思ったが、実際にissueの修正をする方法を書いてみます。

 

ここでプロジェクトをクリックすると、issueが見えます。

 

f:id:wkddn1235:20160306001915p:plain

 

5個がありますね

f:id:wkddn1235:20160306002021p:plain

こんな風に情報がでます。

右の方の [>] を押してみると詳しいソースコードが見えます。

f:id:wkddn1235:20160306002133p:plain

まずは 使ってない importがあるよーがでますね

f:id:wkddn1235:20160306002215p:plain

あとは こんな風にでるのです。

なんにゃのーと思うのであれば [...]をクリックしてみると詳しい情報が見えます。

 

javaのconventionで staticが先に来るのがいいよーって言ってますね

f:id:wkddn1235:20160306002342p:plain

 

あとは static finalだから 大文字にするのがいいのでは?とい指摘がありますね

同じく[...]を押して確認してみます。

f:id:wkddn1235:20160306002629p:plain

 

こんな風にsoulutionが見えます。

まじいいですねー

 

あとは リスナーをlambda式でしてほしいというんですが、修正したくないので

resolve as won't fixをします。javaのチェックなのでこんな問題もありますね。

f:id:wkddn1235:20160306002734p:plain

 

最後に

f:id:wkddn1235:20160306002845p:plain

onClickが宣言されているが何もしてない!事を指摘しています。

そして、もう一度 lintをして、sonarに送ります。

 

f:id:wkddn1235:20160306003100p:plain

 

issueを見るとこんな感じで修正されたことが確認できますね!

 

では、長くなりましたが、ここまでです。

またの時に!

 

SonarQubeを利用してみよう-設置編-

 Sonar Qube Installzation.

こんにちはー

Androidで ソースのクォリティーを上げるために使ったりする sonar qubeのインストール方法を紹介しようと思います。

http://www.sonarqube.org/ ホームページはこちらです。

 

1. brew install sonar

`brew install sonar` sonarをインストールします

 

2.sonar.propertiesの設定を変更

ここのバージョンはinstallされたやつで変えてください。

~ ᐅ vim /usr/local/Cellar/sonar/5.x.x/libexec/conf/sonar.properties

 

ファイルの中に 変更する部分は

dbのuseridとpassword、後使うDBの部分ですが、今回はMysqlで利用してみようと思います。

11 #
12 # IMPORTANT: the embedded H2 database is used by default. It is recommended for tests but not for
13 # production use. Supported databases are MySQL, Oracle, PostgreSQL and Microsoft SQLServer.
14
15 # User credentials.
16 # Permissions to create tables, indices and triggers must be granted to JDBC user.
17 # The schema must be created first.
18 sonar.jdbc.username=sonar
19 sonar.jdbc.password=sonar
20
.....
29
30 #----- MySQL 5.x
31 # Only InnoDB storage engine is supported (not myISAM).
32 # Only the bundled driver is supported.
33 sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfig s=maxPerformance

 

こんな感じで # を消して comment outされているやつを回るようにしてあげればいいのです。

 

3. mysql install

- mysqlを installします。

$brew install mysql

 $mysql.server start

 こうすることで使用できると思います。

 

4. mysqlを使う

 $ mysql -uroot

mysql)

CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;

IDENTIFIED BY 'PASSWORD'ですが、コピペーしやすいように sonarにします。

passwordと usernameを sonarにする感じで実装します

 

5. sonar restart

$ sonar restart

#Starting SonarQube...
#Started SonarQube.

これでできる! sonar qubeの default urlは 

http://localhost:9000/ なので接続してみましょう

 

f:id:wkddn1235:20160303195432p:plain

 

あら....

何かの問題があるっぽいですね

 

6. sudo sonar restart

確認を一通りやってみて問題がない感じだと思って 権限かなと思い、sudoをつけてみましたー

f:id:wkddn1235:20160303195537p:plain

 

٩( ᐛ )و

これで接続できる!

今日は ここまでやって次、ツールの使い方とアンドロイドのsampleアプリからgradleで伝送する感じでやってみるつもりです。

 

では、またの時に!

iOSの証明書で困った

こんにちはー

今回は なんか証明書を更新したのに、うまく行かなくて困ってましたので、stackoverflowで ぐぐってた事を述べます。

 

"この証明書はの発行者は無効です"

とかになってすごい困るんですけど

調べてみたらアップルのバグだったそうです。

次のサイトを見て解決できました。

1. keychain accessに入ってください。

2. 左のタップで  システムをクリックしてください。

3. ここで Xボタンになっていて、証明が切れているものをけします。 

4. WWDR Intermediate Certificate これをダウンロードするのです。

5. ダブルクリック!

6. 解決

 

僕はこんな感じで治りました。

ではここまでー

 

参考: http://stackoverflow.com/questions/35390072/this-certificate-has-an-invalid-issuer-apple-push-services

【初心者用】1. Cocos2d-x 3.3.0betaを使ってみましょう。

はい。

はじめの記事は、普通に興味あったcocos2d-xの最新でやってみます。

 

まずcocos2d-x についてご存知ではない方々にはこっちらのURLを参考に..

といいたいんですが、せっかくだから、簡略に説明してみると、

様々なOSで同じソースコードで動けるゲームを作るプラットフォームです!

すごいではありませんか?

まー実際に僕はandroidとiosだけ共通でやるんですがw

かなりいいものです。


Cocos2d-x: World’s #1 Open Source Game Development Platform

 

では、cocos2dxを開発するためには何が必要かですが、

僕はMacで開発をするため、

IDEとしてはxCodeとAndroidStudioをおすすめします。

 

続きを読む