一.Android
官方参考文档 : http://wiki.mob.com/mobpush-android-for-unity/
官方示例 : https://github.com/MobClub/MobPush-For-Unity
官方文档很详细了,这里只是记录踩的坑以及细节,这里只是博主的一些不注意的地方,如有错,请指正
①.修改配置信息
官网只是说配置信息,但却没说在哪里修改,我一直找mainTemplate.gradle和proguard-user.txt,还以为是要增加这个内容呢,后面才发现是在Plugins\Android\MobPush\MobSDK.gradle中修改
②.混淆文件的配置,也就是MobPush提供的proguard-user.txt文件
配置如下 :
buildTypes {
release {
minifyEnabled true// 是否混淆
//shrinkResources false// 是否去除无效的资源文件
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-user.txt' //Unity2017及以上
//proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt' //Unity2017以下
signingConfig signingConfigs.release
}
debug {
minifyEnabled false
signingConfig signingConfigs.release
}
}
//防止二次混淆
-keep class bitter.jnibridge.* { *; }
-keep class com.unity3d.player.* { *; }
-keep class org.fmod.* { *; }
-dontoptimize
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-dontwarn
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable,Exceptions,InnerClasses,Signature
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.app.View
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep class com.mob.**{*;}
-dontwarn com.mob.**
-keep class android.os.SystemProperties
-dontwarn android.os.SystemProperties
-keep class com.huawei.**{*;}
-keep class com.meizu.**{*;}
-keep class com.xiaomi.**{*;}
-dontwarn com.huawei.**
-dontwarn com.meizu.**
-dontwarn com.xiaomi.**
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
③.配置签名文件和签名文件的别名和密码
使用Gradle打包,签名跟我的keystore不一样,询问官方回答应按照如下配置 :
查看签名的问题可以查看这里 : 百度上线APP签名坑
暂时运行了官方demo,后续开发再更新
参考: