3

내 앱에 두 가지 빌드 변형이 있습니다. 하나는 표준 앱 버전이고 두 번째는 맞춤 설정 앱입니다. 나는 새로운 기능을 구현해야하지만, 단지 사용자 정의를 위해, 그래서 그 새로운 기능은 표준 버전에없는 사용할 수 있습니다 사용자 정의에 대한 다른 빌드 변형에 다른 코드

productFlavors { 
     customConfig { 
      minSdkVersion 14 
      applicationId 'es.com.custom' 
      targetSdkVersion 22 
      versionCode 3 
      versionName '3.0.0' 
     } 
     standard { 
      minSdkVersion 14 
      applicationId 'es.com.standard' 
      targetSdkVersion 22 
      versionCode 3 
      versionName '3.0.0' 
     } 

. 내가 뭘해야하는지 잘 모르겠다.

if (getPackageName()==customConfig) 
    // do the custom things 
    else 
    //do the standard things 

답변

2

빌드 변종 Gradle을의 결과 :

1 .- 두 클래스, 표준 요구 사항 하나는 사용자의 요구 사항 표준 클래스에서
2 .- 하나는 그런 짓을 특정 규칙 집합 을 사용하여 빌드 유형 및 제품 맛보기에 구성된 설정, 코드 및 리소스를 결합합니다. 빌드 변형을 직접 구성하지 않아도 빌드 유형과 제품을 구성하는 제품 을 구성합니다.

if(BuildConfig.Flavor.equals("customConfig")) 
    { 

    } 
    else 
    { 

    } 

읽기 Building multiple flavors of an Android

2

각 맛의 소스 디렉토리를 작성해야합니다. 특정 풍미에 대해 별도의 파일을 유지 관리 할 수 ​​있습니다.

link을 통해 도움을 받으십시오.

1

간단한 방법으로이 작업을 수행 할 수 있습니다. 이제 프로젝트에 "standard"이라는 폴더가 있어야합니다. "customConfig표준"폴더와 동일한 폴더에 다른 이름의 "customConfig"폴더를 만들면됩니다 (또는 그레이를 동기화 한 후에 만들 수도 있습니다).

"customConfig"에 "res"라는 다른 폴더를 만듭니다 (이미 가질 수도 있음). 그런 다음 다른 폴더 "값"을 만듭니다. "값"폴더에서 값 파일을 만들 수 있습니다. 'values.xml'파일의 이름을 지정하고 프로젝트로 돌아갑니다. 당신은 "values.xml"파일은 다음과 같이해야합니다 :

if (getPackageName().equals(getString(R.string.custom_app_id)))// for custom 
// do the custom things 
else 
//do the standard things 

희망이 도움말 :

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="custom_app_id">es.com.custom</string>s 
</resources> 

지금 코드에서 당신이 당신이 변수있는 환경을 확인하실 수 있습니다!