# 9. 静态检测
# 9.1 schema缺失
在游戏主acitivty如下所示加入 android:scheme="ks替换成你的游戏缩写"
示例:游戏名称:爱游斗地主,游戏缩写:ayddz,scheme配置为: android:scheme="ksayddz"
android:host="home" , 如果有特殊需求,可自行配置deeplink参数,只需保证scheme以为ks开头。
<activity
android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<--把一下代码加入到你们主界面,如果没有特殊需要按下面处理-->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<!--协议部分-->
<data
android:host="home"
android:scheme="ks+游戏缩写" />
</intent-filter>
</activity>
使用adb验证
adb shell am start -d 'ks游戏缩写://home' -a android.intent.action.VIEW
# 9.2 so 缺失
这种情况是检查sdk 包含的 so 是否每种架构中都有。
TIP
目前1.3以下的版本中,只包含v7a架构, 游戏需要处理加上
ndk {
abiFilters 'armeabi-v7a'
}
1.3以上的版本中 包含v7a和v8a两种架构的so.
ndk {
abiFilters 'arm64-v7a' ,'armeabi-v7a'
}
# 9.3 lifecycle缺失
这种情况,检查一下生成apk的manifest里是否包含
<provider
android:name="android.arch.lifecycle.ProcessLifecycleOwnerInitializer"
android:exported="false"
android:multiprocess="true"
android:authorities="com.kwai.allin.demo.lifecycle-trojan" />
这个provider, 如果不包含, 要么是lifecycle 三方依赖接入不对,如果是jar 的方式接入这个三方库,检查是否没有拷贝对应库的manifest。
# 9.4 publicsuffix文件缺失
okhttp3/internal/publicsuffix/publicsuffix.gz 文件缺失
这种情况,确认apk产物中是否有如图中的文件,如果没有则可能是打包中丢失,需要手动加入到apk中。
https://github.com/square/okhttp/issues/3582 (opens new window)
# 9.5 smail 文件缺失
- 检查是否正确导入三方库以及sdk
- 检查三方库是否混淆
- 如果上传的包被加固,需要游戏处理不加固sdk以及三方库的部分
- 修改SDK以及三方库加固路径:
com/kwai
com/getkeepsafe/relinker
okhttp3
com/google/
io/reactivex
org/greenrobot/greendao/database
android/arch/persistence/room
android/arch/lifecycle
retrofit2/converter/scalars/ScalarRequestBodyConverter
retrofit2/converter/gson/GsonRequestBodyConverter
retrofit2/adapter/rxjava2/RxJava2CallAdapter
← 8. Schema 功能 10.其他 →