후.. 한참을 헤맸다.

예전에 작업 했언던 적이 있었는데 따로 정리를 안해놔서 삽질 엄청 했다.


우선 Android Studio에서는 모듈 난독화를 쉽게 설정이 가능했는데 어쩌다보니 이클립스에서 해야 하는 일이 생겼다.


Library Project는 빌드시에 동작하는 proguard-project.txt 가 먹히질 않는다.


그래서 따로 jar파일을 만든 후에 proguard를 따로 돌려줘야 한다.


1. Export Jar

2. {sdk_home}\tools\proguard\bin\proguardgui.bat

3. 저장했던 configure가 있다면 로딩해오면 좋다.


일단 대충 항목을 설명해야 겠다.

내가 헤맸던 부분은 바로 이 부분이였다.



-injars : 난독화할 jar 경로

-outjars : 결과물 경로

-libraryjars : 프로젝트에서 참조하고 있는 jar 파일

ex)

      -libraryjars 'C:\Android\sdk\platforms\android-23\android.jar'

-libraryjars 'C:\workspace\myproject\libs\android-support-v4.jar'

-libraryjars 'C:\workspace\myproject\libs\google-play-services.jar'

-libraryjars 'C:\Android\sdk\platforms\android-23\optional\org.apache.http.legacy.jar'




기존 proguard-project.txt 상단에 저 옵션을 추가한후 

load configuration을 하면 쉽게 설정이 가능하다.

추가로 {sdk_home}\tools\proguard\examples\android.pro 를 보면 프로가드에 대한 옵션을 볼수 있다. 






추가로 javascript가 동작하지 않았다.




I copy my answer from this topic for you: http://stackoverflow.com/a/19994873/1735499

And, if you are using Proguard, remember to add this

-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}

-keepattributes JavascriptInterface
-keep public class com.mypackage.MyClass$MyJavaScriptInterface
-keep public class * implements com.mypackage.MyClass$MyJavaScriptInterface
-keepclassmembers class com.mypackage.MyClass$MyJavaScriptInterface { 
    <methods>; 
}

If it's still not OK, add this

-keepattributes *Annotation*

Note: your MyJavaScriptInterface must be Public class

Ref#: Android Proguard Javascript Interface Fail

Br,

Frank



블로그 이미지

날기억해

Android / IOS / PHP / System Engineer / Service Architecture/ MongoDB / AWS / Mysql / Linux / Python / C++ / Vue.js / node.js / Java / Iot / BLE / Firebase / Bigdata Architecture / AD Server / SDK / Epub /

,

Jenkins + ec2-plugin + spotinstance + Elastic IP

 

1.     ec2 plugin 설정  

-       Jenkins> Jenkins 관리> 시스템 설정

-       Cloud에서 Amazon EC2선택


다음을 각각 입력

·         Access Key ID

·         Secret Access Key

·         Region

·         EC2 Key Pair 's Private Key

·         AMIs

o    Description

o    AMI ID : 작성한 AMI ID 설정

o    Instance Type

o    Availability Zone

o    Use Spot Instance 체크

o    Spot Max Bid Price

o    Choose Bid Type

o    Security group names : AWS  Security Group name 쉼표로 구분

o    Remote user : ec2-user (적절히 변경)

o    AMI Type : unix ( Amazon Linux  예이므로)

o    Root command prefix : sudo (필요한 경우)

o    Labels : Slave Node 관리하는 단위이므로 적절히 입력 공백으로 구분하여 여러 지정 가능

o    용도 : 슬레이브를 최대로 이용하기 (필요에 따라 변경)

o    Idle termination time : terminate (또는 stop) 때까지의 시간 ()

o    Init script : 젠킨스 에이전트를 설치하기 전에 해야 하는 단계

·         고급 설정

o    Number of Executors : 동시 빌드

o    Subnet ID for VPC : VPC  사용하면 Subnet ID 지정하는

o    Tags : 이것을 생략하면 움직이지 않습니다. EC2 용의 Name 태그를 설정합시다

o    Instance Cap : 최대 빌드

o    Associate Public IP : Global IP 자동으로 흔들어 원하는 경우 설정합시다

 

 

init scriptElastic IP를 바인딩하는 코드를 작성한다.

-       'aws ec2 associate-address --instance-id ' + instanceId + ' --allocation-id ' + elasticip

 

 

 

