首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Cocos2d-JS游戏中Playscape SDK 1.14上的预保护混淆崩溃

在Cocos2d-JS游戏中Playscape SDK 1.14上的预保护混淆崩溃
EN

Stack Overflow用户
提问于 2015-09-08 22:18:39
回答 1查看 194关注 0票数 2

我们已经更新到Playscape SDK 1.14,当我们试图构建一个发行版APK时,它会在试图混淆我们的库时崩溃。

这是我们使用的proguard.cfg:

代码语言:javascript
复制
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-keep public class !com.pupgam.** { *; }
-dontpreverify
-dontoptimize
-verbose

-keep public class com.pupgam.ads.AdListener { *; }
-keep public class com.pupgam.ads.VideoListener { *; }
-keep public class com.pupgam.notifications.OnceService { *; }
-keep public class com.pupgam.crossyskyguriko.CrossySkyMainActivity { *; }
-keep public class com.pupgam.manager.IabManager { *; }

-keepattributes *Annotation*
-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
    native <methods>;
    static <methods>;
}

-keepclassmembers,allowobfuscation class * {
    @javax.inject.* *;
    @dagger.* *;
    <init>();
}

-keep class * extends java.util.ListResourceBundle {
    protected Object[][] getContents();
}

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
    public static final *** NULL;
}

-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
    @com.google.android.gms.common.annotation.KeepName *;
}

-keepnames class * implements android.os.Parcelable {
    public static final ** CREATOR;
}

-keep class **$$ModuleAdapter
-keep class **$$InjectAdapter
-keep class **$$StaticInjection

-keepattributes Signature

-keepattributes *Annotation*

-keep class com.playscape.** { *; }
-keep class com.mominis.** { *; }
-keep class mobpartner.** { *; }
-keep class mominis.** { *; }
-keep class com.android.** { *; }
-keep class com.android.volley.* {*;}
-keep class com.google.vending.* {*;}
-keep class javax.** { *; }
-keep class org.** { *; }
-keep class com.amazon.** { *; }
-keep class com.startapp.** { *; }
-keep class com.millennialmedia.** { *; }
-keep class com.chartboost.** { *; }
-keep class com.jirbo.** { *; }
-keep class com.google.** { *; }
-keep class com.facebook.** { *; }
-keep class com.vungle.** { *; }

-dontnote android.support.**
-dontnote com.adience.sdk.SdkBootReceiver
-dontnote com.adience.sdk.av
-dontnote com.google.android.gms.maps.internal.u
-dontnote com.google.gson.internal.UnsafeAllocator
-dontnote com.millennialmedia.google.gson.internal.UnsafeAllocator
-dontnote com.startapp.android.publish.gson.internal.UnsafeAllocator
-dontnote com.vungle.publisher.cm

-dontnote com.google.vending.licensing.ILicensingService
-dontnote com.android.vending.licensing.ILicensingService
-dontnote com.millennialmedia.android.VideoPlayer
-dontnote com.mopub.mobileads.MoPubActivity
-dontnote com.mopub.mobileads.MraidActivity
-dontnote com.mopub.mobileads.MraidBrowser
-dontnote com.mopub.mobileads.MraidVideoPlayerActivity
-dontnote com.playscape.utils.gcm.GCMBroadcastReceiver
-dontnote com.playscape.utils.kernel.NotificationActionListener
-dontnote com.vungle.sdk.VungleIntentService
-dontnote mominis.gameconsole.activities.RedirectToMarketActivity
-dontnote mominis.gameconsole.services.impl.SocialService

-keep class com.google.vending.licensing.ILicensingService
-keep class com.android.vending.licensing.ILicensingService
-keep class com.millennialmedia.android.VideoPlayer
-keep class com.mopub.mobileads.MoPubActivity
-keep class com.mopub.mobileads.MraidActivity
-keep class com.mopub.mobileads.MraidBrowser
-keep class com.mopub.mobileads.MraidVideoPlayerActivity
-keep class com.playscape.utils.gcm.GCMBroadcastReceiver
-keep class com.playscape.utils.kernel.NotificationActionListener
-keep class com.vungle.sdk.VungleIntentService
-keep class mominis.gameconsole.activities.RedirectToMarketActivity
-keep class mominis.gameconsole.services.impl.SocialService

