2017-07-04 10 views
3

Androidアプリの継続的な統合ビルドを設定しようとしています。 私はCircleCiプラットフォームを使用しています。 私のアプリケーションはKeystore.jksファイルをローカルに保存しますが、CircleCiはアプリに署名する必要があります。 gitリポジトリにファイルを保存せずにどのように達成できますか?リポジトリが非公開である間、それについて心配するべきではないでしょうか?CirlceCiビルド用のAndroid KeyStoreファイルはどこに保存しますか?

私のGradle署名コンフィグ:

signingConfigs { 
    if (System.getenv("CIRCLECI")) { 
     release { 
      keyAlias '****' 
      keyPassword '****' 
      storeFile file(System.getenv("******")) 
      storePassword '****' 
     } 
    }else{ 
     release { 
      ... 
     } 
    } 
} 

マイcircle.yml:

general: 
    artifacts: 
     - /home/ubuntu/my-app/app/build/outputs/apk/ 
machine: 
    environment: 
    ANDROID_HOME: /usr/local/android-sdk-linux 
dependencies: 
    override: 
    - chmod +x gradlew 
test: 
    override: 
    - ./gradlew assemble 

私は環境変数としてCircleCi上のキーストアファイルを保存しようとしましたが、それは動作していない、私のビルドが失敗例外:

> Execution failed for task ':app:validateSigningDemoRelease'. 
> > Keystore file /home/ubuntu/my-app/app/ HERE_IS_THE_KEYSTORE not found for signing config 'release'. 

符号なしおよびデバッグビルドが正常終了します。

私はまた、あなたが何かを提案する場合は何が違うのCIのプラットフォームを使用して開いています。

アドバイスを事前にいただきありがとうございます。私にとって

+0

あなたの問題のためのあなたの最終的な解決策は何ですか? – Dharmendra

答えて

0

次の2つのソリューションを持っている:

  • それはプライベートデポだとあなたがそれを使用して一つだけですので、あなたがあなたのキーをプッシュすることができます。

  • 私の好適な解決策は、あなたが(たとえば)circleCIを呼び出して、あなたがプッシュしていることを別のキーを作成することです。個人的に私は、このソリューションを使用

マイbuild.gradle

signingConfigs { 
     Keys { 
      keyAlias 'mykey' 
      storeFile file('../private_key/upload_key.jks') 
      keyPassword '' 
      storePassword '' 
     } 

     Circleci { 
      keyAlias 'key' 
      storeFile file('../private_key/debug_key.jks') 
      keyPassword '' 
      storePassword '' 
     } 
    } 
buildTypes { 
     release { 
      shrinkResources true 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 
        'proguard-rules.pro' 
      signingConfig signingConfigs.Keys 
     } 
     debug { 
      signingConfig signingConfigs.Keys 
     } 
     circleci{ 
      signingConfig signingConfigs.Circleci 
     } 
    } 
関連する問題