Flutter版本要求: flutter: ">=2.12.0"
TopOn iOS SDK 要求 小于等于 v6.4.93 版本
您可以可通过账号及相关ID准备进行账号注册及登录的操作指引。
参考Demo Flutter Demo Github地址(点击跳转)
支持以下两种方式导入SDK :
flutter pub add secmtp_sdk
运行命令后,将在项目工程的pubspec.yaml中,自动添加以下代码并触发flutter pub get,您也可以手动在pubspec.yaml输入以下代码:
dependencies:
secmtp_sdk: ^1.0.8
import 'package:secmtp_sdk/at_init.dart';
1. 下载TopOn_Flutter_SDK压缩包,解压缩。
2. 将解压出的文件添加进您的工程,您也可以将解压出的文件导入新建的目录中。
3. 在工程中找到pubspec.yaml,添加本地依赖:
secmtp_sdk:
path: ../
import 'package:secmtp_sdk/at_init.dart';
flutter pub add thinkup_sdk
运行命令后,将在项目工程的pubspec.yaml中,自动添加以下代码并触发flutter pub get,您也可以手动在pubspec.yaml输入以下代码:
dependencies:
thinkup_sdk: ^1.0.8
import 'package:thinkup_sdk/at_init.dart';
1. 下载TopOn_Flutter_SDK压缩包,解压缩。
2. 将解压出的文件添加进您的工程,您也可以将解压出的文件导入新建的目录中。
3. 在工程中找到pubspec.yaml,添加本地依赖:
thinkup_sdk:
path: ../
import 'package:thinkup_sdk/at_init.dart';
温馨提示:因不同开发者之间在SDK 下载中心下载的 flutter 插件存在命名差异,anythink_sdk.podspec也可能是thinkup_sdk.podspec,具体以您下载的插件为准。
引入头文件,将鼠标放在引入的头文件上: 
复制红框地址,使用Finder打开就能找到anythink_sdk.podspec的位置(或上述温馨提示中所描述的thinkup_sdk.podspec)。
目标文件为:您工程目录中的anythink_sdk.podspec文件(或上述温馨提示中所描述的thinkup_sdk.podspec)。
请点击这里前往SDK下载中心,勾选需要集成的平台,是否Cocoapods接入选择:是,然后点击生成接入代码。(以iOS 6.4.26为例,推荐使用最新版本的iOS SDK)

将上一步生成的CocoaPods引用代码转换为.podspec文件所需要的代码后,填入anythink_sdk.podspec中,转换前后示例:
//转换前:
pod 'TPNiOS','x.x.xx'
pod 'TPNPangleSDKAdapter','x.x.xx'
pod 'TPNFacebookSDKAdapter','x.x.xx'
pod 'TPNAdmobSDKAdapter','x.x.xx'
pod 'TPNMintegralSDKAdapter','x.x.xx'
仅需将pod替换为s.dependency
//转换后:
s.dependency 'TPNiOS','x.x.xx'
s.dependency 'TPNPangleSDKAdapter','x.x.xx'
s.dependency 'TPNFacebookSDKAdapter','x.x.xx'
s.dependency 'TPNAdmobSDKAdapter','x.x.xx'
s.dependency 'TPNMintegralSDKAdapter','x.x.xx'
在编写完anythink_sdk.podspec后,使用终端打开iOS podfile所在目录,等待安装完毕。(如非首次操作,可能需要删除podfile.lock 后再执行下方命令)
pod install --repo-update


UnityAds的SKAdNetwork ID每个项目均不相同,若您选择了该广告平台,请以UnityAds后台生成为准,需要您前往UnityAds管理后台查看。
请您回到上文中打开的"SDK下载中心"网页,将"SKAdNetwork IDs代码"栏目中所列出的内容添加至您的Info.plist文件中,请参考下图:

请您再次回到上文中打开的"SDK下载中心"网页,或直接复制下方代码,将如下栏目中所列出的内容添加至您的Info.plist文件中,请参考下图:

从iOS14.5开始,只有在获得用户明确许可的前提下,应用才可以访问用户的IDFA数据并向用户投放定向广告。
在应用程序调用 App Tracking Transparency 框架向最终用户提出应用程序跟踪授权请求之前,IDFA将不可用。如果某个应用未提出此请求,则读取到的IDFA将返回全为0的字符串。
<key>NSUserTrackingUsageDescription</key>
<string>此处修改为您希望用户看到的权限请求描述,可本地化</string>
iOS10之后,Allow Arbitrary Loads in Web Content键存在时会忽略Allow Arbitrary Loads的设置
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true></true>
</dict>
若您勾选使用了Admob平台才添加该键。关于更多信息,请前往此处。
<key>GADApplicationIdentifier</key>
<string>Your GADApplicationIdentifier </string>
<!-- 上述值格式例如:ca-app-pub-9488501426181082~7319780494 -->

在生成的Android工程中的GeneratedPluginRegistrant类中注册SDK插件:
public final class GeneratedPluginRegistrant {
public static void registerWith(@NonNull FlutterEngine flutterEngine) {
flutterEngine.getPlugins().add(new com.secmtp.flutter.SecmtpSdkPlugin());
}
}
请至官网下载页面,勾选需要集成的平台,点击下载;下载完成后,解压下载所得的Android SDK压缩包。
(如果压缩包中有build.gradle文件存在时)将压缩包中的build.gradle中的内容复制到工程build.gradle中。
(如果压缩包中有res目录且res目录中有文件时)将Android SDK压缩包中res目录中的内容对应复制到工程的res目录中。
将Android SDK压缩包中的AndroidManifest.xml中的内容添加到工程中的AndroidManifest.xml里
如果聚合了Admob,则必须在AndroidManifest.xml中添加以下配置(value值需配置Admob后台创建的应用的ID):
<manifest>
<application>
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"></meta-data>
</application>
</manifest>
详情可参考Admob配置文档:更新您的 AndroidManifest.xml
请参考:Android 集成与初始化
-keep public class com.secmtp.flutter.**
-keepclassmembers class com.secmtp.flutter.** {
public *;
}
-keep public class com.thinkup.flutter.**
-keepclassmembers class com.thinkup.flutter.** {
public *;
}
请参考:Android SDK压缩包中的proguard-android.txt内容