-dontwarn com.millennialmedia.android.**

-dontwarn com.facebook.**
-dontwarn com.amazon.**
-dontwarn com.adience.sdk.e.y
-dontwarn com.playscape.gcm.services.impl.ClientSettings
-dontwarn com.playscape.utils.StrictModeDisabler

-dontwarn com.playscape.iap_utils.IPurchaseEventHandler$IPurchaseEventListener
-dontwarn mominis.common.MoDiMapper
-dontwarn com.playscape.lifecycle.ActivityLifeCycle
-dontwarn com.playscape.iap_utils.IPurchaseEventHandler
-dontwarn com.playscape.iap.AndroidRemoteLoggerAspect
-dontwarn com.playscape.lifecycle.ActivityAspect
-dontwarn com.playscape.playscapeapp.AutomatedEventLoger
-dontwarn com.playscape.playscapeapp.PlayscapeStartup
-dontwarn com.playscape.publishingkit.Playscape
-dontwarn com.playscape.publishingkit.PlayscapeActivityLifeCycle
-dontwarn com.playscape.publishingkit.PlayscapeDemoActivity
-dontwarn com.playscape.lifecycle.AppAspect
-dontwarn com.playscape.playscapeapp.AutomatedEventLoger$1
-dontwarn com.playscape.playscapeapp.PlayscapeStartup$AppMapper
-dontwarn com.playscape.playscapeapp.PlayscapeStartup$AppMapper

-dontnote com.playscape.playscapeapp.PlayscapeStartup
-dontnote com.playscape.publishingkit.Playscape

-keep class com.amatellanes.android.MainActivity
-dontwarn com.vungle.publisher.location.GoogleLocationClientDetailedLocationProvider
-dontnote com.google.gson.internal.$Gson$Types$ParameterizedTypeImpl
-dontnote com.millennialmedia.google.gson.internal.$Gson$Types$ParameterizedTypeImpl
-dontnote com.startapp.android.publish.gson.internal.$Gson$Types$ParameterizedTypeImpl
-dontnote org.aspectj.internal.lang.reflect.AjTypeImpl
-dontnote org.aspectj.internal.lang.reflect.StringToType$1
-dontnote com.google.android.gms.maps.internal.x

我们使用了默认的proguard-project.txt,并将其与当前配置合并,其中我们希望混淆除以下之外的所有类:

代码语言:javascript
复制
-keep public class com.pupgam.ads.AdListener { *; }
-keep public class com.pupgam.ads.VideoListener { *; }
-keep public class com.pupgam.notifications.OnceService { *; }
-keep public class com.pupgam.crossyskyguriko.CrossySkyMainActivity { *; }
-keep public class com.pupgam.manager.IabManager { *; }

在执行基于custom_rules.xml的过程保护时报告的异常:

代码语言:javascript
复制
BUILD FAILED
/Users/it4up/Desktop/CrossySky/frameworks/runtime-src/proj.android/custom_rules.xml:556: The following error occurred while executing this line:
/Users/it4up/Desktop/CrossySky/frameworks/runtime-src/proj.android/custom_rules.xml:558: The following error occurred while executing this line:
/Users/it4up/Desktop/CrossySky/frameworks/runtime-src/proj.android/custom_rules.xml:570: The following error occurred while executing this line:
/Users/it4up/Desktop/CrossySky/frameworks/runtime-src/proj.android/custom_rules.xml:538: The following error occurred while executing this line:
/Users/it4up/Desktop/CrossySky/frameworks/runtime-src/proj.android/custom_rules.xml:497: Please correct the above warnings first.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-14 07:03:54

您的Pro卫兵信任文件应该包含以下标志:

  • -keepattributes Signature
  • -dontwarn。指定不对未解决的引用和其他重要问题发出警告;
  • -dontnote。指定不打印有关配置中潜在错误或遗漏的注释。

另外,只需为您想要保持的类添加-keep class,而不需要混淆。您可以熟悉这里

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32468157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档