рдЬреЗрдирдХрд┐рдВрд╕ + рдЧреНрд░реИрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг

рдореИрдВ Android рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдВрдпреЛрдЬрди рдкрд░ рдЕрдкрдиреА рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛, рдкрд╣рд▓рд╛ рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рдпреБрдХреНрдд рдПрдХ рд╕рд░рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИ, рджреВрд╕рд░рд╛ рдПрдВрдбреНрд░реЙрдЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред

рдЕрдВрдд рдореЗрдВ, рд╣рдо рдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд apk рдлрд╝рд╛рдЗрд▓ рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ, рдЬреЗрдирдХрд┐рдВрд╕ рдмрд┐рд▓реНрдб рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрд╕реЗрдВрдмрд▓реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ


  1. рдЬреЗрдирдХрд┐рдВрд╕ рдЖрд╡рд╢реНрдпрдХ рдкреНрд▓рдЧрдЗрдиреНрд╕
    • Android рдПрдореБрд▓реЗрдЯрд░ рдкреНрд▓рдЧрд┐рди
    • Git Plugin (рдпрджрд┐ рдЖрдк git рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)
    • рдПрдХрд╛рдзрд┐рдХ SCMs рдкреНрд▓рдЧрдЗрди (рдХрдИ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП)
    • Xvnc рдкреНрд▓рдЧрдЗрди (рдПрдо рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХреНрд╕ рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдПрдореБрд▓реЗрдЯрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП)
  2. Android рдПрд╕рдбреАрдХреЗ
    рдпрд╣рд╛рдБ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ред рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдзрд╛рд░рд╛ рдбрд╛рдЙрдирд▓реЛрдб -> рдПрд╕рдбреАрдХреЗ рдЙрдкрдХрд░рдг рдХреЗрд╡рд▓
  3. Gradle
    рдпрд╣рд╛рдВ рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ (gradle - ** - bin.zip) рдФрд░ рдЗрд╕реЗ / usr / local / lib рдкрд░ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ
  4. рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░
    ANDROID_HOME = / usr / рд╕реНрдерд╛рдиреАрдп / lib / android / sdk
    GRADLE_HOME = / usr / рд╕реНрдерд╛рдиреАрдп / lib / gradle-1.8
    JAVA_HOME = / usr / lib / jvm / jdk1.7.0_03
    рдкрде = $ рдкрде: $ ANDROID_HOME / рдЙрдкрдХрд░рдг: $ ANDROID_HOME / рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рдЙрдкрдХрд░рдг: $ JAVA_HOME / рдмрд┐рди: $ GRADLE_HOME / рдмрд┐рди
  5. рдПрдореБрд▓реЗрдЯрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА
    рдпрджрд┐ рдЬреЗрдирдХрд┐рдВрд╕ 64-рдмрд┐рдЯ OS рдкрд░ рдЪрд▓рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ ia32-lib рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдПрдореБрд▓реЗрдЯрд░ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрдЧрд╛
    sudo apt-get install ia32-libs

рдЬрдм рд╕рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдкреВрд░реА рд╣реЛ рдЬрд╛рдПрдВ, рддреЛ рд╕реЗрдЯрдЕрдк рдкрд░ рдЬрд╛рдПрдВ

рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ рдореИрдВ рдПрдХреНрд▓рд┐рдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреБрд░рд╛рдиреА рд╕рдВрд░рдЪрдирд╛ рдЬреЛ рдХрд┐ рдврд╛рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ androidStudio рдмрдирд╛рддрд╛ рд╣реИ)ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдЧреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗ:
  рдкрд░рд┐рдпреЛрдЬрдирд╛
  | -рд╕реЗ
  | -src
  | -рд╕реЗрдЯреНрд╕
  | -рд▓рд┐рдмреНрд╕
  | -рд╕реНрдЯреЗрд╕реНрдЯ (рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд╛рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░)
      | -src
      | -рд╕реЗ
      | -рдЕрдВрджрд░реЛрдЗрдбрдореИрдирд┐рдлреЗрд╕реНрдЯ.рдПрдХреНрд╕рдПрдордПрд▓
  | -рдЕрдВрджрд░реЛрдЗрдбрдореИрдирд┐рдлреЗрд╕реНрдЯ.рдПрдХреНрд╕рдПрдордПрд▓
  | -build.gradle
  | -рдЧреНрд░реЗрдбрд▓ .рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛рдПрдБ 

