SDK说明


SDK - Unity 入门指南

<p><strong>注意:</strong> 由于Unity插件更改了结构,且开始使用PlayServicesResolver第三方库管理工具,如果之前您已经使用了2.14.0之前的版本,在您使用2.14.0版本导入前请先移除之前导入的库。由于现在使用第三包管理工具,iOS使用Cocoapods,如果您还未安装Cocoapods环境,请参考<a href="https://guides.cocoapods.org/using/getting-started.html#getting-started">Cocoapods</a>官方教程</p> <p>&gt; 如果作为聚合接入且接入了Google AdMob SDK,需要在info.plist 添加GADApplicationIdentifier字段,value为AppId,<code>&amp;lt;key&amp;gt;GADApplicationIdentifier&amp;lt;/key&amp;gt;&amp;lt;string&amp;gt;申请的admob的appid&amp;lt;/string&amp;gt;</code>,具体请参考Google AdMob 文档:<a href="https://developers.google.com/admob/ios/quick-start"><a href="https://developers.google.com/admob/ios/quick-start">https://developers.google.com/admob/ios/quick-start</a></a></p> <p><strong>来自Google文档参数,仅做参考。</strong></p> <p>xml</p> <pre><code>&amp;lt;key&amp;gt;GADApplicationIdentifier&amp;lt;/key&amp;gt; &amp;lt;string&amp;gt;ca-app-pub-3940256099942544~1458002511&amp;lt;/string&amp;gt;</code></pre> <h2>步骤 1:使用 ToBid Unity 插件设置 Unity 项目<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Unity/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#%E6%AD%A5%E9%AA%A4-1-%E4%BD%BF%E7%94%A8-tobid-unity-%E6%8F%92%E4%BB%B6%E8%AE%BE%E7%BD%AE-unity-%E9%A1%B9%E7%9B%AE">​</a></h2> <h3>将 ToBid Unity 插件添加到 Unity 项目中<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Unity/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#%E5%B0%86-tobid-unity-%E6%8F%92%E4%BB%B6%E6%B7%BB%E5%8A%A0%E5%88%B0-unity-%E9%A1%B9%E7%9B%AE%E4%B8%AD">​</a></h3> <p>在 Unity 中打开您的项目,双击下载的 <strong>ToBid-XXX.unitypackage</strong> 文件以将 <strong>ToBid Unity</strong> 插件添加到您的应用程序。当“导入 Unity 程序包”窗口打开时,如果您需要导入全部渠道,点击“全部”即可选择全部,然后导入。如果需要删除部分渠道,请在导入时在Mediation中勾选需要导入的渠道即可。</p> <h3>在构建设置中选择面向的正确平台。<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Unity/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#%E5%9C%A8%E6%9E%84%E5%BB%BA%E8%AE%BE%E7%BD%AE%E4%B8%AD%E9%80%89%E6%8B%A9%E9%9D%A2%E5%90%91%E7%9A%84%E6%AD%A3%E7%A1%AE%E5%B9%B3%E5%8F%B0%E3%80%82">​</a></h3> <p>为避免后续步骤中的编译错误,请确保项目的**“构建设置”(cmd + Shift + B)** 选择面向的是 <strong>iOS</strong> 或 <strong>Android</strong> 平台。</p> <h2>步骤 2:集成环境相关配置<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Unity/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#%E6%AD%A5%E9%AA%A4-2-%E9%9B%86%E6%88%90%E7%8E%AF%E5%A2%83%E7%9B%B8%E5%85%B3%E9%85%8D%E7%BD%AE">​</a></h2> <p>在本演练中,我们初始化了附属于主**“游戏对象”**的脚本中的所有 ToBid 相关代码。您可以从任何您认为合适的脚本中调用 <strong>ToBid Unity</strong> 插件。</p> <h3>Android相关配置<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Unity/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#android%E7%9B%B8%E5%85%B3%E9%85%8D%E7%BD%AE">​</a></h3> <h4>Unity 2019及以上版本配置说明<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Unity/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#unity-2019%E5%8F%8A%E4%BB%A5%E4%B8%8A%E7%89%88%E6%9C%AC%E9%85%8D%E7%BD%AE%E8%AF%B4%E6%98%8E">​</a></h4> <h5>1、gradle配置<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Unity/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#_1%E3%80%81gradle%E9%85%8D%E7%BD%AE">​</a></h5> <p>按照下图,生成launcherTemplate.gradle和mainTemplate.gradle文件</p> <p><img src="https://cdn-sdk.sigmob.cn/docs/FCD69228-9444-4571-841A-9B84965B97A3.png" alt="avatar" /></p> <p><strong>注意</strong>:Unity2019版本针对生成后的mainTemplate.gradle需增加以下配置:</p> <p><strong>注意</strong>:Unity2020版本针对生成后的launcherTemplate.gradle需增加以下配置(mainTemplate.gradle不需要此操作,但需要生成):</p> <pre><code>android { ...... defaultConfig { applicationId '**APPLICATIONID**' ...... versionCode **VERSIONCODE** versionName '**VERSIONNAME**' multiDexEnabled true //添加此配置,是为了当代码行数超过64k的时候设置的 } ...... }</code></pre> <h5>2、 Unity 2020 中缺少 ToBid Android 配置文件<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Unity/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#_2%E3%80%81-unity-2020-%E4%B8%AD%E7%BC%BA%E5%B0%91-tobid-android-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6">​</a></h5> <p>为了支持无法自定义 Gradle 构建的 Unity 版本, ToBid SDK 要把 Assets/Plugins/Android/ToBid/ 打包到 Android 构建中的 Android 资源中。</p> <p>在 Unity 2020 以上中,所有 Android 资源都必须位于带有 .androidlib后缀的目录中。如果您的项目使用生成 Assets/Plugins/Android/ToBid 目录的 ToBid 资源文件,请将其重命名为 Assets/Plugins/Android/ToBid.androidlib.</p> <h5>3、AndroidX配置<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Unity/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#_3%E3%80%81androidx%E9%85%8D%E7%BD%AE">​</a></h5> <p>按照下图,生成gradleTemplate.properties文件。</p> <p><img src="https://cdn-sdk.sigmob.cn/docs/93B89FCE-2CF1-4DCC-8B63-B12D5A33BE37.png" alt="avatar" /></p> <p><strong>注意</strong>:针对生成后的gradleTemplate.properties需增加以下配置:</p> <pre><code>org.gradle.jvmargs=-Xmx**JVM_HEAP_SIZE**M org.gradle.parallel=true **ADDITIONAL_PROPERTIES** //添加以下配置 android.enableJetifier=true android.useAndroidX=true</code></pre> <h4>1.1 AndroidManifest.xml 权限内容<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Unity/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#_1-1-androidmanifest-xml-%E6%9D%83%E9%99%90%E5%86%85%E5%AE%B9">​</a></h4> <p>xml</p> <pre><code> &amp;lt;!--SDK 所需要权限--&amp;gt; &amp;lt;uses-permission android:name=&amp;quot;android.permission.INTERNET&amp;quot; /&amp;gt; &amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_NETWORK_STATE&amp;quot; /&amp;gt; &amp;lt;!--SDK 国内所需要权限--&amp;gt; &amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_WIFI_STATE&amp;quot; /&amp;gt; &amp;lt;uses-permission android:name=&amp;quot;android.permission.READ_PHONE_STATE&amp;quot; /&amp;gt; &amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_COARSE_LOCATION&amp;quot; /&amp;gt; &amp;lt;uses-permission android:name=&amp;quot;android.permission.CHANGE_WIFI_STATE&amp;quot; /&amp;gt; &amp;lt;uses-permission android:name=&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot; /&amp;gt; &amp;lt;!-- 集成了Vungle务必添加replace --&amp;gt; &amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot;/&amp;gt; &amp;lt;!--targetSDKVersion &amp;gt;= 26时才需要添加这个权限。--&amp;gt; &amp;lt;uses-permission android:name=&amp;quot;android.permission.REQUEST_INSTALL_PACKAGES&amp;quot; /&amp;gt;</code></pre> <h4>1.2 添加 AndroidManifest.xml Provider内容<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Unity/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#_1-2-%E6%B7%BB%E5%8A%A0-androidmanifest-xml-provider%E5%86%85%E5%AE%B9">​</a></h4> <p>xml</p> <pre><code>&amp;lt;provider android:name=&amp;quot;com.bytedance.sdk.openadsdk.TTFileProvider&amp;quot; android:authorities=&amp;quot;${applicationId}.TTFileProvider&amp;quot; android:exported=&amp;quot;false&amp;quot; android:grantUriPermissions=&amp;quot;true&amp;quot;&amp;gt; &amp;lt;meta-data android:name=&amp;quot;android.support.FILE_PROVIDER_PATHS&amp;quot; android:resource=&amp;quot;@xml/toutiao&amp;quot; /&amp;gt; &amp;lt;/provider&amp;gt; &amp;lt;provider android:name=&amp;quot;com.bytedance.sdk.openadsdk.multipro.TTMultiProvider&amp;quot; android:authorities=&amp;quot;${applicationId}.TTMultiProvider&amp;quot; android:exported=&amp;quot;false&amp;quot; /&amp;gt; &amp;lt;!-- GDT --&amp;gt; &amp;lt;provider android:name=&amp;quot;com.qq.e.comm.GDTFileProvider&amp;quot; android:authorities=&amp;quot;${applicationId}.gdt.fileprovider&amp;quot; android:exported=&amp;quot;false&amp;quot; android:grantUriPermissions=&amp;quot;true&amp;quot;&amp;gt; &amp;lt;meta-data android:name=&amp;quot;android.support.FILE_PROVIDER_PATHS&amp;quot; android:resource=&amp;quot;@xml/gdt_file_path&amp;quot; /&amp;gt; &amp;lt;/provider&amp;gt; &amp;lt;provider android:name=&amp;quot;com.tencent.klevin.utils.FileProvider&amp;quot; android:authorities=&amp;quot;${applicationId}.klevin.fileProvider&amp;quot; android:exported=&amp;quot;false&amp;quot; android:grantUriPermissions=&amp;quot;true&amp;quot;&amp;gt; &amp;lt;meta-data android:name=&amp;quot;android.support.FILE_PROVIDER_PATHS&amp;quot; android:resource=&amp;quot;@xml/klevin_provider_paths&amp;quot; /&amp;gt; &amp;lt;/provider&amp;gt;</code></pre> <h4>1.3 添加 AndroidManifest.xml 第三方库配置内容<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Unity/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#_1-3-%E6%B7%BB%E5%8A%A0-androidmanifest-xml-%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BA%93%E9%85%8D%E7%BD%AE%E5%86%85%E5%AE%B9">​</a></h4> <p>xml</p> <pre><code>&amp;lt;uses-sdk tools:overrideLibrary=&amp;quot;com.bun.miitmdid,com.unity3d.ads&amp;quot; /&amp;gt; &amp;lt;uses-library android:name=&amp;quot;org.apache.http.legacy&amp;quot; android:required=&amp;quot;false&amp;quot; /&amp;gt;</code></pre> <h4>1.4 添加 AndroidManifest.xml UnityPlayerActivity开启hardwareAccelerated<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Unity/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#_1-4-%E6%B7%BB%E5%8A%A0-androidmanifest-xml-unityplayeractivity%E5%BC%80%E5%90%AFhardwareaccelerated">​</a></h4> <p>xml</p> <pre><code>&amp;lt;activity android:name=&amp;quot;com.unity3d.player.UnityPlayerActivity&amp;quot; android:hardwareAccelerated=&amp;quot;true&amp;quot; android:configChanges=&amp;quot;fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen&amp;quot; android:label=&amp;quot;@string/app_name&amp;quot;&amp;gt; &amp;lt;intent-filter&amp;gt; &amp;lt;action android:name=&amp;quot;android.intent.action.MAIN&amp;quot; /&amp;gt; &amp;lt;category android:name=&amp;quot;android.intent.category.LAUNCHER&amp;quot; /&amp;gt; &amp;lt;/intent-filter&amp;gt; &amp;lt;/activity&amp;gt;</code></pre> <h3>iOS添加相关依赖库<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Unity/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#ios%E6%B7%BB%E5%8A%A0%E7%9B%B8%E5%85%B3%E4%BE%9D%E8%B5%96%E5%BA%93">​</a></h3> <p>&gt; 可在unity build时写脚本自动配置iOS工程,示例代码如下(仅供参考):</p> <pre><code>public class XcodeProjectUpdater { [PostProcessBuild] public static void OnPostprocessBuild(BuildTarget target, string pathToBuildProject) { if (target != BuildTarget.iOS) return; //.xcodeproj的路径 string projPath = PBXProject.GetPBXProjectPath(pathToBuildProject); PBXProject proj = new PBXProject(); proj.ReadFromString(File.ReadAllText(projPath)); string buildTarget = proj.TargetGuidByName(&amp;quot;Unity-iPhone&amp;quot;); //--------------------- //1、修改设置 //添加系统库 proj.AddFrameworkToProject(buildTarget,&amp;quot;CoreTelephony.framework&amp;quot;, false); proj.AddFrameworkToProject(buildTarget,&amp;quot;Security.framework&amp;quot;, false); proj.AddFrameworkToProject(buildTarget,&amp;quot;CoreLocation.framework&amp;quot;, false); proj.AddFrameworkToProject(buildTarget,&amp;quot;MobileCoreServices.framework&amp;quot;, false); proj.AddFrameworkToProject(buildTarget,&amp;quot;StoreKit.framework&amp;quot;, false); proj.AddFrameworkToProject(buildTarget,&amp;quot;AdSupport.framework&amp;quot;, false); proj.AddFrameworkToProject(buildTarget,&amp;quot;ImageIO.framework&amp;quot;, false); proj.AddFrameworkToProject(buildTarget,&amp;quot;SafariServices.framework&amp;quot;, true); proj.AddFrameworkToProject(buildTarget,&amp;quot;WebKit.framework&amp;quot;, true); //--------------------- //添加tbd string fileGuidSqlite = proj.AddFile(&amp;quot;usr/lib/libsqlite3.0.tbd&amp;quot;, &amp;quot;Libraries/libsqlite3.0.tbd&amp;quot;, PBXSourceTree.Sdk); proj.AddFileToBuild(buildTarget, fileGuidSqlite); string fileGuidLibz = proj.AddFile(&amp;quot;usr/lib/libz.tbd&amp;quot;, &amp;quot;Libraries/libz.tbd&amp;quot;, PBXSourceTree.Sdk); proj.AddFileToBuild(buildTarget, fileGuidLibz); string fileGuidLibc= proj.AddFile(&amp;quot;usr/lib/libc++.tbd&amp;quot;, &amp;quot;Libraries/libc++.tbd&amp;quot;, PBXSourceTree.Sdk); proj.AddFileToBuild(buildTarget, fileGuidLibc); //--------------------- //修改属性 proj.SetBuildProperty(buildTarget,&amp;quot;ENABLE_BITCODE&amp;quot;, &amp;quot;YES&amp;quot;); proj.AddBuildProperty(buildTarget, &amp;quot;OTHER_LDFLAGS&amp;quot;, &amp;quot;-ObjC&amp;quot;); //--------------------- //info.plist string plistPath = pathToBuildProject + &amp;quot;/Info.plist&amp;quot;; PlistDocument plist = new PlistDocument(); plist.ReadFromString(File.ReadAllText(plistPath)); // Get root PlistElementDict rootDict = plist.root; /* iOS9所有的app对外http协议默认要求改成https */ // Add value of NSAppTransportSecurity in Xcode plist var atsKey = &amp;quot;NSAppTransportSecurity&amp;quot;; PlistElementDict dictTmp = rootDict.CreateDict(atsKey); dictTmp.SetBoolean(&amp;quot;NSAllowsArbitraryLoads&amp;quot;, true); rootDict.SetString(&amp;quot;NSLocationWhenInUseUsageDescription&amp;quot;, &amp;quot;是否允许使用定位权限&amp;quot;); rootDict.SetString(&amp;quot;CFBundleDevelopmentRegion&amp;quot;, &amp;quot;China&amp;quot;); File.WriteAllText (projPath, proj.WriteToString()); } }</code></pre> <h3>oaid相关配置<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Unity/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#oaid%E7%9B%B8%E5%85%B3%E9%85%8D%E7%BD%AE">​</a></h3> <p><strong>建议开发者优先集成OAID。Android 10 无法通过常规方式获取IMEI,影响广告测试及正式广告的填充。</strong></p> <p><strong>MSA联盟官网地址: <a href="http://www.msa-alliance.cn/col.jsp?id=120"><a href="http://www.msa-alliance.cn/col.jsp?id=120">http://www.msa-alliance.cn/col.jsp?id=120</a></a></strong></p> <p>&gt; <em><strong>2.20 版本后,支持 MSA 1.0.22 版本</strong></em></p> <ul> <li> <p>1、把 msa_mdid_x.x.x.aar 或者 oaid_sdk_x.x.x.aar 拷贝到项的 libs 目录,并设置依赖,其中 x.x.x 代表版本号。</p> <pre><code> implementation files('libs/msa_mdid_x.x.x.aar') 或者 implementation files('libs/oaid_sdk_x.x.x.aar')</code></pre> </li> <li> <p>2、将 supplierconfig.json 拷贝到项目 assets 目录下,并修改里边对应内容,特别是需要设置 appid 的部分。需要设置 appid 的部分需要去对应厂商的应用商店里注册自己的app。</p> </li> <li>3、混淆设置。</li> </ul> <p>java</p> <pre><code>-keep class com.bun.** {*;} -dontwarn com.bun.** -keep, includedescriptorclasses class com.asus.msa.SupplementaryDID.** { *; } -keepclasseswithmembernames class com.asus.msa.SupplementaryDID.** { *; } -keep, includedescriptorclasses class com.asus.msa.sdid.** { *; } -keepclasseswithmembernames class com.asus.msa.sdid.** { *; } -keep public class com.netease.nis.sdkwrapper.Utils {public &amp;lt;methods&amp;gt;;} -keep class com.samsung.android.deviceidservice.**{*;} -keep class a.**{*;}</code></pre> <ul> <li> <p>4、设置 gradle 编译选项,这块可以根据自己对平台的选择进里合里配置。</p> <p>ndk { abiFilters 'armeabi-v7a','x86','arm64-v8a','x86_64','armeabi' } packagingOptions { doNotStrip &quot;<em>/armeabi-v7a/</em>.so&quot; doNotStrip &quot;<em>/x86/</em>.so&quot; doNotStrip &quot;<em>/arm64-v8a/</em>.so&quot; doNotStrip &quot;<em>/x86_64/</em>.so&quot; doNotStrip &quot;armeabi.so&quot; }</p> </li> </ul> <h3>android混淆配置说明<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Unity/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#android%E6%B7%B7%E6%B7%86%E9%85%8D%E7%BD%AE%E8%AF%B4%E6%98%8E">​</a></h3> <pre><code># 不优化输入的类文件 -dontoptimize #忽略警告 -ignorewarnings # WindMillAd -dontwarn com.sigmob.** -keep class com.sigmob.**{ *;} -keep interface com.sigmob.**{ *;} -dontwarn com.czhj.** -keep class com.czhj.**{ *;} -keep interface com.czhj.**{ *;} -keep class com.tan.**{ *;} -dontwarn com.windmill.** -keep class com.windmill.**.**{*;} -keep interface com.windmill.**{ *;} # miitmdid -dontwarn com.bun.** -keep class com.bun.** {*;} -keep class a.**{*;} -keep class XI.CA.XI.**{*;} -keep class XI.K0.XI.**{*;} -keep class XI.XI.K0.**{*;} -keep class XI.vs.K0.**{*;} -keep class XI.xo.XI.XI.**{*;} -keep class com.asus.msa.SupplementaryDID.**{*;} -keep class com.asus.msa.sdid.**{*;} -keep class com.huawei.hms.ads.identifier.**{*;} -keep class com.samsung.android.deviceidservice.**{*;} -keep class com.zui.opendeviceidlibrary.**{*;} -keep class org.json.**{*;} -keep public class com.netease.nis.sdkwrapper.Utils {public &amp;lt;methods&amp;gt;;}</code></pre>

页面列表

ITEM_HTML