프로가드 적용하고 있습니다.
근데 적용하기 너무 어렵네요 ㅜㅜ.. 뭐이렇게 걸리는게 많은지
1. 라이브러리
-libraryjars 옵션에 사용하고 있는 라이브러리를 넣으라고 하는데요. 여기에 안드로이드 jar파일도 넣어야 하는거죠??
그리고 이게 절대 경로만 되는거 같은데요. 상대 경로로 할수는 없는지요?? 한개의 앱을 7명이 개발하고 있는데 각자 다 경로가 틀려서요
2. keep 옵션
- keep public class ~~~~~ 식의 옵션으로 사용하고 있는것중 변환하지 말아야 할 클래스들을 지정해줘야 한다는데요.
안드로이드 SDK의 사용한 클래스가 한두개가 아닌데 이걸 다 해줘야 하나요?? 안드로이드 SDK에 사용된것은 모두 인가요?
3. 그렇다면 보안모듈이라던가 기타 jar를 불러다 사용하는 것도 1번 2번에 모두 등록을 해줘야 하는것인지요????
답변 부탁드립니다.~
ADT 18버전 이후로 설명드리겠습니다. 현재는 20입니다.
1. android jar파일은 넣지 않습니다. android 관련 함수는 거의 다 됩니다. 안되는 것은 미리 파일에 명시되어 있습다.
properties 과 같은 폴더를 기준으로 상대적으로 경로 지정하시면 됩니다.
2. keep 옵션은 처음 하시는 분이라면 무엇을 하셔야 할지 모르실 겁니다. 이 옵션은 나중에 apk 만들다가 못 찾는 method 가 있을 경우 추가해주시면 편합니다. 만약 웹앱이라면 대부분의 함수들이 keep 되어야 합니다.
3. 기타 jar파일을 -libraryjars 옵션에 등록해야 난독화가 제대로 되며, keep 옵션을 최소로 줄일 수 있습니다.
자세한 내용은 proguard 홈페이지 참고하세요~
좀전까지 별짓 다했던 사람입니다
http://proguard.sourceforge.net/index.html#manual/examples.html
프로가드 문서때기 보면 이래저래 말이 많이 있습니다.
안드로이드에서는 어떻게 해라 저렇게 해라 .. 아주 힘들게 잘 되어 있는데요..
일단 proguard.cfg 만들어서 사용하게 되면 좀더 특별하게 컨트롤 할 수 있지만
잘못건들엿다가는 원래 써야 하는애도 난독화에 걸려서 안될 수 있습니다.
그냥
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
이걸로 설정하시고 ..
에러 나오는것들은 난독화 하지 않게 모두 dontwarn 걸어 주세요..
저 같은 경우에는
-dontwarn android.support.**
-dontwarn org.apache.commons.**
-dontwarn org.apache.commons.logging.**
-dontwarn org.apache.commons.codec.binary.**
-dontwarn org.ietf.jgss.**
-dontwarn org.apache.http.**
-dontwarn com.flurry.android.**
-dontwarn org.apache.avro.**
-dontwarn org.codehaus.jackson.map.ext.**
-dontwarn com.google.ads.util.**
이렇게 걸어주니 잘됩니다.
ADT버전을 몇을 쓰시는 지 모르겠지만 이클립스에서 프로젝트 만들면 proguard.cfg라는 디폴트 프로가드 설정 파일이 하나 만들어집니다. 여기에 android 관련 주요 클래스를 난독화 제외시키는 설정값이 들어 있습니다.