рд╕рдорд╛рдпреЛрдЬрди


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдирд┐рдпрдорд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЬрдбрд╝ рдореЗрдВ build.gradle рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдХрджрдо рд╣реИ
buile.gradle
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.6+' } } apply plugin: 'android' android { compileSdkVersion 18 buildToolsVersion "18.1.1" defaultConfig { minSdkVersion 8 targetSdkVersion 18 testPackageName "com.project.tests" testInstrumentationRunner "android.test.InstrumentationTestRunner" } sourceSets { main { manifest.srcFile file('AndroidManifest.xml') java.srcDirs = ['src'] resources.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } instrumentTest { java.srcDirs = ['tests/src'] manifest.srcFile file('tests/AndroidManifest.xml') java.srcDirs = ['tests/src'] resources.srcDirs = ['tests/src'] res.srcDirs = ['tests/res'] assets.srcDirs = ['tests/assets'] } } dependencies { compile fileTree(dir: 'libs', include: '*.jar') } //     if(project.hasProperty("debugSigningPropertiesPath") && project.hasProperty("releaseSigningPropertiesPath")) { //       File debugPropsFile = new File(System.getenv('HOME') + "/" + project.property("debugSigningPropertiesPath")) File releasePropsFile = new File(System.getenv('HOME') + "/" + project.property("releaseSigningPropertiesPath")) if(debugPropsFile.exists() && releasePropsFile.exists()) { Properties debugProps = new Properties() debugProps.load(new FileInputStream(debugPropsFile)) Properties releaseProps = new Properties() releaseProps.load(new FileInputStream(releasePropsFile)) //     signingConfigs { debug { storeFile file(debugPropsFile.getParent() + "/" + debugProps['keystore']) storePassword debugProps['keystore.password'] keyAlias debugProps['keyAlias'] keyPassword debugProps['keyPassword'] } release { storeFile file(releasePropsFile.getParent() + "/" + releaseProps['keystore']) storePassword releaseProps['keystore.password'] keyAlias releaseProps['keyAlias'] keyPassword releaseProps['keyPassword'] } } buildTypes { debug { signingConfig signingConfigs.debug } release { signingConfig signingConfigs.release } } } } } 
рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ android.sourceSets рдореЗрдВ рд▓рд┐рдЦрдд рдЕрдиреБрднрд╛рдЧ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдлрд╝реЛрд▓реНрдбрд░ рдкрде рдЗрдВрдЧрд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдЬрдм рдореИрдВрдиреЗ рдЧреНрд░реИрдбрд▓ рдХреЗ рд╕рд╛рде рдирд┐рдкрдЯрд╛, рддреЛ рдореИрдВрдиреЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЗрдЦ рджреЗрдЦрд╛ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд▓рд┐рдЦрд╛ рдерд╛ рдХрд┐ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдЕрд▓рдЧ рдХрд╛рд░реНрдп рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрддрд╕реЗрдЯ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬреВрдирд┐рдЯ рдЬреЛрдбрд╝реЗрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдЕрдкрдирд╛ рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд┐рдпрд╛, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЬреЗрдирдХрд┐рдВрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВред

рдЬреЗрдирдХреАрдВрд╕ рд╕реЗрдЯрдЕрдк


