2017-06-02 13 views
2

私はこのapp1を持っており、app1からapp2を作成したいと思いますが、これはほぼ同じアプリですが、レイアウトの違いがあります。私はそれをproductFlavorsを使って行うことができます。結果はPlayストアの2つのアプリである必要があります。無料でも、ユーザーも携帯電話で両方を使用できます。同じアプリケーション(フレーバー)から2つのデバッグAPKをインストール

しかし私は両方のapkをデバッグ用にビルドすることができますが、私がインストールすると、電話で別のものをインストールすることはできません。両方が店舗にアップロードされた後にこれが起こりますか?

これは私のGradleです:マニフェストにパッケージ名をハードコードしないでください

<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE"/> 
<permission 
    android:name="${applicationId}.permission.C2D_MESSAGE" 
    android:protectionLevel="signature"/> 

defaultConfig { 
    applicationId "com.example.app" 
    minSdkVersion 16 
    targetSdkVersion 25 
    versionCode 48 
    versionName "3.1.1" 

    multiDexEnabled true 
} 

signingConfigs { 
    String releaseFilename = "/.androidReleaseKeys/example_release.properties" 

    Properties props = new Properties() 
    props.load(new FileInputStream(file(releaseFilename))) 


    release { 
     storeFile file(props.getProperty('keystore')) 
     storePassword props.getProperty('keystore.password') 
     keyAlias props.getProperty('keyAlias') 
     keyPassword props.getProperty('keyAlias.password') 
    } 

} 

productFlavors{ 
    app1{ 
     applicationId "com.example.app" 
     buildTypes { 

      debug { 
       buildConfigField "String", "GOOGLEMAPS_API_KEY", "\"${googleMapsAPIDev}\""; 
       debuggable true 
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
      } 


      release { 
       signingConfig signingConfigs.release 
       buildConfigField "String", "GOOGLEMAPS_API_KEY", "\"${googleMapsAPIRelease}\""; 
       minifyEnabled false 
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
      } 
     } 
    } 

    app2{ 
     applicationId "com.example2.app2" 
     versionCode 1 
     versionName "1" 
     multiDexEnabled true 

     buildTypes { 

      debug { 
       buildConfigField "String", "GOOGLEMAPS_API_KEY", "\"${googleMapsAPIDev}\""; 
       debuggable true 
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
      } 


      release { 
       signingConfig signingConfigs.release 
       buildConfigField "String", "GOOGLEMAPS_API_KEY", "\"${googleMapsAPIRelease}\""; 
       minifyEnabled false 
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
      } 
     } 

    } 
+0

コンソールで新しいアプリケーションを作成し、彼女のためだけに新しいキーストアを作成する必要がありますか? (私は、あなたが複数のアプリケーションに同じキーストアを使用できる場所を読んでいます) –

+0

2番目のアプリケーションをインストールすると、どのようなエラーが 'adb'によって返されますか? – Artyom

+0

メッセージでインストールできませんでした。INSTALL_FAILED_DUPLICATE_PERMISSION perm = com.example1.app.permission.C2D_MESSAGE pkg = com.example2.app(ポップアップだけではありません)2番目のマニフェストを作成して変更する必要があると思います。 –

答えて

1

${applicationId}プレースホルダとマニフェストにこの権限を宣言します。

+0

私は、それを試してみましたが、マニフェストのパッケージフィールドはどうですか、$ {applicationId}を使用していると思われますが、adbはpackageNameを読み取れないと言います –

+0

マニフェストではどのようにパッケージを設定しますか?あなたの ''タグを投稿してください。 – Artyom

+0

このように残しましたが、残りのマニフェストでそれが働いた、私は今、2つのアプリがインストールされている。ありがとう、私はあなたの答えを受け入れた –

関連する問題