Multi-configuration project 생성하여서 slaves위에서 입력한 Labels 선택해준다.

Exceute Shell 부분에 에이전트가 설치되고 난 후에 해야하는 작업을 실행한다.

 


사용법을 몰라서 한참을 고생하여 혹시 필요하신 분들이 있을지 몰라 공유합니다.

 

블로그 이미지

날기억해

Android / IOS / PHP / System Engineer / Service Architecture/ MongoDB / AWS / Mysql / Linux / Python / C++ / Vue.js / node.js / Java / Iot / BLE / Firebase / Bigdata Architecture / AD Server / SDK / Epub /

,

레드마인의 최신 버전을 설치하기 위해서는 ruby 2.1.5 이상의 버전이 필요한데 CentOs 6에서 yum으로는 ruby 최신 버전이 설치되지 않는다.

nginx와 apache를 함께 설치하는 방법들도 많이 소개되어 있지만, 나는 기존 서버(nginx)에 redmine을 돌릴것이기 때문에 웹서버를 새로 띄우지 않고 proxy_pass를 이용해서 redmine을 실행하도록 할것이다.



1.epel 설치

wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

sudo rpm -Uvh epel-release-*.rpm



2. 개발툴 설치

yum groupinstall "Development Tools"


3.  Ruby와 Passenger 빌드에 필요한 헤더파일

yum install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel


4. ImageMagick과 헤더파일

yum install ImageMagick ImageMagick-devel


5. ruby 2.3.0 설치

https://www.ruby-lang.org/ko/downloads/

wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.gz

  1. tar zxvf ruby-2.3.0.tar.gz
  2. cd ruby-2.3.0
  3. ./configure --disable-install-doc
  4. make
  5. make install
  6. make clean


6. bundler 설치

gem install bundler --no-rdoc --no-ri


7. Redmine용 데이터베이스 및 유저생성

create database redmine default character set utf8;

CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

flush privileges;



8. 레드마인(3.2.0) 다운로드

http://www.redmine.org/projects/redmine/wiki/Download


wget http://www.redmine.org/releases/redmine-3.2.0.tar.gz

1. tar zxvf redmine-3.2.0.tar.gz

2. mv ./redmine-3.2.0 /usr/local/redmine/

3. cd /usr/local/redmine



9. database 설정 변경

cp config/database.yml.example config/database.yml

vim config/database.yml 



10. 메일 접속 설정

cp config/configuration.yml.example config/configuration.yml

vim config/configuration.yml

맨 아래 production 밑에다가 삽입 google계정이므로 구글 설정을 넣었다.

    email_delivery:
      delivery_method: :smtp
      smtp_settings:
        enable_starttls_auto: true
        address: "smtp.gmail.com"
        port: 587
        domain: "smtp.gmail.com" # 'your.domain.com' for GoogleApps
        authentication: :plain
        user_name: ""
        password: ""


11. Gem Package 설치
bundle install --without development test postgresql sqlite


12. 테이블 생성 및 초기 데이터 입력
#rake generate_secret_token
#RAILS_ENV=production rake db:migrate
#RAILS_ENV=production rake redmine:load_default_data
한국어는 ko로 입력한다.


DB 생성 중에 

redmine Can't connect to local MySQL server through socket '/tmp/mysql.sock'

라는 에러가 발생하였다.

mysql을 기본 폴더가 아닌 다른곳에 설치하였는데 redmine이 /tmp/mysql.sock을 바라보고 있어서 생긴 문제였다. 

그래서 기존에 설치되어 있던 폴더에 있던 mysql.sock의 심볼릭 링크를 /tmp/mysql.sock에 만들어니 해결 되었다.



13. 서버 실행 

bundle exec rails server webrick -e production


14. nginx 설정 추가

server {
        listen 80;
        server_name redmine.vmhost.com;
        access_log /home/httpd/logs/redmine_access.log main;
        error_log /home/httpd/logs/redmine_error.log;

        location / {
                proxy_pass http://localhost:3000;
        }
}







블로그 이미지

날기억해

Android / IOS / PHP / System Engineer / Service Architecture/ MongoDB / AWS / Mysql / Linux / Python / C++ / Vue.js / node.js / Java / Iot / BLE / Firebase / Bigdata Architecture / AD Server / SDK / Epub /

,