рдкрд╣рд▓рд╛ рдХрджрдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рднрдВрдбрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реИред рдлрд┐рд░ рдЖрдкрдХреЛ рдмрд┐рд▓реНрдб рдХреЗ рджреМрд░рд╛рди рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЛ рджреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЪреБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдпрд╛ рддреЛ рдПрдХ рдореМрдЬреВрджрд╛ рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рдпрд╛ рдПрдХ рдирдпрд╛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред рдЙрд╕реА рд╕рдордп рдЖрдЗрдЯрдо рдПрдореБрд▓реЗрдЯрд░ рд╡рд┐рдВрдбреЛ рдкрд░ рдПрдХ рдЯрд┐рдХ рдЫреЛрдбрд╝ рджреЗрдВ
рдЕрдЧрд▓рд╛ рдЪрд░рдг рдЗрдирд╡реЛрдХ рдЧреНрд░реИрдбрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрд╕реЗрдВрдмрд▓реА рдЪрд░рдг рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реИ рдФрд░ рдЧреНрд░реИрдбрд▓ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрдорд╛рдВрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдмрд┐рд▓реНрдб рдФрд░ рдХрдиреЗрдХреНрдЯ рдЪреЗрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
рдЫрд╡рд┐

рдЕрдВрддрд┐рдо рдмрд╛рдд рдЖрдкрдХреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рдмрд╛рдж рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
1. рдкреНрд░рдХрд╛рд╢рд┐рдд JUnit рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рд░рд┐рдкреЛрд░реНрдЯ (рд╣рдо рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ)ред рдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде, xml рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рдореЗрдВ, рдирд┐рдореНрди рдкрде рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
**/build/instrumentTest-results/*/*.xml
рдЧреНрд░реИрдбрд▓ 2 рдкреНрд░рдХрд╛рд░ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рддрд╛ рд╣реИ - html рдФрд░ xmlред HTML рд░рд┐рдкреЛрд░реНрдЯ рдмрд┐рд▓реНрдб / рд░рд┐рдкреЛрд░реНрдЯ / рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯ / рдХрдиреЗрдХреНрдЯ / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬреЗрдирдХрд┐рдВрд╕ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ xml рд░рд┐рдкреЛрд░реНрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреА рд╣реЛрдЧреАред
2. рдкреБрд░рд╛рд▓реЗрдЦ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ (рд╣рдо рд╕реАрдзреЗ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрддреЗ рд╣реИрдВ)ред рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдкрде:
**/build/apk/workspace-release.apk
рдЕрдм рдЖрд╡реЗрджрди рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕

рдЖрд╡реЗрджрди рд╣рд╕реНрддрд╛рдХреНрд╖рд░


рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдВрдЬреАрдЯреВрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдИ рдЧрдИ рдПрдХ рдХреБрдВрдЬреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧреАред рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдЖрджреЗрд╢ рд╣реИ:
keytool -genkey -v -alias appAlias -keyalg RSA -keysize 2048 -keystore release.keystore -validity 10000
рдкреНрд░рддреНрдпреЗрдХ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЙрдкрдирд╛рдо рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдлрд┐рд░ рдЖрд╡реЗрджрди рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рддреЗ рд╕рдордп рдЗрд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдХреБрдВрдЬреА рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рддрд╣рдд рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдХреБрдВрдЬреА рд╣реЛрдиреЗ рдкрд░, рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд┐рд╕реНрдЯрдо рдЗрд╕реЗ рдПрдХ рдФрд░ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рди рд▓реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реАрдзреЗ CI рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореИрдВрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдореЗрдВ gradle.properties рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝рд╛, рдЬрд┐рд╕рдореЗрдВ рдмрд╕ рдХреБрдЫ рд╣реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
 releaseSigningPropertiesPath=.androidSigning/releaseProperties debugSigningPropertiesPath=.androidSigning/debugProperties 
рдЬрд╛рд░реА рдХрд░рдиреЗ рдХрд╛ рдорд╛рди .SigningPropertiesPath рдкрде рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ (рдШрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖, ~ / .androidSigning /) рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдХреБрдВрдЬреА (рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ рдЙрдкрдирд╛рдо) рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд┐рдд рд╣реИред рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ 4 рдлрд╛рдЗрд▓реЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП:
release.keystore - рд░рд┐рд▓реАрдЬрд╝ рдмрд┐рд▓реНрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬреА
рд░рд┐рд▓реАрдЬрд╝рдкреНрд░реЛрдкрд░реЗрдЯреА - рд░рд┐рд▓реАрдЬрд╝ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░
debug.keystore - рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреАрдмрдЧ рдХреА рдХреБрдВрдЬреА
debugProperties - рдбреАрдмрдЧ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░

