2017-05-14 2 views
1

타사 .aar 프로젝트를 사용 중이며 aar 프로젝트에서 프로 가드를 활성화했습니다. 그리고 내 응용 프로그램 프로젝트에서 나는 Proguard를 가능하게하고 오류가 발생합니다.Proguard Files for Library 프로젝트 및 응용 프로그램 프로젝트

그래서, (.aar 프로젝트) proguard 규칙을 proguard 구성 파일에 포함 시키거나 다른 가능성이 있습니까?

나는 블로그와 글에서 proguard없이 .aar 프로젝트를 포함시킨 다음 aar 및 응용 프로그램 프로젝트 전체에 대해 proguard를 실행하는 것이 가장 좋은 방법이라고 읽었습니다.

응용 프로그램에서 proguard를 실행하면 가져온 라이브러리의 (이미 보호받는) 코드에 영향을 줍니까?

답변

0

그렇다면 (.aar 프로젝트) proguard 규칙이 내 proguard 구성 파일에 포함되어 있어야합니까? 아니면 다른 가능성이 있습니까?

the documentation 인용 :

당신은 그것의 ProGuard에서 지시어를 포함하여 라이브러리에 ProGuard에서 구성 파일을 추가하여 라이브러리를 축소 코드를 사용할 수 있습니다. 빌드 도구는 라이브러리 모듈에 대해 생성 된 AAR 파일 내에이 파일을 임베드합니다. 라이브러리를 앱 모듈에 추가하면 라이브러리의 ProGuard 파일이 app 모듈의 ProGuard 구성 파일 (proguard.txt)에 추가됩니다.

그래서 그 defaultConfig (워드 프로세서 참조), 원칙적으로 그 규칙이 자동으로 적용 받게됩니다에서 라이브러리 모듈이있는 경우 consumerProguardFiles 'lib-proguard-rules.txt'.

블로그 및 게시물에서 나는 proguard없이 .aar 프로젝트를 포함시킨 다음 전체 프로젝트 및 응용 프로그램 프로젝트에서 proguard를 실행하는 것이 가장 좋은 방법이라고 읽었습니다.

AFAIK, 이것이 일반적인 계획입니다. 따라서 AAR은 ProGuard가 앱에 적용되어 홀로 남겨졌습니다.

응용 프로그램에서 proguard를 실행하면 가져온 라이브러리의 (이미 보호받는) 코드에 영향을 줍니까?

AFAIK, 라이브러리 코드는 ProGuard를 통해 실행하면 안됩니다.

+0

그래서, 내 proguard 파일에 proguard 규칙을 라이브러리 모듈에 포함시켜야한다고 결론 내릴 수 있습니까? –

+1

@AmanVerma : AAR 파일이 문서가 권장하는 방식 ('consumerProguardFiles'와 함께) * 및 *에서 당신이 상당히 최근의'buildToolsVersion'에있는 경우 ('consumerProguardFiles'가 추가되었을 때를 잊었을 때) 앱 모듈의 규칙에서 AAR의 ProGuard 규칙을 복제 할 필요는 없습니다. 즉, Android Studio에는 멋진 APK 분석기가 있으므로 '릴리스'빌드의 결과를 검토하고 ProGuard가 라이브러리에서 기대하는 바를 제거/난독 화했는지 확인할 수 있습니다. IOW, "신뢰하지만 검증". :-) – CommonsWare

+0

파기 시간이 지나면 앱의 프로 가드 파일에 AAR 프로 가드 규칙을 포함 시켜야만 정상적으로 작동합니다. 아마 AAR은 적절하게 보호받지 못했을 것입니다. 훨씬 정교하게 대답 해줘서 고마워. –

관련 문제