This is weird because Both ProductFlavors and Build Types only have a
setter that receives a DefaultSigningConfig. There's no other DSL method
that receives a SigningConfigDsl.

Are you trying to put the object into the android.SigningConfigs collection
or directly on a build type/flavor?

I think we'd need to have a base plugin that has a DSL to allow you to
create the proper DSL object but nothing else, so that they are reusable in
modules.


On Fri, May 16, 2014 at 2:55 PM, Jake Wharton <[email protected]> wrote:

> Using the internal class directly works for now. I'll just follow the
> issue for an official solution.
>
> Thanks for the guidance.
>
>
> On Fri, May 16, 2014 at 2:53 PM, Jake Wharton <[email protected]>wrote:
>
>> Same problem:
>>
>> Cannot cast object 'DefaultSigningConfig{...}' with class 
>> 'com.android.builder.signing.DefaultSigningConfig' to class 
>> 'com.android.build.gradle.internal.dsl.SigningConfigDsl'
>>
>> I couldn’t get the fancy initialization to work so I resorted to:
>>
>> def signingDebug = new DefaultSigningConfig('debug')
>> signingDebug.storeFile = file('common/debug.keystore')
>> signingDebug.storePassword = 'password'
>> signingDebug.storeType = 'PKCS12'
>> signingDebug.keyAlias = 'debug'
>> signingDebug.keyPassword = 'password'
>>
>> def signingDogfood = new DefaultSigningConfig('dogfood')
>> signingDogfood.storeFile = file('common/dogfood.keystore')
>> signingDogfood.storePassword = 'password'
>> signingDogfood.keyAlias = 'dogfood'
>> signingDogfood.keyPassword = 'password'
>>
>> ext {
>>   androidPlugin = 'com.android.tools.build:gradle:0.10.+'
>>   compileSdkVersion = 19
>>   buildToolsVersion = '19.1.0'
>>
>>   signing = [
>>       debug: signingDebug,
>>       dogfood: signingDogfood
>>   ]
>> }
>>
>>
>>
>> On Fri, May 16, 2014 at 11:11 AM, Xavier Ducrohet <[email protected]>wrote:
>>
>>> https://code.google.com/p/android/issues/detail?id=69734
>>>
>>>
>>> On Fri, May 16, 2014 at 11:09 AM, Xavier Ducrohet <[email protected]>wrote:
>>>
>>>> I think you'd have to do:
>>>>
>>>> import com.android.builder.signing.DefaultSigningConfig
>>>>
>>>> ext {
>>>>   debugSigning = new DefaultSigningConfig('debug') {
>>>>      storeFile = file('common/debug.keystore')
>>>>      storePassword = "password"
>>>>      storeType = "PKCS12"
>>>>      keyAlias = "debug"
>>>>      keyPassword = "password",
>>>>   }
>>>> //... same for release.
>>>> }
>>>>
>>>> then in your projects you can do
>>>>
>>>> android {
>>>>   buildTypes {
>>>>     debug {
>>>>        signingConfig rootProject.ext.debugSigning
>>>>     }
>>>>   }
>>>> }
>>>>
>>>> This may or no be applicable to buildTypes/Flavors. I'd have to see how
>>>> we can better support this use-case which seem very useful when you have a
>>>> lot of modules.
>>>>
>>>>
>>>>
>>>>
>>>> On Fri, May 16, 2014 at 9:51 AM, Jake Wharton <[email protected]>wrote:
>>>>
>>>>> I’m trying to share parts of the configuration across multiple child
>>>>> projects using the ‘ext’ map. For simple types it works, but I can seem to
>>>>> share complex objects.
>>>>>
>>>>> For example, the signing configuration is something that I don’t want
>>>>> to have to specify in every project. I’ve tried all combinations of object
>>>>> configuration but none seem to work:
>>>>>
>>>>> ext {
>>>>>   androidPlugin = 'com.android.tools.build:gradle:0.10.+'
>>>>>   compileSdkVersion = 19
>>>>>   buildToolsVersion = '19.1.0'
>>>>>
>>>>>   signing = [
>>>>>     debug: [
>>>>>       storeFile: file('common/debug.keystore'),
>>>>>       storePassword: "password",
>>>>>       storeType: "PKCS12",
>>>>>       keyAlias: "debug",
>>>>>       keyPassword: "password",
>>>>>     ] as com.android.builder.model.SigningConfig,
>>>>>
>>>>>     dogfood: [
>>>>>       storeFile: file('common/dogfood.keystore'),
>>>>>       storePassword: "password",
>>>>>       keyAlias: "dogfood",
>>>>>       keyPassword: "password",
>>>>>     ] as com.android.builder.model.SigningConfig,
>>>>>   ]
>>>>> }
>>>>>
>>>>> This particular one complains upon use with:
>>>>>
>>>>> Cannot cast object '{...}' with class 'com.sun.proxy.$Proxy29' to class 
>>>>> 'com.android.build.gradle.internal.dsl.SigningConfigDsl'
>>>>>
>>>>> I tried using the internal DSL type directly just for kicks but it
>>>>> also ends up failing.
>>>>>
>>>>> Is there a good way to share things like signing configs, build types,
>>>>> etc. in the root for reference by child projects?
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "adt-dev" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Xavier Ducrohet
>>>> Android SDK Tech Lead
>>>> Google Inc.
>>>> http://developer.android.com | http://tools.android.com
>>>>
>>>> Please do not send me questions directly. Thanks!
>>>>
>>>
>>>
>>>
>>> --
>>> Xavier Ducrohet
>>> Android SDK Tech Lead
>>> Google Inc.
>>> http://developer.android.com | http://tools.android.com
>>>
>>> Please do not send me questions directly. Thanks!
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "adt-dev" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "adt-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Xavier Ducrohet
Android SDK Tech Lead
Google Inc.
http://developer.android.com | http://tools.android.com

Please do not send me questions directly. Thanks!

-- 
You received this message because you are subscribed to the Google Groups 
"adt-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to