рдкреНрд░рддреНрдпреЗрдХ * рдЧреБрдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдирд┐рдореНрди рд╕рдВрд░рдЪрдирд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:
 keystore=- (   ) keystore.password=    keyAlias=alias     keyPassword=   

рдПрдХ рдЙрджрд╛рд╣рд░рдг:
 keystore=release.keystore keystore.password=mypassword keyAlias=appAlias keyPassword=mypassword 
рдХреБрдВрдЬреА рдмрдирд╛рддреЗ рд╕рдордп рдЗрди рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдиреНрдп рд╕рднреА рдХрд╛рд░реНрдп рдмрд┐рд▓реНрдб.рдЧреНрд░реЗрдб рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЧрдП рдереЗред рдЧреНрд░реИрдбрд▓ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЕрдВрджрд░ рдЖрдк рдирд┐рдпрдорд┐рдд рдЬрд╛рд╡рд╛ рдХреЛрдб рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдПрдХ рд╕рдорд╛рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рддрдВрддреНрд░ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ред рдпрд╣реА рд╣реИ, рдЕрдм рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реБрдЖ рдЖрд╡реЗрджрди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдм рдЖрдЗрдП рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рджреВрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ рдЬреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдПрдВрдбреНрд░реЙрдЗрдб-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛


рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рднрд┐рдиреНрди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╣реИрдВред рдЬреЗрдирдХрд┐рдВрд╕ рдХреЗ рд▓рд┐рдП рдХрдИ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдорд▓реНрдЯреАрдкрд▓ SCMs рдкреНрд▓рдЧрдЗрди рдкреНрд▓рдЧрдЗрди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдкрд╣рд▓реА рдмрд╛рдд рдлрд┐рд░ рд╕реЗ рдЧреНрд░реЗрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдирд╛ рд╣реИред рдкрд╣рд▓реА рдлрд╝рд╛рдЗрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╣реИ
рдкреБрд╕реНрддрдХрд╛рд▓рдп build.gradle
 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.6.3' } } apply plugin: 'android-library' android { compileSdkVersion 18 buildToolsVersion "19.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 18 testPackageName "com.project.tests" testInstrumentationRunner "android.test.InstrumentationTestRunner" } sourceSets { main { manifest.srcFile file('AndroidManifest.xml') java.srcDirs = ['src'] resources.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } instrumentTest { manifest.srcFile file('tests/AndroidManifest.xml') java.srcDirs = ['tests/src'] resources.srcDirs = ['tests/src'] res.srcDirs = ['tests/res'] assets.srcDirs = ['tests/assets'] } } dependencies { compile fileTree(dir: 'libs', include: '*.jar') } } 
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдореБрдЦреНрдп рдЕрдВрддрд░ рд▓рд╛рдЧреВ рдкреНрд▓рдЧрдЗрди рд╣реИ: рдкреНрд▓рдЧрдЗрди рд▓рд╛рдЧреВ рдХрд░реЗрдВ: 'рдПрдВрдбреНрд░реЙрдЗрдб-рд▓рд╛рдЗрдмреНрд░реЗрд░реА'

