optimizely / android-sdk

Android SDK for Optimizely Feature Experimentation and Optimizely Full Stack (legacy)
https://docs.developers.optimizely.com/experimentation/v4.0.0-full-stack/docs/android-sdk
Apache License 2.0
55 stars 39 forks source link

1.5.0 Proguard issue with payload objects getting sent correctly to optimizely backend #162

Closed geoff-powell closed 6 years ago

geoff-powell commented 6 years ago

With the latest release 1.5.0 it says that the proguard file is included in the sdk. We noticed our activate and track calls not showing up in the optimizely dashboard. Then we saw that the payload was being obfuscated like so:

{
  "c": "UserID",
  ...
  "k": false,
  "m": "22",
  "a": "android-sdk",
  "b": "1.5.0"
}

So then looking through your src we added the following proguard rules to get it to work end to end.

Proguard Rules:

# Keep Payload classes that get sent to Optimizely's backend
-keep class com.optimizely.ab.event.internal.payload.** { *; }

# Keep these for logging purposes
-keep class com.optimizely.ab.bucketing.DecisionService { *; }
-keep class com.optimizely.ab.Optimizely { *; }

Just wanted to ask if this is because of our Proguard config or could it be a change to the libraries proguard config?

thomaszurkan-optimizely commented 6 years ago

We tried to narrow the scope of the proguard rules and made them too narrow. I will update a patch today. Thank you!

thomaszurkan-optimizely commented 6 years ago

1.5.1 was released. We removed 1.5.0