рджреВрд╕рд░рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рд╣реИ
рдкрд░рд┐рдпреЛрдЬрдирд╛ build.gradle
 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.6.3' } } apply plugin: 'android' android { compileSdkVersion 18 buildToolsVersion "19.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 18 } sourceSets { main { manifest.srcFile file('AndroidManifest.xml') java.srcDirs = ['src'] resources.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } } dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile project(':MyLibrary') } //     if(project.hasProperty("debugSigningPropertiesPath") && project.hasProperty("releaseSigningPropertiesPath")) { //       File debugPropsFile = new File(System.getenv('HOME') + "/" + project.property("debugSigningPropertiesPath")) File releasePropsFile = new File(System.getenv('HOME') + "/" + project.property("releaseSigningPropertiesPath")) if(debugPropsFile.exists() && releasePropsFile.exists()) { Properties debugProps = new Properties() debugProps.load(new FileInputStream(debugPropsFile)) Properties releaseProps = new Properties() releaseProps.load(new FileInputStream(releasePropsFile)) //     signingConfigs { debug { storeFile file(debugPropsFile.getParent() + "/" + debugProps['keystore']) storePassword debugProps['keystore.password'] keyAlias debugProps['keyAlias'] keyPassword debugProps['keyPassword'] } release { storeFile file(releasePropsFile.getParent() + "/" + releaseProps['keystore']) storePassword releaseProps['keystore.password'] keyAlias releaseProps['keyAlias'] keyPassword releaseProps['keyPassword'] } } buildTypes { debug { signingConfig signingConfigs.debug } release { signingConfig signingConfigs.release } } } } } 

рдЕрдм рдЖрдкрдХреЛ рдЬреЗрдирдХрд┐рдВрд╕ рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, "рд╕реНрд░реЛрдд рдирд┐рдпрдВрддреНрд░рдг" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдирд╣реАрдВ рдмрд▓реНрдХрд┐ "рдорд▓реНрдЯреАрдкрд▓ SCMs" рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред рдкрд╣рд▓рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рджреВрд╕рд░рд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рд╣реИ, рдЬрдмрдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯрд┐рдВрдЧ "рдПрдХ рдЙрдк-рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдб рд╕реНрдерд┐рдд рд╣реЛрдЧрд╛ред рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо рдЙрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рд╣рдордиреЗ build.gradle рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ MyLibrary рд╣реИ)
compile project(':MyLibrary')
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрд╛рдордХрд╛рдЬреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд MyLibrary рдлрд╝реЛрд▓реНрдбрд░ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрдерд┐рдд рд╣реЛрдЧрд╛ред

рдЕрдиреНрдп рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдПрдХ рдирд┐рдпрдорд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕реА рд╣реА рд╣реИрдВред

рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ


рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдореБрдЭреЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкрд░реАрдХреНрд╖рдг рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рдкрд░, рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди, рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, 3 рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рджреЗрд╡, рдордВрдЪ рдФрд░ рдареЗрд╕ рдХреЛ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди / рдорд╛рди / environment.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореИрдВрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реЗрдЯрд┐рдВрдЧ рдХреА рд╣реИ, рдЗрд╕рдореЗрдВ рд╡рд╣ URL рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдкрд░реНрдпрд╛рд╡рд░рдг рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ 3 рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ: dev.xml, stage.xml рдФрд░ prod.xmlред рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рдЬрдЧрд╣ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред xmlред
рдЬреЗрдирдХрд┐рдВрд╕ рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╢реЗрд▓ рдХрдорд╛рдВрдб рд▓реЙрдиреНрдЪ рдХреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рдкрд╣рд▓реЗ рдЪрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
cp $WORKSPACE/environment/prod.xml $WORKSPACE/res/values/environment.xml

рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ
www.gradle.org/docs/current/javadoc - рдЧреНрд░реЗрдб рджрд╕реНрддрд╛рд╡реЗрдЬрд╝
tools.android.com/tech-docs/new-build-system/user-guide рддрдХрдиреАрдХреА рджрд╕реНрддрд╛рд╡реЗрдЬ
tools.android.com/recent/updatingsdkfromcommand-line - рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдХреЛ рдХрдВрд╕реЛрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ (рдпрджрд┐ рдХреЛрдИ рдПрдХреНрд╕ рдирд╣реАрдВ рд╣реИрдВ рддреЛ)
vimeo.com/34436402 - рдЧреНрд░реЗрдбрд▓ рд░реИрдкрд░ рдХреЗ рдХрд╛рдо рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╡реАрдбрд┐рдпреЛ

Source: https://habr.com/ru/post/In205308/


All Articles