diff --git a/.metadata b/.metadata index e38c35a..c93e545 100644 --- a/.metadata +++ b/.metadata @@ -4,7 +4,7 @@ # This file should be version controlled. version: - revision: b06b8b2710955028a6b562f5aa6fe62941d6febf + revision: 7048ed95a5ad3e43d697e0c397464193991fc230 channel: stable project_type: plugin @@ -13,14 +13,14 @@ project_type: plugin migration: platforms: - platform: root - create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf - base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf + create_revision: 7048ed95a5ad3e43d697e0c397464193991fc230 + base_revision: 7048ed95a5ad3e43d697e0c397464193991fc230 - platform: android - create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf - base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf + create_revision: 7048ed95a5ad3e43d697e0c397464193991fc230 + base_revision: 7048ed95a5ad3e43d697e0c397464193991fc230 - platform: ios - create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf - base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf + create_revision: 7048ed95a5ad3e43d697e0c397464193991fc230 + base_revision: 7048ed95a5ad3e43d697e0c397464193991fc230 # User provided section diff --git a/CHANGELOG.md b/CHANGELOG.md index bfb52f7..9c2248f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.0.5 + +* 支持iOS ATT权限获取、开屏广告、插屏广告 、横幅广告、模板广告、模板视频信息流 、全屏视频、 信息流广告、激励视频广告 +* 调整信息流 QuakerBirdAdFeed -> QuakerBirdAdNative + ## 0.0.4 * fix bug diff --git a/README.md b/README.md index 23014d5..a4db7ce 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ ## 官方文档 * [Android](https://github.com/gstory0404/quakerbirdad/blob/master/doc/android.pdf) -* [IOS]() +* [IOS](https://github.com/gstory0404/quakerbirdad/blob/master/doc/ios.pages) ## 版本更新 @@ -34,7 +34,7 @@ ### 1、pubspec.yaml ```Dart -quakerbirdad: ^0.0.4 +quakerbirdad: ^0.0.5 ``` 引入 @@ -46,7 +46,7 @@ import 'package:quakerbirdad/quakerbirdad.dart'; 根据[官方文件](https://github.com/gstory0404/quakerbirdad/blob/master/doc/android.pdf)进行权限等配置。 ### 3、IOS -暂不支持 +根据[官方文件](https://github.com/gstory0404/quakerbirdad/blob/master/doc/ios.pages)进行权限等配置。 ### 注意事项 @@ -74,10 +74,18 @@ QuakerBirdAd.register( ``` ### 获取SDK版本 -```Dart +```dart await QuakerBirdAd.getSDKVersion(); ``` +### 获取权限 +目前仅iOS生效,用于ATT权限获取 +```dart +QuakerBirdAd.requestPermission().then((value) => { + print("获取权限结果 $value") +}); +``` + ### 开屏广告 ```dart QuakerBirdAdSplash( @@ -105,37 +113,6 @@ QuakerBirdAdSplash( ); ``` -### 插屏广告 -请求广告 -```dart -QuakerBirdAd.loadInteractionAd(androidId: "11087", iosId: "11087"); -``` -监听结果 -```dart -FlutterUnionadStream.initAdStream( - rewardCallBack: QuakerBirdAdRewardCallBack( - onShow: () { - print("激励广告显示"); - }, - onError: (msg) { - print("激励广告失败 $msg"); - }, - onClick: () { - print("激励广告点击"); - }, - onDismiss: () { - print("激励广告关闭"); - }, - onStatus: (type, platform, status, msg) { - print("激励广告状态 类型:$type 平台:$platform 状态:$status 错误消息 (失败时有效):$msg"); - }, - onReward: (type) { - print("激励广告奖励 $type"); - }, - ), -); -``` - ### 横幅广告 ```dart QuakerBirdAdBanner( @@ -164,6 +141,34 @@ QuakerBirdAdBanner( ); ``` +### 信息流广告 +```dart +QuakerBirdAdNative( + androidId: "2351", + iosId: "2351", + width: 500, + height: 200, + callBack: QuakerBirdAdNativeCallBack( + onShow: (){ + print("信息流广告显示"); + }, + onError: (msg){ + print("信息流广告失败 $msg"); + }, + onClick: (){ + print("信息流广告点击"); + }, + onDismiss: (){ + print("信息流广告关闭"); + Navigator.pop(context); + }, + onStatus: (type,platform,status,msg){ + print("信息流广告状态 类型:$type 平台:$platform 状态:$status 错误消息 (失败时有效):$msg"); + } + ), + ), +``` + ### 模版广告 ```dart QuakerBirdAdExpress( @@ -220,6 +225,38 @@ QuakerBirdAdExpressDraw( ), ``` +### 插屏广告 +请求广告 +```dart +QuakerBirdAd.loadInteractionAd(androidId: "11087", iosId: "11087"); +``` +监听结果 +```dart +FlutterUnionadStream.initAdStream( + rewardCallBack: QuakerBirdAdRewardCallBack( + onShow: () { + print("激励广告显示"); + }, + onError: (msg) { + print("激励广告失败 $msg"); + }, + onClick: () { + print("激励广告点击"); + }, + onDismiss: () { + print("激励广告关闭"); + }, + onStatus: (type, platform, status, msg) { + print("激励广告状态 类型:$type 平台:$platform 状态:$status 错误消息 (失败时有效):$msg"); + }, + onReward: (type) { + print("激励广告奖励 $type"); + }, + ), +); +``` + + ### 全屏广告 请求广告 ```dart @@ -248,34 +285,6 @@ FlutterUnionadStream.initAdStream( ); ``` -### 信息流广告 -```dart -QuakerBirdAdFeed( - androidId: "2351", - iosId: "2351", - width: 500, - height: 200, - callBack: QuakerBirdAdFeedCallBack( - onShow: (){ - print("信息流广告显示"); - }, - onError: (msg){ - print("信息流广告失败 $msg"); - }, - onClick: (){ - print("信息流广告点击"); - }, - onDismiss: (){ - print("信息流广告关闭"); - Navigator.pop(context); - }, - onStatus: (type,platform,status,msg){ - print("信息流广告状态 类型:$type 平台:$platform 状态:$status 错误消息 (失败时有效):$msg"); - } - ), - ), -``` - ### 激励广告 请求广告 ```dart diff --git a/android/src/main/kotlin/com/gstory/quakerbirdad/QuakerBirdAdConfig.kt b/android/src/main/kotlin/com/gstory/quakerbirdad/QuakerBirdAdConfig.kt index d107d28..7431d81 100644 --- a/android/src/main/kotlin/com/gstory/quakerbirdad/QuakerBirdAdConfig.kt +++ b/android/src/main/kotlin/com/gstory/quakerbirdad/QuakerBirdAdConfig.kt @@ -18,7 +18,7 @@ class QuakerBirdAdConfig { const val BannerAdView = "com.gstory.quakerbirdad/BannerAdView" //信息流广告 - const val FeedAdView = "com.gstory.quakerbirdad/FeedAdView" + const val NativeAdView = "com.gstory.quakerbirdad/NativeAdView" //模版信息流广告 const val ExpressAdView = "com.gstory.quakerbirdad/ExpressAdView" diff --git a/android/src/main/kotlin/com/gstory/quakerbirdad/QuakerBirdViewPlugin.kt b/android/src/main/kotlin/com/gstory/quakerbirdad/QuakerBirdViewPlugin.kt index 460d33b..c54644e 100644 --- a/android/src/main/kotlin/com/gstory/quakerbirdad/QuakerBirdViewPlugin.kt +++ b/android/src/main/kotlin/com/gstory/quakerbirdad/QuakerBirdViewPlugin.kt @@ -4,7 +4,7 @@ import android.app.Activity import com.gstory.quakerbirdad.bannerad.BannerAdViewFactory import com.gstory.quakerbirdad.expressad.ExpressAdViewFactory import com.gstory.quakerbirdad.expressad.ExpressDrawAdViewFactory -import com.gstory.quakerbirdad.feedad.FeedAdViewFactory +import com.gstory.quakerbirdad.nativead.NativeAdViewFactory import com.gstory.quakerbirdad.splashad.SplashAdViewFactory import io.flutter.embedding.engine.plugins.FlutterPlugin @@ -21,7 +21,7 @@ object QuakerBirdViewPlugin { //注册banner广告 binding.platformViewRegistry.registerViewFactory(QuakerBirdAdConfig.BannerAdView, BannerAdViewFactory(binding.binaryMessenger, activity)) //注册信息流广告 - binding.platformViewRegistry.registerViewFactory(QuakerBirdAdConfig.FeedAdView, FeedAdViewFactory(binding.binaryMessenger, activity)) + binding.platformViewRegistry.registerViewFactory(QuakerBirdAdConfig.NativeAdView, NativeAdViewFactory(binding.binaryMessenger, activity)) //注册模板信息流广告 binding.platformViewRegistry.registerViewFactory(QuakerBirdAdConfig.ExpressAdView, ExpressAdViewFactory(binding.binaryMessenger, activity)) //注册模板信息流视频广告 diff --git a/android/src/main/kotlin/com/gstory/quakerbirdad/feedad/FeedAdView.kt b/android/src/main/kotlin/com/gstory/quakerbirdad/nativead/NativeAdView.kt similarity index 97% rename from android/src/main/kotlin/com/gstory/quakerbirdad/feedad/FeedAdView.kt rename to android/src/main/kotlin/com/gstory/quakerbirdad/nativead/NativeAdView.kt index b6c0c12..14bdfef 100644 --- a/android/src/main/kotlin/com/gstory/quakerbirdad/feedad/FeedAdView.kt +++ b/android/src/main/kotlin/com/gstory/quakerbirdad/nativead/NativeAdView.kt @@ -1,4 +1,4 @@ -package com.gstory.quakerbirdad.feedad +package com.gstory.quakerbirdad.nativead import android.app.Activity import android.content.Context @@ -22,7 +22,7 @@ import io.flutter.plugin.platform.PlatformView * @CreateDate: 2023/2/5 14:11 * @Description: java类作用描述 */ -internal class FeedAdView( +internal class NativeAdView( var context: Context, var activity: Activity, messenger: BinaryMessenger, @@ -41,7 +41,7 @@ internal class FeedAdView( init { mCodeId = params["androidId"] as String? mContainer = FrameLayout(activity) - channel = MethodChannel(messenger, QuakerBirdAdConfig.FeedAdView + "_" + id) + channel = MethodChannel(messenger, QuakerBirdAdConfig.NativeAdView + "_" + id) loadFeedAd() } diff --git a/android/src/main/kotlin/com/gstory/quakerbirdad/feedad/FeedAdViewFactory.kt b/android/src/main/kotlin/com/gstory/quakerbirdad/nativead/NativeAdViewFactory.kt similarity index 65% rename from android/src/main/kotlin/com/gstory/quakerbirdad/feedad/FeedAdViewFactory.kt rename to android/src/main/kotlin/com/gstory/quakerbirdad/nativead/NativeAdViewFactory.kt index 505eeee..e55e5f1 100644 --- a/android/src/main/kotlin/com/gstory/quakerbirdad/feedad/FeedAdViewFactory.kt +++ b/android/src/main/kotlin/com/gstory/quakerbirdad/nativead/NativeAdViewFactory.kt @@ -1,4 +1,4 @@ -package com.gstory.quakerbirdad.feedad +package com.gstory.quakerbirdad.nativead import android.app.Activity import android.content.Context @@ -13,9 +13,9 @@ import io.flutter.plugin.platform.PlatformViewFactory * @Description: java类作用描述 */ -class FeedAdViewFactory(private val messenger: BinaryMessenger, private val activity: Activity) : PlatformViewFactory(StandardMessageCodec.INSTANCE) { +class NativeAdViewFactory(private val messenger: BinaryMessenger, private val activity: Activity) : PlatformViewFactory(StandardMessageCodec.INSTANCE) { override fun create(context: Context?, id: Int, args: Any?): PlatformView { val params = args as Map - return FeedAdView(context!!, activity, messenger, id, params) + return NativeAdView(context!!, activity, messenger, id, params) } } \ No newline at end of file diff --git a/android/src/main/kotlin/com/gstory/quakerbirdad/rewardvideoad/RewardVideoAd.kt b/android/src/main/kotlin/com/gstory/quakerbirdad/rewardvideoad/RewardVideoAd.kt index c88a114..1d4912c 100644 --- a/android/src/main/kotlin/com/gstory/quakerbirdad/rewardvideoad/RewardVideoAd.kt +++ b/android/src/main/kotlin/com/gstory/quakerbirdad/rewardvideoad/RewardVideoAd.kt @@ -127,7 +127,7 @@ object RewardVideoAd { Log.d(TAG, "激励视频关闭回调") QuakerBirdAdEvent.sendContent(mutableMapOf( "adType" to "rewardAd", - "onAdMethod" to "onClose", + "onAdMethod" to "onDismiss", )) } diff --git a/doc/ios.pages b/doc/ios.pages new file mode 100755 index 0000000..8e28a3f Binary files /dev/null and b/doc/ios.pages differ diff --git a/example/ios/Podfile b/example/ios/Podfile index 88359b2..57e257d 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -30,7 +30,6 @@ flutter_ios_podfile_setup target 'Runner' do use_frameworks! use_modular_headers! - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) end diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index d80590d..e7df7c3 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 291D86CAEB0EE4259F722614 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C104CA1BC03AA48A4C4F6316 /* Pods_Runner.framework */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; @@ -29,12 +30,15 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 03802AC64D3366639E77F7C8 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 5EEEC851438EB366ACF33655 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 87B687277559A259E1968BD3 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -42,6 +46,9 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C104CA1BC03AA48A4C4F6316 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E5B490302994E06A001740E5 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Main.strings"; sourceTree = ""; }; + E5B490312994E06A001740E5 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/LaunchScreen.strings"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -49,12 +56,31 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 291D86CAEB0EE4259F722614 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 63721737856AF7A788A94F93 /* Pods */ = { + isa = PBXGroup; + children = ( + 5EEEC851438EB366ACF33655 /* Pods-Runner.debug.xcconfig */, + 03802AC64D3366639E77F7C8 /* Pods-Runner.release.xcconfig */, + 87B687277559A259E1968BD3 /* Pods-Runner.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + 72A1CF2F89C81325FE90B6D9 /* Frameworks */ = { + isa = PBXGroup; + children = ( + C104CA1BC03AA48A4C4F6316 /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( @@ -72,6 +98,8 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, + 63721737856AF7A788A94F93 /* Pods */, + 72A1CF2F89C81325FE90B6D9 /* Frameworks */, ); sourceTree = ""; }; @@ -105,12 +133,15 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( + 92D3B38B8B6879C1BF87F795 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + 2D287F5FEA96DD5167C38D17 /* [CP] Embed Pods Frameworks */, + A4DF902CBB2F58F6958160A5 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -143,6 +174,7 @@ knownRegions = ( en, Base, + "zh-Hans", ); mainGroup = 97C146E51CF9000F007C117D; productRefGroup = 97C146EF1CF9000F007C117D /* Products */; @@ -169,6 +201,23 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 2D287F5FEA96DD5167C38D17 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -184,6 +233,28 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; + 92D3B38B8B6879C1BF87F795 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -199,6 +270,23 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; + A4DF902CBB2F58F6958160A5 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -218,6 +306,7 @@ isa = PBXVariantGroup; children = ( 97C146FB1CF9000F007C117D /* Base */, + E5B490302994E06A001740E5 /* zh-Hans */, ); name = Main.storyboard; sourceTree = ""; @@ -226,6 +315,7 @@ isa = PBXVariantGroup; children = ( 97C147001CF9000F007C117D /* Base */, + E5B490312994E06A001740E5 /* zh-Hans */, ); name = LaunchScreen.storyboard; sourceTree = ""; @@ -237,6 +327,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -309,6 +400,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -364,6 +456,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; diff --git a/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/example/ios/Runner.xcworkspace/contents.xcworkspacedata index 1d526a1..21a3cc1 100644 --- a/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,4 +4,7 @@ + + diff --git a/example/ios/Runner/Info.plist b/example/ios/Runner/Info.plist index c5a8340..ecf9e7b 100644 --- a/example/ios/Runner/Info.plist +++ b/example/ios/Runner/Info.plist @@ -1,51 +1,338 @@ - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - Quakerbirdad - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - quakerbirdad_example - CFBundlePackageType - APPL - CFBundleShortVersionString - $(FLUTTER_BUILD_NAME) - CFBundleSignature - ???? - CFBundleVersion - $(FLUTTER_BUILD_NUMBER) - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - CADisableMinimumFrameDurationOnPhone - - UIApplicationSupportsIndirectInputEvents - - + + NSUserTrackingUsageDescription + 获取IDFA + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Quakerbirdad + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + quakerbirdad_example + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + SKAdNetworkItems + + + SKAdNetworkIdentifier + x2jnk7ly8j.skadnetwork + + + SKAdNetworkIdentifier + 22mmun2rn5.skadnetwork + + + SKAdNetworkIdentifier + 238da6jt44.skadnetwork + + + SKAdNetworkIdentifier + 58922nb4gd.skadnetwork + + + SKAdNetworkIdentifier + f7s53z58qe.skadnetwork + + + SKAdNetworkIdentifier + 27a282f54n.skadnetwork + + + SKAdNetworkIdentifier + kbd757ywx3.skadnetwork + + + SKAdNetworkIdentifier + mls7yz5dvl.skadnetwork + + + SKAdNetworkIdentifier + 4fzdc2evr5.skadnetwork + + + SKAdNetworkIdentifier + 4pfyvq9l8r.skadnetwork + + + SKAdNetworkIdentifier + ydx93a7ass.skadnetwork + + + SKAdNetworkIdentifier + cg4yq2srnc.skadnetwork + + + SKAdNetworkIdentifier + p78axxw29g.skadnetwork + + + SKAdNetworkIdentifier + 737z793b9f.skadnetwork + + + SKAdNetworkIdentifier + v72qych5uu.skadnetwork + + + SKAdNetworkIdentifier + 6xzpu9s2p8.skadnetwork + + + SKAdNetworkIdentifier + ludvb6z3bs.skadnetwork + + + SKAdNetworkIdentifier + mlmmfzh3r3.skadnetwork + + + SKAdNetworkIdentifier + c6k4g5qg8m.skadnetwork + + + SKAdNetworkIdentifier + wg4vff78zm.skadnetwork + + + SKAdNetworkIdentifier + 523jb4fst2.skadnetwork + + + SKAdNetworkIdentifier + ggvn48r87g.skadnetwork + + + SKAdNetworkIdentifier + 22mmun2rn5.skadnetwork + + + SKAdNetworkIdentifier + 3sh42y64q3.skadnetwork + + + SKAdNetworkIdentifier + f38h382jlk.skadnetwork + + + SKAdNetworkIdentifier + 24t9a8vw3c.skadnetwork + + + SKAdNetworkIdentifier + hs6bdukanm.skadnetwork + + + SKAdNetworkIdentifier + prcb7njmu6.skadnetwork + + + SKAdNetworkIdentifier + m8dbw4sv7c.skadnetwork + + + SKAdNetworkIdentifier + 9nlqeag3gk.skadnetwork + + + SKAdNetworkIdentifier + cj5566h2ga.skadnetwork + + + SKAdNetworkIdentifier + cstr6suwn9.skadnetwork + + + SKAdNetworkIdentifier + w9q455wk68.skadnetwork + + + SKAdNetworkIdentifier + wzmmz9fp6w.skadnetwork + + + SKAdNetworkIdentifier + yclnxrl5pm.skadnetwork + + + SKAdNetworkIdentifier + 4468km3ulz.skadnetwork + + + SKAdNetworkIdentifier + t38b2kh725.skadnetwork + + + SKAdNetworkIdentifier + k674qkevps.skadnetwork + + + SKAdNetworkIdentifier + 7ug5zh24hu.skadnetwork + + + SKAdNetworkIdentifier + 5lm9lj6jb7.skadnetwork + + + SKAdNetworkIdentifier + 9rd848q2bz.skadnetwork + + + SKAdNetworkIdentifier + 7rz58n8ntl.skadnetwork + + + SKAdNetworkIdentifier + 4w7y6s5ca2.skadnetwork + + + SKAdNetworkIdentifier + feyaarzu9v.skadnetwork + + + SKAdNetworkIdentifier + ejvt5qm6ak.skadnetwork + + + SKAdNetworkIdentifier + 9t245vhmpl.skadnetwork + + + SKAdNetworkIdentifier + n9x2a789qt.skadnetwork + + + SKAdNetworkIdentifier + 44jx6755aq.skadnetwork + + + SKAdNetworkIdentifier + zmvfpc5aq8.skadnetwork + + + SKAdNetworkIdentifier + tl55sbb4fm.skadnetwork + + + SKAdNetworkIdentifier + 2u9pt9hc89.skadnetwork + + + SKAdNetworkIdentifier + 5a6flpkh64.skadnetwork + + + SKAdNetworkIdentifier + 8s468mfl3y.skadnetwork + + + SKAdNetworkIdentifier + glqzh8vgby.skadnetwork + + + SKAdNetworkIdentifier + av6w8kgt66.skadnetwork + + + SKAdNetworkIdentifier + klf5c3l5u5.skadnetwork + + + SKAdNetworkIdentifier + dzg6xy7pwj.skadnetwork + + + SKAdNetworkIdentifier + y45688jllp.skadnetwork + + + SKAdNetworkIdentifier + hdw39hrw9y.skadnetwork + + + SKAdNetworkIdentifier + ppxm28t8ap.skadnetwork + + + SKAdNetworkIdentifier + 424m5254lk.skadnetwork + + + SKAdNetworkIdentifier + 5l3tpt7t6e.skadnetwork + + + SKAdNetworkIdentifier + uw77j35x4d.skadnetwork + + + SKAdNetworkIdentifier + 4dzt52r2t5.skadnetwork + + + SKAdNetworkIdentifier + mtkv5xtk9e.skadnetwork + + + SKAdNetworkIdentifier + gta9lk7p23.skadnetwork + + + SKAdNetworkIdentifier + 5tjdwbrq8w.skadnetwork + + + SKAdNetworkIdentifier + 3rd42ekr43.skadnetwork + + + SKAdNetworkIdentifier + g28c52eehv.skadnetwork + + + diff --git a/example/ios/Runner/zh-Hans.lproj/LaunchScreen.strings b/example/ios/Runner/zh-Hans.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/example/ios/Runner/zh-Hans.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/example/ios/Runner/zh-Hans.lproj/Main.strings b/example/ios/Runner/zh-Hans.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/example/ios/Runner/zh-Hans.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/example/lib/banner_page.dart b/example/lib/banner_page.dart index 9425a1f..d101d27 100644 --- a/example/lib/banner_page.dart +++ b/example/lib/banner_page.dart @@ -28,7 +28,7 @@ class _BannerPageState extends State { children: [ QuakerBirdAdBanner( androidId: "1983", - iosId: "1983", + iosId: "1330826173118169119", width: 500, height: 50, callBack: QuakerBirdAdBannerCallBack( @@ -43,7 +43,6 @@ class _BannerPageState extends State { }, onDismiss: (){ print("横幅广告关闭"); - Navigator.pop(context); }, onStatus: (type,platform,status,msg){ print("横幅广告状态 类型:$type 平台:$platform 状态:$status 错误消息 (失败时有效):$msg"); @@ -52,9 +51,9 @@ class _BannerPageState extends State { ), QuakerBirdAdBanner( androidId: "1983", - iosId: "1983", + iosId: "1330826173118169119", width: 500, - height: 50, + height: 150, ), ], ), diff --git a/example/lib/express_draw_page.dart b/example/lib/express_draw_page.dart index 9b0ddfe..9665172 100644 --- a/example/lib/express_draw_page.dart +++ b/example/lib/express_draw_page.dart @@ -28,7 +28,7 @@ class _ExpressPageState extends State { children: [ QuakerBirdAdExpressDraw( androidId: "8517", - iosId: "8517", + iosId: "1330870617007734865", width: 500, height: 300, callBack: QuakerBirdAdExpressDrawCallBack( @@ -43,7 +43,6 @@ class _ExpressPageState extends State { }, onDismiss: (){ print("模版视频广告关闭"); - Navigator.pop(context); }, onStatus: (type,platform,status,msg){ print("模版视频广告状态 类型:$type 平台:$platform 状态:$status 错误消息 (失败时有效):$msg"); @@ -52,7 +51,7 @@ class _ExpressPageState extends State { ), QuakerBirdAdExpressDraw( androidId: "8517", - iosId: "8517", + iosId: "1330870617007734865", width: 500, height: 300, ), diff --git a/example/lib/express_page.dart b/example/lib/express_page.dart index 51b0235..d3824c6 100644 --- a/example/lib/express_page.dart +++ b/example/lib/express_page.dart @@ -29,8 +29,8 @@ class _ExpressPageState extends State { children: [ QuakerBirdAdExpress( androidId: "8461", - iosId: "8461", - width: 500, + iosId: "1381811746829779041", + width: 400, height: 300, callBack: QuakerBirdAdExpressCallBack( onShow: (){ @@ -44,7 +44,6 @@ class _ExpressPageState extends State { }, onDismiss: (){ print("模版广告关闭"); - Navigator.pop(context); }, onStatus: (type,platform,status,msg){ print("模版广告状态 类型:$type 平台:$platform 状态:$status 错误消息 (失败时有效):$msg"); @@ -53,8 +52,8 @@ class _ExpressPageState extends State { ), QuakerBirdAdExpress( androidId: "8461", - iosId: "8461", - width: 500, + iosId: "1381811746829779041", + width: 400, height: 300, ), ], diff --git a/example/lib/main.dart b/example/lib/main.dart index a4db056..4b6c6b1 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -8,7 +8,7 @@ import 'package:quakerbirdad_example/express_page.dart'; import 'package:quakerbirdad_example/splash_page.dart'; import 'express_draw_page.dart'; -import 'feed_page.dart'; +import 'native_page.dart'; void main() { runApp(MyApp()); @@ -114,7 +114,7 @@ class _IndexPageState extends State { //android app id androidAppId: "881", //ios app id - iosAppId: "881", + iosAppId: "1330788821410791458", //是否显示日志,建议正式上线时,设置为false debug: true, //是否非WiFi下提示确认 @@ -155,6 +155,11 @@ class _IndexPageState extends State { height: 50, child: Text("信天翁SDK版本号>>>>>> v$_version"), ), + button("获取权限", () { + QuakerBirdAd.requestPermission().then((value) => { + print("获取权限结果 $value") + }); + }), button("开屏广告", () { Navigator.push( context, @@ -165,7 +170,10 @@ class _IndexPageState extends State { }), button("插屏广告", () { QuakerBirdAd.loadInteractionAd( - androidId: "11087", iosId: "11087"); + androidId: "11087", iosId: "1473895494450167827"); + }), + button("全屏广告", () { + QuakerBirdAd.loadFullScreenAd(androidId: "8811", iosId: "1473895822729953353"); }), button("横幅广告", () { Navigator.push( @@ -175,35 +183,32 @@ class _IndexPageState extends State { ), ); }), - button("模版广告", () { + button("信息流广告", () { Navigator.push( context, MaterialPageRoute( - builder: (context) => const ExpressPage(), + builder: (context) => const NativePage(), ), ); }), - button("模版视频广告", () { + button("模版广告", () { Navigator.push( context, MaterialPageRoute( - builder: (context) => const ExpressDrawPage(), + builder: (context) => const ExpressPage(), ), ); }), - button("全屏广告", () { - QuakerBirdAd.loadFullScreenAd(androidId: "8811", iosId: "8811"); - }), - button("信息流广告", () { + button("模版视频广告", () { Navigator.push( context, MaterialPageRoute( - builder: (context) => const FeedPage(), + builder: (context) => const ExpressDrawPage(), ), ); }), button("激励广告", () { - QuakerBirdAd.loadRewardVideoAd(androidId: "1028", iosId: "1028"); + QuakerBirdAd.loadRewardVideoAd(androidId: "1028", iosId: "1330851356566634576"); }), ], ), diff --git a/example/lib/feed_page.dart b/example/lib/native_page.dart similarity index 79% rename from example/lib/feed_page.dart rename to example/lib/native_page.dart index eb3c373..a1aad90 100644 --- a/example/lib/feed_page.dart +++ b/example/lib/native_page.dart @@ -7,14 +7,14 @@ import 'package:quakerbirdad_example/express_draw_page.dart'; /// @Email gstory0404@gmail.com /// @Description: dart类作用描述 -class FeedPage extends StatefulWidget { - const FeedPage({Key? key}) : super(key: key); +class NativePage extends StatefulWidget { + const NativePage({Key? key}) : super(key: key); @override - State createState() => _FeedPageState(); + State createState() => _FeedPageState(); } -class _FeedPageState extends State { +class _FeedPageState extends State { @override Widget build(BuildContext context) { return Scaffold( @@ -27,12 +27,12 @@ class _FeedPageState extends State { physics: const BouncingScrollPhysics(), child: Column( children: [ - QuakerBirdAdFeed( + QuakerBirdAdNative( androidId: "2351", - iosId: "2351", + iosId: "1330837059203514380", width: 500, height: 200, - callBack: QuakerBirdAdFeedCallBack( + callBack: QuakerBirdAdNativeCallBack( onShow: (){ print("信息流广告显示"); }, @@ -44,16 +44,15 @@ class _FeedPageState extends State { }, onDismiss: (){ print("信息流广告关闭"); - Navigator.pop(context); }, onStatus: (type,platform,status,msg){ print("信息流广告状态 类型:$type 平台:$platform 状态:$status 错误消息 (失败时有效):$msg"); } ), ), - QuakerBirdAdFeed( + QuakerBirdAdNative( androidId: "2351", - iosId: "2351", + iosId: "1330837059203514380", width: 500, height: 200, ), diff --git a/example/lib/splash_page.dart b/example/lib/splash_page.dart index 3172091..8314663 100644 --- a/example/lib/splash_page.dart +++ b/example/lib/splash_page.dart @@ -21,7 +21,7 @@ class _SplashPageState extends State { Widget build(BuildContext context) { return QuakerBirdAdSplash( androidId: "3561", - iosId: "3561", + iosId: "1331028209814224946", width: window.physicalSize.width / window.devicePixelRatio, height: window.physicalSize.height / window.devicePixelRatio, callBack: QuakerBirdAdSplashCallBack( diff --git a/example/pubspec.lock b/example/pubspec.lock index 994f781..56cae21 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -129,7 +129,7 @@ packages: path: ".." relative: true source: path - version: "0.0.3" + version: "0.0.5" sky_engine: dependency: transitive description: flutter diff --git a/ios/Classes/QuakerbirdadPlugin.h b/ios/Classes/QuakerbirdadPlugin.h new file mode 100644 index 0000000..8181823 --- /dev/null +++ b/ios/Classes/QuakerbirdadPlugin.h @@ -0,0 +1,4 @@ +#import + +@interface QuakerbirdadPlugin : NSObject +@end diff --git a/ios/Classes/QuakerbirdadPlugin.m b/ios/Classes/QuakerbirdadPlugin.m new file mode 100644 index 0000000..9502439 --- /dev/null +++ b/ios/Classes/QuakerbirdadPlugin.m @@ -0,0 +1,67 @@ +#import "QuakerbirdadPlugin.h" +#import "mysdk/MYSDKConfig.h" +#import "QBInsertAd.h" +#import "QBRewardAd.h" +#import "QBAdEvent.h" +#import "QBSplashAd.h" +#import "QBBannerAd.h" +#import "QBNativeAd.h" +#import "QBExpressAd.h" +#import "QBExpressDrawAd.h" +#import + +@implementation QuakerbirdadPlugin ++ (void)registerWithRegistrar:(NSObject*)registrar { + FlutterMethodChannel* channel = [FlutterMethodChannel + methodChannelWithName:@"quakerbirdad" + binaryMessenger:[registrar messenger]]; + QuakerbirdadPlugin* instance = [[QuakerbirdadPlugin alloc] init]; + [registrar addMethodCallDelegate:instance channel:channel]; + //注册event + [[QBAdEvent sharedInstance] initEvent:registrar]; + //注册开屏广告 + [registrar registerViewFactory:[[QBSplashAdFactory alloc] initWithMessenger:registrar.messenger] withId:@"com.gstory.quakerbirdad/SplashAdView"]; + //注册banner广告 + [registrar registerViewFactory:[[QBBannerAdFactory alloc] initWithMessenger:registrar.messenger] withId:@"com.gstory.quakerbirdad/BannerAdView"]; + //注册信息流广告 + [registrar registerViewFactory:[[QBNativeAdFactory alloc] initWithMessenger:registrar.messenger] withId:@"com.gstory.quakerbirdad/NativeAdView"]; + //注册自渲染广告 + [registrar registerViewFactory:[[QBExpressAdFactory alloc] initWithMessenger:registrar.messenger] withId:@"com.gstory.quakerbirdad/ExpressAdView"]; + //注册自渲染Draw广告 + [registrar registerViewFactory:[[QBExpressDrawAdFactory alloc] initWithMessenger:registrar.messenger] withId:@"com.gstory.quakerbirdad/ExpressDrawAdView"]; +} + +- (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result { + if ([@"register" isEqualToString:call.method]) { + NSString *appId = call.arguments[@"iosAppId"]; + BOOL debug = [call.arguments[@"debug"] boolValue]; + [[MYSDKConfig getDefaultInstance] myShowLog:debug]; + [[MYSDKConfig getDefaultInstance] setAppID:appId callback:^(BOOL success) { + NSLog(@"SDK初始化%@",success?@"YES":@"NO"); + result([NSNumber numberWithBool:success]); + }]; + }else if ([@"getSDKVersion" isEqualToString:call.method]) { + result(@"unknow"); + }else if ([@"loadInteractionAd" isEqualToString:call.method]) { + [[QBInsertAd sharedInstance] loadAd:call.arguments :false]; + result(@YES); + }else if ([@"loadFullScreenAd" isEqualToString:call.method]) { + [[QBInsertAd sharedInstance] loadAd:call.arguments :true]; + result(@YES); + }else if ([@"loadRewardVideoAd" isEqualToString:call.method]) { + [[QBRewardAd sharedInstance] loadAd:call.arguments]; + result(@YES); + }else if ([@"requestPermission" isEqualToString:call.method]) { + if (@available(iOS 14, *)) { + [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) { + result(@(status)); + }]; + }else{ + result(@(3)); + } + } else { + result(FlutterMethodNotImplemented); + } +} + +@end diff --git a/ios/Classes/QuakerbirdadPlugin.swift b/ios/Classes/QuakerbirdadPlugin.swift deleted file mode 100644 index 6ef5dad..0000000 --- a/ios/Classes/QuakerbirdadPlugin.swift +++ /dev/null @@ -1,14 +0,0 @@ -import Flutter -import UIKit - -public class QuakerbirdadPlugin: NSObject, FlutterPlugin { - public static func register(with registrar: FlutterPluginRegistrar) { - let channel = FlutterMethodChannel(name: "quakerbirdad", binaryMessenger: registrar.messenger()) - let instance = QuakerbirdadPlugin() - registrar.addMethodCallDelegate(instance, channel: channel) - } - - public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) { - result("iOS " + UIDevice.current.systemVersion) - } -} diff --git a/ios/Classes/bannerad/QBBannerAd.h b/ios/Classes/bannerad/QBBannerAd.h new file mode 100644 index 0000000..6faac46 --- /dev/null +++ b/ios/Classes/bannerad/QBBannerAd.h @@ -0,0 +1,27 @@ +// +// QBBannerAd.h +// quakerbirdad +// +// Created by gstory on 2023/2/9. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN +@interface QBBannerAdFactory : NSObject + +- (instancetype)initWithMessenger:(NSObject*)messager; + +@end + +@interface QBBannerAd : NSObject +- (instancetype)initWithWithFrame:(CGRect)frame + viewIdentifier:(int64_t)viewId + arguments:(id _Nullable)args + binaryMessenger:(NSObject*)messenger; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/bannerad/QBBannerAd.m b/ios/Classes/bannerad/QBBannerAd.m new file mode 100644 index 0000000..afeca01 --- /dev/null +++ b/ios/Classes/bannerad/QBBannerAd.m @@ -0,0 +1,118 @@ +// +// QBBannerAd.m +// quakerbirdad +// +// Created by gstory on 2023/2/9. +// + +#import "QBBannerAd.h" +#import "../mysdk/MYAdCenter.h" +#import "../utils/QBUIViewController+getCurrentVC.h" + +@implementation QBBannerAdFactory{ + NSObject*_messenger; +} + +- (instancetype)initWithMessenger:(NSObject *)messager{ + self = [super init]; + if (self) { + _messenger = messager; + } + return self; +} + +-(NSObject *)createArgsCodec{ + return [FlutterStandardMessageCodec sharedInstance]; +} + +-(NSObject *)createWithFrame:(CGRect)frame viewIdentifier:(int64_t)viewId arguments:(id)args{ + QBBannerAd * bannerad = [[QBBannerAd alloc] initWithWithFrame:frame viewIdentifier:viewId arguments:args binaryMessenger:_messenger]; + + return bannerad; + +} + +@end + + +@interface QBBannerAd() + +@property (nonatomic, strong) MYAdCenter *adCenter; +@property(nonatomic,strong) UIView *container; +@property(nonatomic,assign) CGRect frame; +@property(nonatomic,assign) NSInteger viewId; +@property(nonatomic,strong) FlutterMethodChannel *channel; +@property(nonatomic,strong) NSString *codeId; +@property(nonatomic,assign) double width; +@property(nonatomic,assign) double height; +@end + +@implementation QBBannerAd + +- (instancetype)initWithWithFrame:(CGRect)frame viewIdentifier:(int64_t)viewId arguments:(id)args binaryMessenger:(NSObject *)messenger{ + if ([super init]) { + NSDictionary *dic = args; + self.frame = frame; + self.viewId = viewId; + self.codeId = dic[@"iosId"]; + NSNumber *viewWidth = dic[@"width"]; + NSNumber *viewHeight = dic[@"height"]; + self.width = [viewWidth doubleValue]; + self.height = [viewHeight doubleValue]; + NSString* channelName = [NSString stringWithFormat:@"com.gstory.quakerbirdad/BannerAdView_%lld", viewId]; + self.channel = [FlutterMethodChannel methodChannelWithName:channelName binaryMessenger:messenger]; + self.container = [[UIView alloc] initWithFrame:CGRectMake(0,0,self.width,self.height)]; + [self loadSplashAd]; + } + return self; +} + +- (UIView*)view{ + return self.container; +} + +-(void)loadSplashAd{ + self.adCenter = [[MYAdCenter alloc] init] ; + MYBannerAdData *data = [MYBannerAdData alloc]; + data.positionID = self.codeId; + data.rootViewController = [UIViewController jsd_getCurrentViewController]; + data.bannerAdDelegate = self; + data.bannerFrame = CGRectMake(0, 0, self.width, self.height); + data.bannerSuperView = self.container; + [self.adCenter my_showBannerAd:data]; +} + +#pragma 回调 + +///广告加载失败,msg加载失败说明(如果重新请求广告,注意:只重新请求一次) +- (void) onBannerAdFail:(NSString*)error{ + NSLog(@"Banner广告加载失败%@",error); + NSDictionary *dictionary = @{@"msg":error.description}; + [_channel invokeMethod:@"onError" arguments:dictionary result:nil]; +} + +///广告渲染成功 +- (void) onBannerAdExposure{ + NSLog(@"Banner广告渲染成功"); + NSDictionary *dictionary = @{@"width":@(self.width),@"height":@(self.height)}; + [_channel invokeMethod:@"onShow" arguments:dictionary result:nil]; +} + +///广告被关闭 +- (void) onBannerAdDismiss{ + NSLog(@"Banner广告关闭"); + [_channel invokeMethod:@"onDismiss" arguments:nil result:nil]; +} + +///广告被点击 +- (void) onBannerAdClicked{ + NSLog(@"Banner广告点击"); + [_channel invokeMethod:@"onClick" arguments:nil result:nil]; +} + +///banner 高度(部分返回) +-(void) onBannerHeight:(CGFloat)height{ + NSLog(@"Banner广告高度 %f",height); +} + +@end diff --git a/ios/Classes/event/QBAdEvent.h b/ios/Classes/event/QBAdEvent.h new file mode 100644 index 0000000..c0bd1e4 --- /dev/null +++ b/ios/Classes/event/QBAdEvent.h @@ -0,0 +1,19 @@ +// +// QBAdEvent.h +// quakerbirdad +// +// Created by gstory on 2023/2/9. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface QBAdEvent : NSObject ++ (instancetype)sharedInstance; +- (void)initEvent:(NSObject*)registrar; +- (void)sentEvent:(NSDictionary*)arguments; +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/event/QBAdEvent.m b/ios/Classes/event/QBAdEvent.m new file mode 100644 index 0000000..0a4b80c --- /dev/null +++ b/ios/Classes/event/QBAdEvent.m @@ -0,0 +1,47 @@ +// +// QBAdEvent.m +// quakerbirdad +// +// Created by gstory on 2023/2/9. +// + +#import "QBAdEvent.h" +#import + +@interface QBAdEvent() +@property(nonatomic,strong) FlutterEventSink eventSink; +@end + +@implementation QBAdEvent ++ (instancetype)sharedInstance{ + static QBAdEvent *myInstance = nil; + if(myInstance == nil){ + myInstance = [[QBAdEvent alloc]init]; + } + return myInstance; +} + + +- (void)initEvent:(NSObject*)registrar{ + FlutterEventChannel *eventChannel = [FlutterEventChannel eventChannelWithName:@"com.gstory.quakerbirdad/adevent" binaryMessenger:[registrar messenger]]; + [eventChannel setStreamHandler:self]; +} + +-(void)sentEvent:(NSDictionary*)arguments{ + self.eventSink(arguments); +} + + + +#pragma mark - FlutterStreamHandler +- (FlutterError * _Nullable)onCancelWithArguments:(id _Nullable)arguments { + self.eventSink = nil; + return nil; +} + +- (FlutterError * _Nullable)onListenWithArguments:(id _Nullable)arguments eventSink:(nonnull FlutterEventSink)events { + self.eventSink = events; + return nil; +} + +@end diff --git a/ios/Classes/expressad/QBExpressAd.h b/ios/Classes/expressad/QBExpressAd.h new file mode 100644 index 0000000..0faf263 --- /dev/null +++ b/ios/Classes/expressad/QBExpressAd.h @@ -0,0 +1,27 @@ +// +// QBExpressAd.h +// Pods-Runner +// +// Created by gstory on 2023/2/10. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN +@interface QBExpressAdFactory : NSObject + +- (instancetype)initWithMessenger:(NSObject*)messager; + +@end + +@interface QBExpressAd : NSObject +- (instancetype)initWithWithFrame:(CGRect)frame + viewIdentifier:(int64_t)viewId + arguments:(id _Nullable)args + binaryMessenger:(NSObject*)messenger; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/expressad/QBExpressAd.m b/ios/Classes/expressad/QBExpressAd.m new file mode 100644 index 0000000..439d4be --- /dev/null +++ b/ios/Classes/expressad/QBExpressAd.m @@ -0,0 +1,122 @@ +// +// QBExpressAd.m +// Pods-Runner +// +// Created by gstory on 2023/2/10. +// + +#import "QBExpressAd.h" +#import "../mysdk/MYAdCenter.h" +#import "../utils/QBUIViewController+getCurrentVC.h" +#import "QBUnifiedNativeImageView.h" + +@implementation QBExpressAdFactory{ + NSObject*_messenger; +} + +- (instancetype)initWithMessenger:(NSObject *)messager{ + self = [super init]; + if (self) { + _messenger = messager; + } + return self; +} + +-(NSObject *)createArgsCodec{ + return [FlutterStandardMessageCodec sharedInstance]; +} + +-(NSObject *)createWithFrame:(CGRect)frame viewIdentifier:(int64_t)viewId arguments:(id)args{ + QBExpressAd * expressad = [[QBExpressAd alloc] initWithWithFrame:frame viewIdentifier:viewId arguments:args binaryMessenger:_messenger]; + return expressad; +} + +@end + + +@interface QBExpressAd() + +@property (nonatomic, strong) MYAdCenter *adCenter; +//广告view +@property (nonatomic, strong) QBUnifiedNativeImageView *adView; +@property(nonatomic,strong) UIView *container; +@property(nonatomic,assign) CGRect frame; +@property(nonatomic,assign) NSInteger viewId; +@property(nonatomic,strong) FlutterMethodChannel *channel; +@property(nonatomic,strong) NSString *codeId; +@property(nonatomic,assign) double width; +@property(nonatomic,assign) double height; +@end + +@implementation QBExpressAd + +- (instancetype)initWithWithFrame:(CGRect)frame viewIdentifier:(int64_t)viewId arguments:(id)args binaryMessenger:(NSObject *)messenger{ + if ([super init]) { + NSDictionary *dic = args; + self.frame = frame; + self.viewId = viewId; + self.codeId = dic[@"iosId"]; + NSNumber *viewWidth = dic[@"width"]; + NSNumber *viewHeight = dic[@"height"]; + self.width = [viewWidth doubleValue]; + self.height = [viewHeight doubleValue]; + NSString* channelName = [NSString stringWithFormat:@"com.gstory.quakerbirdad/ExpressAdView_%lld", viewId]; + self.channel = [FlutterMethodChannel methodChannelWithName:channelName binaryMessenger:messenger]; + self.container = [[UIView alloc] initWithFrame:CGRectMake(0,0,self.width,self.height)]; + [self loadNativeAd]; + } + return self; +} + +- (UIView*)view{ + return self.container; +} + +-(void)loadNativeAd{ + self.adCenter = [[MYAdCenter alloc] init] ; + MYUnifiedAdData *data = [MYUnifiedAdData alloc]; + data.positionID = self.codeId; + data.unifiedNativeAdDelegate = self; + data.loadAdCount = 1; + //步骤 1:根据宽度算出广告的高度 + double adViewHeight = [QBUnifiedNativeImageView getViewHeightWithWidth:self.width]; + //步骤 2:初始化广告view + self.adView = [[QBUnifiedNativeImageView alloc] initWithFrame:CGRectMake(0, 0, self.width, adViewHeight)]; + [self.adCenter my_requestUnifiedAd:data]; +} + +#pragma 回调 +//返回广告数据回调 unifiedNativeAdDataObjects数组中的元素类型为GDTUnifiedNativeAdDataObject +- (void)unifiedNativeAdLoaded:(NSArray * _Nullable)unifiedNativeAdDataObjects :(NSError * _Nullable)error{ + NSLog(@"自渲染广告加载成功"); + if (!error && unifiedNativeAdDataObjects.count > 0) { + //步骤 4:成功返回数据,赋值 + [self.adView setupWithUnifiedNativeAdObject:[unifiedNativeAdDataObjects firstObject] center:self.adCenter rootViewController:[UIViewController jsd_getCurrentViewController]]; + //步骤 5:添加广告页面到自己的页面上 + [self.container addSubview:self.adView]; + NSDictionary *dictionary = @{@"width":@(self.adView.frame.size.width),@"height":@(self.adView.frame.size.height)}; + [_channel invokeMethod:@"onShow" arguments:dictionary result:nil]; + return; + }else{ + if(!error){ + NSDictionary *dictionary = @{@"msg":error.description}; + [_channel invokeMethod:@"onError" arguments:dictionary result:nil]; + }else{ + NSDictionary *dictionary = @{@"msg":@"暂无广告"}; + [_channel invokeMethod:@"onError" arguments:dictionary result:nil]; + } + } +} + +//广告点击回调 +- (void)unifiedNativeAdClick{ + NSLog(@"自渲染广告点击回调"); + [_channel invokeMethod:@"onClick" arguments:nil result:nil]; +} + +//广告展示回调 +- (void)unifiedNativeAdExposure{ + NSLog(@"自渲染广告展示回调"); +} + +@end diff --git a/ios/Classes/expressdrawad/QBExpressDrawAd.h b/ios/Classes/expressdrawad/QBExpressDrawAd.h new file mode 100644 index 0000000..a06fe21 --- /dev/null +++ b/ios/Classes/expressdrawad/QBExpressDrawAd.h @@ -0,0 +1,28 @@ +// +// QBExpressDrawAd.h +// quakerbirdad +// +// Created by gstory on 2023/2/10. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN +@interface QBExpressDrawAdFactory : NSObject + +- (instancetype)initWithMessenger:(NSObject*)messager; + +@end + +@interface QBExpressDrawAd : NSObject +- (instancetype)initWithWithFrame:(CGRect)frame + viewIdentifier:(int64_t)viewId + arguments:(id _Nullable)args + binaryMessenger:(NSObject*)messenger; + + +@end + + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/expressdrawad/QBExpressDrawAd.m b/ios/Classes/expressdrawad/QBExpressDrawAd.m new file mode 100644 index 0000000..edc7a55 --- /dev/null +++ b/ios/Classes/expressdrawad/QBExpressDrawAd.m @@ -0,0 +1,110 @@ +// +// QBExpressDrawAd.m +// quakerbirdad +// +// Created by gstory on 2023/2/10. +// + +#import "QBExpressDrawAd.h" +#import "../mysdk/MYAdCenter.h" +#import "../utils/QBUIViewController+getCurrentVC.h" + +@implementation QBExpressDrawAdFactory{ + NSObject*_messenger; +} + +- (instancetype)initWithMessenger:(NSObject *)messager{ + self = [super init]; + if (self) { + _messenger = messager; + } + return self; +} + +-(NSObject *)createArgsCodec{ + return [FlutterStandardMessageCodec sharedInstance]; +} + +-(NSObject *)createWithFrame:(CGRect)frame viewIdentifier:(int64_t)viewId arguments:(id)args{ + QBExpressDrawAd * expressDrawAd = [[QBExpressDrawAd alloc] initWithWithFrame:frame viewIdentifier:viewId arguments:args binaryMessenger:_messenger]; + return expressDrawAd; +} + +@end + + +@interface QBExpressDrawAd() + +@property (nonatomic, strong) MYAdCenter *adCenter; +@property(nonatomic,strong) UIView *container; +@property(nonatomic,assign) CGRect frame; +@property(nonatomic,assign) NSInteger viewId; +@property(nonatomic,strong) FlutterMethodChannel *channel; +@property(nonatomic,strong) NSString *codeId; +@property(nonatomic,assign) double width; +@property(nonatomic,assign) double height; +@end + +@implementation QBExpressDrawAd + +- (instancetype)initWithWithFrame:(CGRect)frame viewIdentifier:(int64_t)viewId arguments:(id)args binaryMessenger:(NSObject *)messenger{ + if ([super init]) { + NSDictionary *dic = args; + self.frame = frame; + self.viewId = viewId; + self.codeId = dic[@"iosId"]; + NSNumber *viewWidth = dic[@"width"]; + NSNumber *viewHeight = dic[@"height"]; + self.width = [viewWidth doubleValue]; + self.height = [viewHeight doubleValue]; + NSString* channelName = [NSString stringWithFormat:@"com.gstory.quakerbirdad/ExpressDrawAdView_%lld", viewId]; + self.channel = [FlutterMethodChannel methodChannelWithName:channelName binaryMessenger:messenger]; + self.container = [[UIView alloc] initWithFrame:CGRectMake(0,0,self.width,self.height)]; + [self loadExpressDrawAd]; + } + return self; +} + +- (UIView*)view{ + return self.container; +} + +-(void)loadExpressDrawAd{ + self.adCenter = [[MYAdCenter alloc] init] ; + MYDrawNativeVideoAdData *data = [MYDrawNativeVideoAdData alloc]; + data.positionID = self.codeId; + data.drawNativeVideoAdDelegate = self; + data.adFrame = self.container.frame; + data.drawAdContainerView = self.container; + data.loadDrawAdCount = 1; + data.rootViewController = [UIViewController jsd_getCurrentViewController]; + [self.adCenter my_showDrawNativeVideoAd:data]; +} + +#pragma 回调 +///广告加载失败,msg加载失败说明(如果重新请求广告,注意:只重新请求一次) +- (void) onDrawNativeAdFail:(NSString*)error{ + NSLog(@"Draw广告加载失败 %@",error); + NSDictionary *dictionary = @{@"msg":error.description}; + [_channel invokeMethod:@"onError" arguments:dictionary result:nil]; +} + +///视频被点击 +- (void) onDrawNativeAdClicked{ + NSLog(@"Draw广告视频被点击"); + [_channel invokeMethod:@"onClick" arguments:nil result:nil]; +} + +/// 广告曝光回调 +- (void) onDrawNativeRenderSuccess{ + NSLog(@"Draw广告曝光"); +} + +///广告加载成功,刷新数据 +- (void) onDrawNativeAdloadSuccessWithDataArray:(NSMutableArray *)adDataArray{ + NSLog(@"Draw广告加载成功"); + NSDictionary *dictionary = @{@"width":@(self.container.frame.size.width),@"height":@(self.container.frame.size.height)}; + [_channel invokeMethod:@"onShow" arguments:dictionary result:nil]; +} + +@end diff --git a/ios/Classes/interactionad/QBInsertAd.h b/ios/Classes/interactionad/QBInsertAd.h new file mode 100644 index 0000000..b76b46d --- /dev/null +++ b/ios/Classes/interactionad/QBInsertAd.h @@ -0,0 +1,17 @@ +// +// QBInsertAd.h +// Pods +// +// Created by gstory on 2023/2/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface QBInsertAd : NSObject ++ (instancetype)sharedInstance; +- (void)loadAd:(NSDictionary *)arguments:(BOOL)isFull; +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/interactionad/QBInsertAd.m b/ios/Classes/interactionad/QBInsertAd.m new file mode 100644 index 0000000..d9cfd4e --- /dev/null +++ b/ios/Classes/interactionad/QBInsertAd.m @@ -0,0 +1,101 @@ +// +// QBInsertAd.m +// Pods +// +// Created by gstory on 2023/2/9. +// + +#import "QBInsertAd.h" +#import "../mysdk/MYInterActionAdData.h" +#import "../mysdk/MYAdCenter.h" +#import "../utils/QBUIViewController+getCurrentVC.h" +#import "../event/QBAdEvent.h" + +@interface QBInsertAd() +@property(nonatomic,strong) MYAdCenter *adCenter; +@property(nonatomic,strong) NSString *codeId; +@property(nonatomic,assign) BOOL isFull; +@end + +@implementation QBInsertAd ++ (instancetype)sharedInstance{ + static QBInsertAd *myInstance = nil; + if(myInstance == nil){ + myInstance = [[QBInsertAd alloc]init]; + } + return myInstance; +} + +//加载插屏广告 +- (void)loadAd:(NSDictionary *)arguments:(BOOL)isFull{ + self.codeId = arguments[@"iosId"]; + self.adCenter = [[MYAdCenter alloc] init]; + self.isFull = isFull; + MYInterActionAdData *data = [[MYInterActionAdData alloc] init]; + data.positionID = self.codeId; + data.rootViewController = [UIViewController jsd_getCurrentViewController]; + data.interActionAdDelegate = self; + [self.adCenter my_showInterActionAd:data]; +} + +#pragma mark - 广告请求delegate + +///广告加载失败,msg加载失败说明(如果重新请求广告,注意:只重新请求一次) +- (void) onInterActionAdFail:(NSString*)error{ + NSLog(@"插屏广告加载失败%@",error); + if(self.isFull){ + NSDictionary *dictionary = @{@"adType":@"fullScreenAd",@"onAdMethod":@"onError",@"msg":error.description}; + [[QBAdEvent sharedInstance] sentEvent:dictionary]; + }else{ + NSDictionary *dictionary = @{@"adType":@"interactionAd",@"onAdMethod":@"onError",@"msg":error.description}; + [[QBAdEvent sharedInstance] sentEvent:dictionary]; + } +} + +///广告渲染成功 +- (void) onInterActionAdExposure{ + NSLog(@"插屏广告渲染成功"); + if(self.isFull){ + NSDictionary *dictionary = @{@"adType":@"fullScreenAd",@"onAdMethod":@"onShow"}; + [[QBAdEvent sharedInstance] sentEvent:dictionary]; + }else{ + NSDictionary *dictionary = @{@"adType":@"interactionAd",@"onAdMethod":@"onShow"}; + [[QBAdEvent sharedInstance] sentEvent:dictionary]; + } +} + +///广告被关闭 +- (void) onInterActionAdDismiss{ + NSLog(@"插屏广告被关闭"); + if(self.isFull){ + NSDictionary *dictionary = @{@"adType":@"fullScreenAd",@"onAdMethod":@"onDismiss"}; + [[QBAdEvent sharedInstance] sentEvent:dictionary]; + }else{ + NSDictionary *dictionary = @{@"adType":@"interactionAd",@"onAdMethod":@"onDismiss"}; + [[QBAdEvent sharedInstance] sentEvent:dictionary]; + } +} + +///广告被点击 +- (void) onInterActionAdClicked{ + if(self.isFull){ + NSDictionary *dictionary = @{@"adType":@"fullScreenAd",@"onAdMethod":@"onClick"}; + [[QBAdEvent sharedInstance] sentEvent:dictionary]; + }else{ + NSDictionary *dictionary = @{@"adType":@"interactionAd",@"onAdMethod":@"onClick"}; + [[QBAdEvent sharedInstance] sentEvent:dictionary]; + } +} + +/////视频准备就绪开始播放(非视频广告不回调) +- (void) onInterActionVideoReady{ + +} + +/////视频播放完成(非视频广告不回调) +- (void) onInterActionVideoComplete{ + +} + + +@end diff --git a/ios/Classes/mysdk/MYActiveAdData.h b/ios/Classes/mysdk/MYActiveAdData.h new file mode 100644 index 0000000..c1a6b54 --- /dev/null +++ b/ios/Classes/mysdk/MYActiveAdData.h @@ -0,0 +1,36 @@ +// +// MYActiveAdData.h +// mySDK +// +// Created by 凌锋晨 on 2022/3/24. +// + +#import "MYBaseAdData.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface MYActiveAdData : MYBaseAdData +/* + 必填 + 用户的ID,请确保渠道用户id的唯一性 +*/ +@property (nonatomic, copy) NSString *uid; +/* + 必填 + 用户昵称,如果没有昵称,可以用uid代替 +*/ +@property (nonatomic, copy) NSString *nick; +/* + 必填 + 用户性别,1:男;2:女;0:其他未知 +*/ +@property (nonatomic, assign) int sex; +/* + 选填 + 用户头像,如果没有用户头像,可传入渠道默认的头像地址 +*/ +@property (nonatomic, copy) NSString *avatar; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/mysdk/MYAdCenter.h b/ios/Classes/mysdk/MYAdCenter.h new file mode 100644 index 0000000..5b0574c --- /dev/null +++ b/ios/Classes/mysdk/MYAdCenter.h @@ -0,0 +1,192 @@ +// +// MYAdCenter.h +// mySDK +// +// Created by 凌锋晨 on 2021/9/10. +// + +#import +#import +#import "MYSplashAdData.h" +#import "MYInterActionAdData.h" +#import "MYBannerAdData.h" +#import "MYNativeAdData.h" +#import "MYRewardVideoAdData.h" +#import "MYDrawNativeVideoAdData.h" +#import "MYUnifiedAdData.h" +#import "MYContentStyleAdData.h" +#import "MYSaData.h" +#import "MYActiveAdData.h" +#import +//#import "MYNewInterActionAdData.h" +#import "MYNewsAdData.h" +NS_ASSUME_NONNULL_BEGIN + +@interface MYAdCenter : NSObject + + + +#pragma mark 开屏广告 +/***************开屏广告调用方法*******************/ +/// 开屏广告调用 +/// @param data 开屏广告Data +-(void) my_showSplashAd:(MYSplashAdData *)data; +/// 关闭开屏广告 +-(void) my_closeSplashAd; + + + + + + + +#pragma mark 插屏广告 +/***************插屏广告调用方法*******************/ +/// 插屏广告调用 +-(void) my_showInterActionAd:(MYInterActionAdData *)data; + + + + +//#pragma mark 新插屏广告(已经合并到插屏广告中,按照插屏广告接入即可) +///***************新插屏广告调用方法*******************/ +///// 新插屏广告调用 +//-(void) my_showNewInterActionAd:(MYNewInterActionAdData *)data; + + + +#pragma mark banner广告 +/***************banner广告调用方法*******************/ +-(void) my_showBannerAd:(MYBannerAdData *)data; +//移除banner广告 +-(void)removeBannerAd; + + + + +#pragma mark 信息流广告广告 +/***************信息流广告广告调用方法*******************/ +/// 信息流广告广告调用 +-(void) my_showNativeAd:(MYNativeAdData *)data; +//获取广告cell高度 +- (CGFloat)my_heightForNativeAd:(id)adData; +//获取cell +- (UITableViewCell *)my_tableView:(UITableView *)tableView cellForForNativeAd:(id)adData IndexPath:(NSIndexPath *)indexPath; +//获取UICollectionViewCell +- (UICollectionViewCell *)my_collectionView:(UICollectionView *)collectionView cellForForNativeAd:(id)adData IndexPath:(NSIndexPath *)indexPath; +-(CGSize) my_collectionView:(UICollectionView *)acollectionView AndData:(id)data; + + + +#pragma mark 激励视频广告 +/***************激励视频广告调用方法*******************/ +/// 激励视频广告调用,返回值为订单号 +-(NSString *) my_showRewardVideoAd:(MYRewardVideoAdData *)data; +/// 显示激励视频广告 +-(void) showRewardVideoAd; + + + + + + + + +#pragma mark draw竖版视频信息流广告 +/***************draw竖版视频信息流广告调用方法*******************/ +/// draw竖版视频信息流广告调用 +-(void) my_showDrawNativeVideoAd:(MYDrawNativeVideoAdData *)data; +/// draw竖版视频信息流广告 获取广告UITableViewCell +/// @param tableView 显示的tableview +/// @param adData 广告数据 +/// @param indexPath table的indexPath +/// @return UITableViewCell +- (UITableViewCell *)my_tableView:(UITableView *)tableView cellForForDrawVideoAd:(id)adData IndexPath:(NSIndexPath *)indexPath; +/// draw竖版视频信息流广告 获取广告UICollectionViewCell +/// @param collectionView 显示的UICollectionView +/// @param adData 广告数据 +/// @param indexPath table的indexPath +/// @return UICollectionViewCell +- (UICollectionViewCell *)my_collectionView:(UICollectionView *)collectionView cellForForDrawVideoAd:(id)adData IndexPath:(NSIndexPath *)indexPath; + +//**************仅支持部分广告源,调用之前请先和技术确认是否支持************************ +//暂停视频,调用 pauseAd 后,需要被暂停的视频广告对象,不会再自动播放,需要调用 play 才能恢复播放。 +- (void)pauseAd:(id)cell; + +//**************仅支持部分广告源,调用之前请先和技术确认是否支持************************ +//播放视频,视频暂停之后的继续播放。如果视频播放结束了,不能调用此接口重新播放(只能用户手动点重播) +- (void)playAd:(id)cell; + + + + + +#pragma mark 信息流自渲染广告 +/***************信息流自渲染广告调用方法*******************/ +/// 请求信息流自渲染广告数据 +-(void)my_requestUnifiedAd:(MYUnifiedAdData *)data; +///信息流自渲染广告视图注册 +///@param dataObject 数据对象,必传字段 +///@param clickableViews 可点击的视图数组,此数组内的广告元素才可以响应广告对应的点击事件 +///@param customClickableViews 可点击的视图数组,与clickableViews的区别是:在视频广告中当dataObject中的videoConfig的detailPageEnable为YES时,点击后直接进落地页而非视频详情页,除此条件外点击行为与clickableViews保持一致 +- (void)my_registerDataObject:(id)dataObject view:(UIView *)view clickableViews:(NSArray *)clickableViews customClickableViews:(NSArray *)customClickableViews; + + + + + + + + + + +#pragma mark 内容列表样式 +/***************内容列表样式*******************/ +-(void)my_showContentStyleAd:(MYContentStyleAdData *)data; +/** + 播放器外部控制能力,需要联系商务申请 +* 媒体调用,控制当前视频启播或者恢复播放; +*/ +- (void)resumeCurrentPlayer; + +/** + 播放器外部控制能力,需要联系商务申请 +* 媒体调用,控制当前视频暂停播放; 若在首个video起播前调用,视频不启播,若在视频播放过程中调用,视频转变为暂停播放状态。 +*/ +- (void)pauseCurrentPlayer; + +/* + 释放内容列表样式 +*/ +-(void) deallocContentStyleAd; + + + +#pragma mark 资讯模块 +/*资讯模块*/ +-(void)my_loadNewsViewController:(MYNewsAdData*)data; + + + +#pragma mark 互动模块 +/***************互动模块*******************/ +//获取互动模块controller +-(UIViewController *)getActiveViewCOntroller:(MYActiveAdData *)data; +//获取wkwebview +//controller 是getSaWebViewControllerWithData获取的controller +-(WKWebView*)getActiveWebViewWithController:(UIViewController *)controller; + + + + + + + +#pragma mark 任务模块 +/***************任务模块*******************/ +//获取任务模块controller +-(UIViewController *)getSaWebViewControllerWithData:(MYSaData *)data; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/mysdk/MYAdDelegate.h b/ios/Classes/mysdk/MYAdDelegate.h new file mode 100644 index 0000000..2126d12 --- /dev/null +++ b/ios/Classes/mysdk/MYAdDelegate.h @@ -0,0 +1,251 @@ +// +// MYAdDelegate.h +// mySDK +// +// Created by 凌锋晨 on 2020/11/24. +// + +#import +NS_ASSUME_NONNULL_BEGIN + +#pragma mark 开屏广告回调 +@protocol MYSplashAdDelegate + +@optional + +///广告加载失败,msg加载失败说明(如果重新请求广告,注意:只重新请求一次) +- (void) onSplashAdFail:(NSString*)error; + +///广告渲染成功 +- (void) onSplashAdExposure; + +/// 广告被点击 +- (void) onSplashAdClicked; + +/// 广告被跳过 +- (void) onSplashAdClose; + +@end + + + + + + +#pragma mark 插屏广告回调 +@protocol MYInterActionAdDelegate + +@optional + +///广告加载失败,msg加载失败说明(如果重新请求广告,注意:只重新请求一次) +- (void) onInterActionAdFail:(NSString*)error; + +///广告渲染成功 +- (void) onInterActionAdExposure; + +///广告被关闭 +- (void) onInterActionAdDismiss; + +///广告被点击 +- (void) onInterActionAdClicked; + +/////视频准备就绪开始播放(非视频广告不回调) +- (void) onInterActionVideoReady; + +/////视频播放完成(非视频广告不回调) +- (void) onInterActionVideoComplete; + +@end + + + +//#pragma mark 新插屏广告回调 +//@protocol MYNewInterActionAdDelegate +// +//@optional +// +/////广告加载失败,msg加载失败说明(如果重新请求广告,注意:只重新请求一次) +//- (void) onNewInterActionAdFail:(NSString*)error; +// +/////广告渲染成功 +//- (void) onNewInterActionAdExposure; +// +/////广告被关闭 +//- (void) onNewInterActionAdDismiss; +// +/////广告被点击 +//- (void) onNewInterActionAdClicked; +// +//@end + + + +#pragma mark banner广告回调 +@protocol MYBannerAdDelegate + +@optional + +///广告加载失败,msg加载失败说明(如果重新请求广告,注意:只重新请求一次) +- (void) onBannerAdFail:(NSString*)error; + +///广告渲染成功 +- (void) onBannerAdExposure; + +///广告被关闭 +- (void) onBannerAdDismiss; + +///广告被点击 +- (void) onBannerAdClicked; + +///banner 高度(部分返回) +-(void) onBannerHeight:(CGFloat)height; + +@end + + + + + +#pragma mark 信息流广告广告回调 +@protocol MYNativeAdDelegate + +@optional + +///广告加载失败,msg加载失败说明(如果重新请求广告,注意:只重新请求一次) +- (void) onNativeAdFail:(NSString*)error; + +///广告加载成功,刷新数据 +- (void) onNativeAdloadSuccessWithDataArray:(NSMutableArray *)adDataArray; + +///点击不喜欢,关闭广告 +- (void) onNativeAdClickDislike:(id)data; + +///广告渲染成功 +- (void) onNativeAdExposure; + +///广告被关闭 +- (void) onNativeAdDismiss; + +///广告被点击 +- (void) onNativeAdClicked; + +///视频准备就绪开始播放(非视频广告不回调) +- (void) onNativeVideoReady; + +///视频播放完成(非视频广告不回调) +- (void) onNativeVideoComplete; + +@end + + + + + +#pragma mark 激励视频广告回调 +@protocol MYRewardVideoAdDelegate + +@optional +///广告加载失败,msg加载失败说明(如果重新请求广告,注意:只重新请求一次) +- (void) onRewardAdFail:(NSString*)error; + +///视频被点击 +- (void) onRewardAdClicked; + +///视频被关闭 +- (void) onRewardAdClose; + +///视频广告曝光 +- (void) onRewardAdExposure; + +///视频广告加载完成,此时播放视频不卡顿 +- (void) onRewardVideoCached; + +///激励视频触发激励(观看视频大于一定时长或者视频播放完毕) +- (void) onRewardVerify; + +@end + + +#pragma mark draw竖版视频信息流广告回调 +@protocol MYDrawNativeVideoAdDelegate + +@optional + +///广告加载失败,msg加载失败说明(如果重新请求广告,注意:只重新请求一次) +- (void) onDrawNativeAdFail:(NSString*)error; + +///视频被点击 +- (void) onDrawNativeAdClicked; + +/// 广告曝光回调 +- (void) onDrawNativeRenderSuccess; + +///广告加载成功,刷新数据 +- (void) onDrawNativeAdloadSuccessWithDataArray:(NSMutableArray *)adDataArray; +@end + + +#pragma mark UnifiedNativeAd +@protocol MYUnifiedNativeAdDelegate +@optional +//返回广告数据回调 unifiedNativeAdDataObjects数组中的元素类型为GDTUnifiedNativeAdDataObject +- (void)unifiedNativeAdLoaded:(NSArray * _Nullable)unifiedNativeAdDataObjects :(NSError * _Nullable)error; +//广告点击回调 +- (void)unifiedNativeAdClick; +//广告展示回调 +- (void)unifiedNativeAdExposure; +@end + + + +#pragma mark 内容广告回调 +@protocol MYContentStyleAdDelegate +@optional +/** +* 请求失败 +*/ +- (void)onContentStyleAd_loadFail; +/** + * 视频开始播放 + * @param videoId 视频Id + */ +- (void)onContentStyleAd_videoDidStartPlay:(NSString *)videoId; +/** +* 视频暂停播放 +* @param videoId 视频Id +*/ +- (void)onContentStyleAd_videoDidPause:(NSString *)videoId; +/** +* 视频恢复播放 +* @param videoId 视频Id +*/ +- (void)onContentStyleAd_videoDidResume:(NSString *)videoId; +/** +* 视频停止播放 +* @param videoId 视频Id +* @param finished 是否播放完成 +*/ +- (void)onContentStyleAd_videoDidEndPlay:(NSString *)videoId :(BOOL)finished; +/** +* 视频播放失败 +* @param videoId 视频Id +* @param error 失败原因 +*/ +- (void)onContentStyleAd_videoDidFailedToPlay:(NSString *)videoId :(NSString *)error; +@end + + + + + + + + +#pragma mark MYNewsAdDelegate +@protocol MYNewsAdDelegate +@optional +-(void)onLoadNewsDataFaill:(NSString *)error; +-(void)onLoadNewsDataSuccess:(UIViewController *)NewsController; +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/mysdk/MYBannerAdData.h b/ios/Classes/mysdk/MYBannerAdData.h new file mode 100644 index 0000000..f56f5af --- /dev/null +++ b/ios/Classes/mysdk/MYBannerAdData.h @@ -0,0 +1,30 @@ +// +// MYBannerAdData.h +// mySDK +// +// Created by 凌锋晨 on 2021/9/10. +// + +#import "MYBaseAdData.h" + +NS_ASSUME_NONNULL_BEGIN +@interface MYBannerAdData : MYBaseAdData + +@property (nonatomic, weak) id bannerAdDelegate; + + +/* + bannerAd的frame + 如果没有superView,banner广告加载在RootViewController.view上 + 有superView,banner广告加载在superview上 +*/ +@property (nonatomic, assign) CGRect bannerFrame; + +/* + banner广告的加载在自定义superView上,不设置则加载在RootViewController.view上 +*/ +@property (nonatomic, weak, nullable) UIView *bannerSuperView; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/mysdk/MYBaseAdData.h b/ios/Classes/mysdk/MYBaseAdData.h new file mode 100644 index 0000000..3bc2dc1 --- /dev/null +++ b/ios/Classes/mysdk/MYBaseAdData.h @@ -0,0 +1,49 @@ +// +// MYBaseAdData.h +// mySDK +// +// Created by 凌锋晨 on 2021/9/10. +// + +#import +#import "MYAdDelegate.h" +#import +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, MYAdShowDirection) { + MYAdShowDirection_Vertical = 0, //竖屏 + MYAdShowDirection_Horizontal, +}; + +@interface MYBaseAdData : NSObject +/* + 广告位ID 必传 + 后台-广告位管理里面对应的id +*/ +@property (nonatomic, copy) NSString *positionID; + + + +/* + rootViewController (除了信息流自渲染广告不需要传,其余的广告类型都需要传) + 用来处理广告跳转或者显示,请确保传入的rootViewController不能为空且没有present其他的控制器,否则会出现presentedViewController已经存在而导致present失败。 +*/ +@property (nonatomic, weak) UIViewController *rootViewController; + +/* + 渠道号 + 后台-渠道号管理里面对应的渠道号 + 与渠道版本号对应,且配套使用,可控制是否显示广告 +*/ +@property (nonatomic, copy ,nullable) NSString *channelNum; + +/* + 版本号 + 后台-渠道号管理里面对应的版本号 + 与渠道号对应,且配套使用,可控制是否显示广告 +*/ +@property (nonatomic, copy ,nullable) NSString *channelVersion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/mysdk/MYContentStyleAdData.h b/ios/Classes/mysdk/MYContentStyleAdData.h new file mode 100644 index 0000000..4ac806b --- /dev/null +++ b/ios/Classes/mysdk/MYContentStyleAdData.h @@ -0,0 +1,20 @@ +// +// MYContentStyleAdData.h +// mySDK +// +// Created by 凌锋晨 on 2021/9/10. +// + +#import "MYBaseAdData.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface MYContentStyleAdData : MYBaseAdData +@property (nonatomic, weak) id contentStyleAdDelegate; +/* + 内容样式的frame +*/ +@property (nonatomic, assign) CGRect contentStyleViewFrame; +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/mysdk/MYDrawNativeVideoAdData.h b/ios/Classes/mysdk/MYDrawNativeVideoAdData.h new file mode 100644 index 0000000..62e5e0b --- /dev/null +++ b/ios/Classes/mysdk/MYDrawNativeVideoAdData.h @@ -0,0 +1,33 @@ +// +// MYDrawNativeVideoAdData.h +// mySDK +// +// Created by 凌锋晨 on 2021/9/10. +// + +#import "MYBaseAdData.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface MYDrawNativeVideoAdData : MYBaseAdData + + + +@property (nonatomic, weak) id drawNativeVideoAdDelegate; + +//请求广告数量,<=0 时,取值为3 +@property (nonatomic, assign) int loadDrawAdCount; + + + +/* + 此属性只用于DrawAd显示一条时用。 +*/ +@property (nonatomic, weak,nullable) UIView *drawAdContainerView; + +//adSize不赋值,广告显示页面大小,adSize赋值,就显示adSize的大小 +@property (nonatomic, assign) CGRect adFrame; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/mysdk/MYInterActionAdData.h b/ios/Classes/mysdk/MYInterActionAdData.h new file mode 100644 index 0000000..34474ab --- /dev/null +++ b/ios/Classes/mysdk/MYInterActionAdData.h @@ -0,0 +1,18 @@ +// +// MYInterActionAdData.h +// mySDK +// +// Created by 凌锋晨 on 2021/9/10. +// + +#import "MYBaseAdData.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface MYInterActionAdData : MYBaseAdData + +@property (nonatomic, weak) id interActionAdDelegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/mysdk/MYNativeAdData.h b/ios/Classes/mysdk/MYNativeAdData.h new file mode 100644 index 0000000..c3c9825 --- /dev/null +++ b/ios/Classes/mysdk/MYNativeAdData.h @@ -0,0 +1,26 @@ +// +// MYNativeAdData.h +// mySDK +// +// Created by 凌锋晨 on 2021/9/10. +// + +#import "MYBaseAdData.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface MYNativeAdData : MYBaseAdData + + +@property (nonatomic, weak) id nativeAdDelegate; + +//请求广告数量 默认为3条 +@property (nonatomic, assign) int nativeLoadAdCount; + +/* + 主要控制广告view 在cell 上的frame,广告cell的高度通过接口获得,这边设置无效 +*/ +@property (nonatomic, assign) CGRect nativeAdFrame; +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/mysdk/MYNewsAdData.h b/ios/Classes/mysdk/MYNewsAdData.h new file mode 100644 index 0000000..0ad8bf5 --- /dev/null +++ b/ios/Classes/mysdk/MYNewsAdData.h @@ -0,0 +1,18 @@ +// +// MYNewsAdData.h +// mySDK +// +// Created by lfc on 2022/6/1. +// + +#import "MYBaseAdData.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface MYNewsAdData : MYBaseAdData + +@property (nonatomic, weak) id newsAdDelegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/mysdk/MYRewardVideoAdData.h b/ios/Classes/mysdk/MYRewardVideoAdData.h new file mode 100644 index 0000000..bc9a1d8 --- /dev/null +++ b/ios/Classes/mysdk/MYRewardVideoAdData.h @@ -0,0 +1,38 @@ +// +// MYRewardVideoAdData.h +// mySDK +// +// Created by 凌锋晨 on 2021/9/10. +// + +#import "MYBaseAdData.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface MYRewardVideoAdData : MYBaseAdData + +@property (nonatomic, weak) id rewardVideoAdDelegate; + +/* + 横屏还是竖屏广告 +*/ +@property (nonatomic, assign) MYAdShowDirection showDirection; + + + +/* + 接入方的用户唯一标识符 +*/ +@property (nonatomic, copy) NSString *userId; + + + +/* + 接入方需要传递的额外信息 +*/ +@property (nonatomic, copy) NSString *extraData; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/mysdk/MYSDKConfig.h b/ios/Classes/mysdk/MYSDKConfig.h new file mode 100644 index 0000000..920e86e --- /dev/null +++ b/ios/Classes/mysdk/MYSDKConfig.h @@ -0,0 +1,36 @@ +// +// MYSDKConfig.h +// mySDK +// +// Created by 凌锋晨 on 2020/11/25. +// + +#import +#import +NS_ASSUME_NONNULL_BEGIN + +typedef void(^MYConfigBlock)(BOOL success); + +@interface MYSDKConfig : NSObject + ++(instancetype)getDefaultInstance; + +-(void)setAppID:(NSString *)appId callback:(MYConfigBlock)block; + +-(void)myShowLog:(BOOL)showLog; + +//[废弃] +///* +//是否为全球版sdk +//YES:全球版sdk(默认为yes,全球版sdk) +//NO:国内版sdk +//*/ +//@property (nonatomic, assign) BOOL isGlobalSdk; + +//个性化推荐开关:关闭后,看到的广告数量不变,相关度将降低。 +// 是否允许开启广告的个性化推荐(NO-关闭,YES-开启)。不设置的话则默认为YES(允许个性化推荐)。 +-(void)setEnablePersonalRecommend:(BOOL)enable; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/mysdk/MYSaData.h b/ios/Classes/mysdk/MYSaData.h new file mode 100644 index 0000000..75dbcf1 --- /dev/null +++ b/ios/Classes/mysdk/MYSaData.h @@ -0,0 +1,45 @@ +// +// MYSaData.h +// LFCAdSdk +// +// Created by 凌锋晨 on 2022/1/25. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, showType) { + showType_push, + showType_present, +}; + +@interface MYSaData : NSObject + +//必填,用户id +@property (nonatomic, strong) NSString *thirdUserId; +//必填,模块id +@property (nonatomic, strong) NSString *moduleGroupId; +//必填,appid +@property (nonatomic, strong) NSString *appId; + +//必填 弹出界面方式 +@property (nonatomic, assign) showType aShowType; + + +//以下属性如果模块中有游戏模块的,则必填;没有游戏模块的,则可以不填 +/* + 用户昵称,如果没有昵称,可以用uid代替 +*/ +@property (nonatomic, copy) NSString *nick; +/* + 用户性别,1:男;2:女;0:其他未知 +*/ +@property (nonatomic, assign) int sex; +/* + 用户头像,如果没有用户头像,可传入空字符串 +*/ +@property (nonatomic, copy) NSString *avatar; +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/mysdk/MYSplashAdData.h b/ios/Classes/mysdk/MYSplashAdData.h new file mode 100644 index 0000000..8cdd518 --- /dev/null +++ b/ios/Classes/mysdk/MYSplashAdData.h @@ -0,0 +1,51 @@ +// +// MYSplashAdData.h +// mySDK +// +// Created by 凌锋晨 on 2021/9/10. +// + +#import "MYBaseAdData.h" + + +typedef NS_ENUM(NSInteger, MYSplashButtonType) { + MYSplashButtonType_FullScreen = 1, // The whole area of splash view will respond to click event + MYSplashButtonType_DownloadBar = 2 // The area of download bar in splash view will respond to click event +}; + +NS_ASSUME_NONNULL_BEGIN +@interface MYSplashAdData : MYBaseAdData + + +/* + splashDelegate,开屏广告回调协议 +*/ +@property (nonatomic, weak) id splashDelegate; + +/* + 开屏广告超时时间,默认为3s,当设置时间小于3秒时,使用默认值3秒 +*/ +@property (nonatomic, assign) NSTimeInterval timeoutInterval; + +/* + 是否是V+广告,默认为NO +*/ +@property (nonatomic, assign) BOOL isSplashVideoAd; + + +/* + bottomView 为开屏广告底部自定义界面 + 注意点: + 1:此处属性为weak,需要app自己持有bottomview(不能是临时变量,可以设置为属性) + 2: 需要设置bottomview的宽,高,bottomView.frame.origin.x 和 bottomView.frame.origin.y,具体参考demo +*/ +@property (nonatomic, weak,nullable) UIView *bottomView; + +/* + 开屏广告点击区域控制 +*/ +@property (nonatomic, assign) MYSplashButtonType splashButtonType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/mysdk/MYUnifiedAdData.h b/ios/Classes/mysdk/MYUnifiedAdData.h new file mode 100644 index 0000000..f2cfd4e --- /dev/null +++ b/ios/Classes/mysdk/MYUnifiedAdData.h @@ -0,0 +1,25 @@ +// +// MYUnifiedAdData.h +// mySDK +// +// Created by 凌锋晨 on 2021/9/10. +// + +#import "MYBaseAdData.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface MYUnifiedAdData : MYBaseAdData + +@property (nonatomic, weak) id unifiedNativeAdDelegate; + + + +/* + 加载广告的数量 +*/ +@property (nonatomic, assign) NSInteger loadAdCount; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/nativead/QBNativeAd.h b/ios/Classes/nativead/QBNativeAd.h new file mode 100644 index 0000000..7c48b18 --- /dev/null +++ b/ios/Classes/nativead/QBNativeAd.h @@ -0,0 +1,27 @@ +// +// QBFeedAd.h +// Pods-Runner +// +// Created by gstory on 2023/2/10. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN +@interface QBNativeAdFactory : NSObject + +- (instancetype)initWithMessenger:(NSObject*)messager; + +@end + +@interface QBNativeAd : NSObject +- (instancetype)initWithWithFrame:(CGRect)frame + viewIdentifier:(int64_t)viewId + arguments:(id _Nullable)args + binaryMessenger:(NSObject*)messenger; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/nativead/QBNativeAd.m b/ios/Classes/nativead/QBNativeAd.m new file mode 100644 index 0000000..1ef83b9 --- /dev/null +++ b/ios/Classes/nativead/QBNativeAd.m @@ -0,0 +1,145 @@ +// +// QBFeedAd.m +// Pods-Runner +// +// Created by gstory on 2023/2/10. +// + +#import "QBNativeAd.h" +#import "../mysdk/MYAdCenter.h" +#import "../utils/QBUIViewController+getCurrentVC.h" + +@implementation QBNativeAdFactory{ + NSObject*_messenger; +} + +- (instancetype)initWithMessenger:(NSObject *)messager{ + self = [super init]; + if (self) { + _messenger = messager; + } + return self; +} + +-(NSObject *)createArgsCodec{ + return [FlutterStandardMessageCodec sharedInstance]; +} + +-(NSObject *)createWithFrame:(CGRect)frame viewIdentifier:(int64_t)viewId arguments:(id)args{ + QBNativeAd * nativead = [[QBNativeAd alloc] initWithWithFrame:frame viewIdentifier:viewId arguments:args binaryMessenger:_messenger]; + return nativead; + +} + +@end + + +@interface QBNativeAd() + +@property (nonatomic, strong) MYAdCenter *adCenter; +@property(nonatomic,strong) UIView *container; +@property(nonatomic,assign) CGRect frame; +@property(nonatomic,assign) NSInteger viewId; +@property(nonatomic,strong) FlutterMethodChannel *channel; +@property(nonatomic,strong) NSString *codeId; +@property(nonatomic,assign) double width; +@property(nonatomic,assign) double height; +@end + +@implementation QBNativeAd + +- (instancetype)initWithWithFrame:(CGRect)frame viewIdentifier:(int64_t)viewId arguments:(id)args binaryMessenger:(NSObject *)messenger{ + if ([super init]) { + NSDictionary *dic = args; + self.frame = frame; + self.viewId = viewId; + self.codeId = dic[@"iosId"]; + NSNumber *viewWidth = dic[@"width"]; + NSNumber *viewHeight = dic[@"height"]; + self.width = [viewWidth doubleValue]; + self.height = [viewHeight doubleValue]; + NSString* channelName = [NSString stringWithFormat:@"com.gstory.quakerbirdad/NativeAdView_%lld", viewId]; + self.channel = [FlutterMethodChannel methodChannelWithName:channelName binaryMessenger:messenger]; + self.container = [[UIView alloc] initWithFrame:CGRectMake(0,0,self.width,self.height)]; + [self loadFeedAd]; + } + return self; +} + +- (UIView*)view{ + return self.container; +} + +-(void)loadFeedAd{ + self.adCenter = [[MYAdCenter alloc] init] ; + MYNativeAdData *data = [MYNativeAdData alloc]; + data.positionID = self.codeId; + data.rootViewController = [UIViewController jsd_getCurrentViewController]; + data.nativeAdDelegate = self; + data.nativeAdFrame = CGRectMake(0, 0, self.width, self.height); + data.nativeLoadAdCount = 1; + [self.adCenter my_showNativeAd:data]; +} + +#pragma 回调 +///广告加载失败,msg加载失败说明(如果重新请求广告,注意:只重新请求一次) +- (void) onNativeAdFail:(NSString*)error{ + NSLog(@"信息流广告加载失败%@",error); + NSDictionary *dictionary = @{@"msg":error.description}; + [_channel invokeMethod:@"onError" arguments:dictionary result:nil]; +} + +///广告加载成功,刷新数据 +- (void) onNativeAdloadSuccessWithDataArray:(NSMutableArray *)adDataArray{ + NSLog(@"信息流广告加载成功"); + if(adDataArray.count > 0){ + NSArray *subviews = self.container.subviews; + if(subviews) + { + for (UIView *view in subviews) { + [view removeFromSuperview]; + } + } + UIView *view = [adDataArray firstObject]; + //刷新广告容器的宽高,使之与广告相匹配 + self.container.frame = CGRectMake(self.container.frame.origin.x, self.container.frame.origin.y, self.view.frame.size.width, view.frame.size.height); + [self.container addSubview:view]; + NSDictionary *dictionary = @{@"width":@(self.view.frame.size.width),@"height":@(view.frame.size.height)}; + [_channel invokeMethod:@"onShow" arguments:dictionary result:nil]; + } +} + +///点击不喜欢,关闭广告 +- (void) onNativeAdClickDislike:(id)data{ + NSLog(@"信息流广告点击不喜欢,关闭广告"); +} + +///广告渲染成功 +- (void) onNativeAdExposure{ + NSLog(@"信息流广告渲染成功"); +} + +///广告被关闭 +- (void) onNativeAdDismiss{ + NSLog(@"信息流广告被关闭"); + [_channel invokeMethod:@"onDismiss" arguments:nil result:nil]; +} + +///广告被点击 +- (void) onNativeAdClicked{ + NSLog(@"信息流广告被点击"); + [_channel invokeMethod:@"onClick" arguments:nil result:nil]; +} + +///视频准备就绪开始播放(非视频广告不回调) +- (void) onNativeVideoReady{ + NSLog(@"信息流广告视频准备就绪开始播放(非视频广告不回调"); +} + +///视频播放完成(非视频广告不回调) +- (void) onNativeVideoComplete{ + NSLog(@"信息流广告视频播放完成(非视频广告不回调)"); +} + + +@end diff --git a/ios/Classes/rewardad/QBRewardAd.h b/ios/Classes/rewardad/QBRewardAd.h new file mode 100644 index 0000000..9a79a75 --- /dev/null +++ b/ios/Classes/rewardad/QBRewardAd.h @@ -0,0 +1,17 @@ +// +// QBRewardAd.h +// quakerbirdad +// +// Created by gstory on 2023/2/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface QBRewardAd : NSObject ++ (instancetype)sharedInstance; +- (void)loadAd:(NSDictionary *)arguments; +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/rewardad/QBRewardAd.m b/ios/Classes/rewardad/QBRewardAd.m new file mode 100644 index 0000000..7c5944c --- /dev/null +++ b/ios/Classes/rewardad/QBRewardAd.m @@ -0,0 +1,84 @@ +// +// QBRewardAd.m +// quakerbirdad +// +// Created by gstory on 2023/2/9. +// + +#import "QBRewardAd.h" +#import "../mysdk/MYRewardVideoAdData.h" +#import "../utils/QBUIViewController+getCurrentVC.h" +#import "../mysdk/MYAdCenter.h" +#import "../event/QBAdEvent.h" + +@interface QBRewardAd() +@property(nonatomic,strong) MYAdCenter *adCenter; +@property(nonatomic,strong) NSString *codeId; +@end + +@implementation QBRewardAd ++ (instancetype)sharedInstance{ + static QBRewardAd *myInstance = nil; + if(myInstance == nil){ + myInstance = [[QBRewardAd alloc]init]; + } + return myInstance; +} + +//加载激励广告 +- (void)loadAd:(NSDictionary *)arguments{ + self.codeId = arguments[@"iosId"]; + self.adCenter = [[MYAdCenter alloc] init] ; + MYRewardVideoAdData *data = [[MYRewardVideoAdData alloc] init]; + data.positionID = self.codeId; + data.rootViewController = [UIViewController jsd_getCurrentViewController]; + data.rewardVideoAdDelegate = self; + data.showDirection = MYAdShowDirection_Vertical; + [self.adCenter my_showRewardVideoAd:data]; +} + +#pragma mark - 广告请求delegate + +///广告加载失败,msg加载失败说明(如果重新请求广告,注意:只重新请求一次) +- (void) onRewardAdFail:(NSString*)error{ + NSLog(@"激励广告加载失败%@",error); + NSDictionary *dictionary = @{@"adType":@"rewardAd",@"onAdMethod":@"onError",@"msg":error.description}; + [[QBAdEvent sharedInstance] sentEvent:dictionary]; +} + +///视频被点击 +- (void) onRewardAdClicked{ + NSLog(@"激励广告点击"); + NSDictionary *dictionary = @{@"adType":@"rewardAd",@"onAdMethod":@"onClick"}; + [[QBAdEvent sharedInstance] sentEvent:dictionary]; +} + +///视频被关闭 +- (void) onRewardAdClose{ + NSLog(@"激励广告关闭"); + NSDictionary *dictionary = @{@"adType":@"rewardAd",@"onAdMethod":@"onDismiss"}; + [[QBAdEvent sharedInstance] sentEvent:dictionary]; +} + +///视频广告曝光 +- (void) onRewardAdExposure{ + NSLog(@"激励广告曝光"); +} + +///视频广告加载完成,此时播放视频不卡顿 +- (void) onRewardVideoCached{ + NSLog(@"激励广告加载完成,开始播放"); + NSDictionary *dictionary = @{@"adType":@"rewardAd",@"onAdMethod":@"onShow"}; + [[QBAdEvent sharedInstance] sentEvent:dictionary]; + [self.adCenter showRewardVideoAd]; +} + +///激励视频触发激励(观看视频大于一定时长或者视频播放完毕) +- (void) onRewardVerify{ + NSLog(@"激励广告触发奖励"); + NSDictionary *dictionary = @{@"adType":@"rewardAd",@"onAdMethod":@"onReward",@"type":@"0"}; + [[QBAdEvent sharedInstance] sentEvent:dictionary]; +} + + +@end diff --git a/ios/Classes/splashad/QBSplashAd.h b/ios/Classes/splashad/QBSplashAd.h new file mode 100644 index 0000000..4d3be02 --- /dev/null +++ b/ios/Classes/splashad/QBSplashAd.h @@ -0,0 +1,27 @@ +// +// QBSplashAd.h +// quakerbirdad +// +// Created by gstory on 2023/2/9. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN +@interface QBSplashAdFactory : NSObject + +- (instancetype)initWithMessenger:(NSObject*)messager; + +@end + +@interface QBSplashAd : NSObject +- (instancetype)initWithWithFrame:(CGRect)frame + viewIdentifier:(int64_t)viewId + arguments:(id _Nullable)args + binaryMessenger:(NSObject*)messenger; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/splashad/QBSplashAd.m b/ios/Classes/splashad/QBSplashAd.m new file mode 100644 index 0000000..88748eb --- /dev/null +++ b/ios/Classes/splashad/QBSplashAd.m @@ -0,0 +1,106 @@ +// +// QBSplashAd.m +// quakerbirdad +// +// Created by gstory on 2023/2/9. +// + +#import "QBSplashAd.h" +#import "../mysdk/MYAdCenter.h" +#import "../utils/QBUIViewController+getCurrentVC.h" + +@implementation QBSplashAdFactory{ + NSObject*_messenger; +} + +- (instancetype)initWithMessenger:(NSObject *)messager{ + self = [super init]; + if (self) { + _messenger = messager; + } + return self; +} + +-(NSObject *)createArgsCodec{ + return [FlutterStandardMessageCodec sharedInstance]; +} + +-(NSObject *)createWithFrame:(CGRect)frame viewIdentifier:(int64_t)viewId arguments:(id)args{ + QBSplashAd * splashAd = [[QBSplashAd alloc] initWithWithFrame:frame viewIdentifier:viewId arguments:args binaryMessenger:_messenger]; + + return splashAd; + +} + +@end + + +@interface QBSplashAd() + +@property (nonatomic, strong) MYAdCenter *adCenter; +@property(nonatomic,strong) UIView *container; +@property(nonatomic,assign) CGRect frame; +@property(nonatomic,assign) NSInteger viewId; +@property(nonatomic,strong) FlutterMethodChannel *channel; +@property(nonatomic,strong) NSString *codeId; +@end + +@implementation QBSplashAd + +- (instancetype)initWithWithFrame:(CGRect)frame viewIdentifier:(int64_t)viewId arguments:(id)args binaryMessenger:(NSObject *)messenger{ + if ([super init]) { + NSDictionary *dic = args; + self.frame = frame; + self.viewId = viewId; + self.codeId = dic[@"iosId"]; + NSString* channelName = [NSString stringWithFormat:@"com.gstory.quakerbirdad/SplashAdView_%lld", viewId]; + self.channel = [FlutterMethodChannel methodChannelWithName:channelName binaryMessenger:messenger]; + [self loadSplashAd]; + } + return self; +} + +- (UIView*)view{ + return self.container; +} + +-(void)loadSplashAd{ + self.adCenter = [[MYAdCenter alloc] init] ; + MYSplashAdData *data = [MYSplashAdData alloc]; + data.positionID = self.codeId; + data.rootViewController = [UIViewController jsd_getCurrentViewController]; + data.splashDelegate = self; + // data.bottomView = bottomView; + [self.adCenter my_showSplashAd:data]; +} + +#pragma mark - 广告请求delegate + +///广告加载失败,msg加载失败说明(如果重新请求广告,注意:只重新请求一次) +- (void) onSplashAdFail:(NSString*)error{ + NSLog(@"开屏广告加载失败%@",error); + NSDictionary *dictionary = @{@"msg":error.description}; + [_channel invokeMethod:@"onError" arguments:dictionary result:nil]; +} + +///广告渲染成功 +- (void) onSplashAdExposure{ + NSLog(@"开屏广告渲染成功"); + [_channel invokeMethod:@"onShow" arguments:nil result:nil]; +} + +/// 广告被点击 +- (void) onSplashAdClicked{ + NSLog(@"开屏广告点击"); + [_channel invokeMethod:@"onClick" arguments:nil result:nil]; +} + +/// 广告被跳过 +- (void) onSplashAdClose{ + NSLog(@"开屏广告关闭"); + [_channel invokeMethod:@"onDismiss" arguments:nil result:nil]; + [self.adCenter my_closeSplashAd]; + self.adCenter = nil; +} + +@end diff --git a/ios/Classes/utils/QBLogUtil.h b/ios/Classes/utils/QBLogUtil.h new file mode 100644 index 0000000..a4255ae --- /dev/null +++ b/ios/Classes/utils/QBLogUtil.h @@ -0,0 +1,23 @@ +// +// QBLogUtil.h +// Pods-Runner +// +// Created by gstory on 2023/2/9. +// + +#ifdef DEBUG +#define GLog(...) NSLog(@"%s\n %@\n\n", __func__, [NSString stringWithFormat:__VA_ARGS__]) +#else +#define GLog(...) +#endif + +NS_ASSUME_NONNULL_BEGIN + +@interface QBLogUtil : NSObject ++ (instancetype)sharedInstance; +- (void)debug:(BOOL)isDebug; +- (void)print:(NSString *)message; +@end + +NS_ASSUME_NONNULL_END + diff --git a/ios/Classes/utils/QBLogUtil.m b/ios/Classes/utils/QBLogUtil.m new file mode 100644 index 0000000..8751a17 --- /dev/null +++ b/ios/Classes/utils/QBLogUtil.m @@ -0,0 +1,37 @@ +// +// QBLogUtil.m +// Pods-Runner +// +// Created by gstory on 2023/2/9. +// + +#import +#import "QBLogUtil.h" + + +@interface QBLogUtil() +@property(nonatomic,assign) BOOL isDebug; +@end + + +@implementation QBLogUtil + ++ (instancetype)sharedInstance{ + static QBLogUtil *myInstance = nil; + if(myInstance == nil){ + myInstance = [[QBLogUtil alloc]init]; + } + return myInstance; +} + +- (void)debug:(BOOL)isDebug{ + _isDebug = isDebug; +} + +- (void)print:(NSString *)message{ + if(_isDebug){ + GLog(@"%@", message); + } +} + +@end diff --git a/ios/Classes/utils/QBUIViewController+getCurrentVC.h b/ios/Classes/utils/QBUIViewController+getCurrentVC.h new file mode 100644 index 0000000..dfe1596 --- /dev/null +++ b/ios/Classes/utils/QBUIViewController+getCurrentVC.h @@ -0,0 +1,26 @@ +// +// QBUIViewController+getCurrentVC.h +// quakerbirdad +// +// Created by gstory on 2023/2/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UIViewController (getCurrentVC) + ++ (UIViewController *)jsd_getCurrentViewController; + ++ (UIViewController *)jsd_getRootViewController; + ++ (UIViewController *)getCurrentVCWithCurrentView:(UIView *)currentView; + ++(UITabBarController *)currentTtabarController; + ++(UINavigationController *)currentTabbarSelectedNavigationController; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/utils/QBUIViewController+getCurrentVC.m b/ios/Classes/utils/QBUIViewController+getCurrentVC.m new file mode 100644 index 0000000..f43e0fe --- /dev/null +++ b/ios/Classes/utils/QBUIViewController+getCurrentVC.m @@ -0,0 +1,96 @@ +// +// QBUIViewController+getCurrentVC.m +// quakerbirdad +// +// Created by gstory on 2023/2/9. +// + +#import "QBUIViewController+getCurrentVC.h" + +@implementation UIViewController (getCurrentVC) + + ++ (UIViewController *)jsd_getRootViewController{ + + UIWindow* window = [[[UIApplication sharedApplication] delegate] window]; + //NSAssert(window, @"The window is empty"); + return window.rootViewController; +} + ++ (UIViewController *)jsd_getCurrentViewController{ + + UIViewController* currentViewController = [self jsd_getRootViewController]; + BOOL runLoopFind = YES; + while (runLoopFind) { + if (currentViewController.presentedViewController) { + + currentViewController = currentViewController.presentedViewController; + } else if ([currentViewController isKindOfClass:[UINavigationController class]]) { + + UINavigationController* navigationController = (UINavigationController* )currentViewController; + currentViewController = [navigationController.childViewControllers lastObject]; + + } else if ([currentViewController isKindOfClass:[UITabBarController class]]) { + + UITabBarController* tabBarController = (UITabBarController* )currentViewController; + currentViewController = tabBarController.selectedViewController; + } else { + + NSUInteger childViewControllerCount = currentViewController.childViewControllers.count; + if (childViewControllerCount > 0) { + + currentViewController = currentViewController.childViewControllers.lastObject; + + return currentViewController; + } else { + + return currentViewController; + } + } + + } + return currentViewController; +} + ++ (UIViewController *)getCurrentVCWithCurrentView:(UIView *)currentView +{ + for (UIView *next = currentView ; next ; next = next.superview) { + UIResponder *nextResponder = [next nextResponder]; + if ([nextResponder isKindOfClass:[UIViewController class]]) { + return (UIViewController *)nextResponder; + } + } + return nil; +} + + ++(UITabBarController *)currentTtabarController +{ + UIWindow * window = [[UIApplication sharedApplication] keyWindow]; + UIViewController *tabbarController = window.rootViewController; + if ([tabbarController isKindOfClass:[UITabBarController class]]) { + return (UITabBarController *)tabbarController; + } + return nil; +} + ++(UINavigationController *)currentTabbarSelectedNavigationController +{ + UIWindow * window = [[UIApplication sharedApplication] keyWindow]; + UIViewController *rootVC = window.rootViewController; + if ([rootVC isKindOfClass:[UINavigationController class]]) { + return (UINavigationController *)rootVC; + }else if([rootVC isKindOfClass:[UITabBarController class]]){ + UITabBarController *tabarController = [self currentTtabarController]; + UINavigationController *selectedNV = (UINavigationController *)tabarController.selectedViewController; + if ([selectedNV isKindOfClass:[UINavigationController class]]) { + return selectedNV; + } + } + + return nil; +} + + + +@end diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAd.h b/ios/SDK/KSAdSDK.framework/Headers/KSAd.h new file mode 100644 index 0000000..91ebcf2 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAd.h @@ -0,0 +1,63 @@ +// +// KSAd.h +// KSAdSDK +// +// Created by 徐志军 on 2019/10/30. +// Copyright © 2019 KuaiShou. All rights reserved. +// + +#import + +#import "KSAdInteractionType.h" +#import "KSAdExposureReportParam.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol KSAdProtocol + +@optional +// 单位:分,只有视频资源下载成功后,这个才可能有值 +@property (nonatomic, readonly) NSInteger ecpm; +/** + * @brief 设置竞价价格,单位(分) + * @param ecpm 竞价价格 + */ +- (void)setBidEcpm:(NSInteger)ecpm; +/** + * @brief 设置竞价价格,单位(分) + * @param ecpm 竞价价格 + * @param highestLossEcpm 最大竞价失败方出价 + */ +- (void)setBidEcpm:(NSInteger)ecpm + highestLossEcpm:(NSInteger)highestLossEcpm; +/** + * @brief 广告曝光失败后上报失败原因 + * @param failureCode 曝光失败原因类型 + * @param reportParam 曝光失败原因描述 + * reportParam.winEcpm 胜出者的ecpm报价(单位:分) + * reportParam.adnType 胜出方,见KSAdExposureReportParam.h 中KSAdExposureAdnType定义 + * reportParam.adnName 胜出平台名,见KSAdExposureReportParam.h 中KSAdADNType平台定义 + */ +- (void)reportAdExposureFailed:(KSAdExposureFailureCode)failureCode reportParam:(KSAdExposureReportParam *)reportParam; + +@end + +@interface KSAd : NSObject + +/// ad interaction type, avaliable after ad load +@property (nonatomic, assign, readonly) KSAdInteractionType interactionType; +/// ad material type, avaliable after ad load +@property (nonatomic, assign, readonly) KSAdMaterialType materialType; +/** + server bidding load ad data +*/ +- (void)loadAdDataWithResponse:(NSDictionary *)response; +/** + server bidding load ad data plan 2 + + @param response adx server传回来的response(媒体adx需替换bidEcpm为>0的数值) + */ +- (void)loadAdDataWithResponseV2:(NSDictionary *)response; +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdBiddingAdModel.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdBiddingAdModel.h new file mode 100644 index 0000000..2ace9d6 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdBiddingAdModel.h @@ -0,0 +1,44 @@ +// +// KSAdBiddingAdModel.h +// KSUServerBidding +// +// Created by 李姝谊 on 2021/11/1. +// + +#import +#import "KSAdRewardVideoModel.h" +#if __has_include() +#import +#else +#import "KSAdUserInfo.h" +#endif +#if __has_include() +#import +#else +#import "KSAdDeviceInfoEnum.h" +#endif + +NS_ASSUME_NONNULL_BEGIN + +@interface KSAdBiddingAdV2Model : NSObject + +@property (nonatomic, assign) NSInteger adCount; // 默认为1 +@property (nonatomic, assign) KSAdScreenDirection direction; +@property (nonatomic, assign) NSInteger cpmBidFloor; +@property (nonatomic, copy, nullable) NSString *prevTitle; // 内容标签(广告展示前文章标题) +@property (nonatomic, copy, nullable) NSString *postTitle; // 内容标签(广告展示后文章标题) +@property (nonatomic, copy, nullable) NSString *historyTitle; // 内容标签(用户最近浏览文章标题) +@property (nonatomic, copy, nullable) NSString *channel; // 频道标签 +@property (nonatomic, copy, nullable) NSDictionary *appTag; +@property (nonatomic, strong, nullable) KSAdUserInfo *userInfo; +@property (nonatomic, strong, nullable) KSAdRewardVideoModel *rewardVideoModel; //激励视频数据 + +@end + +@interface KSAdBiddingAdModel : KSAdBiddingAdV2Model + +@property (nonatomic, copy) NSString *posId; // 必设 + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdBiddingTokenManager.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdBiddingTokenManager.h new file mode 100644 index 0000000..b01ecc2 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdBiddingTokenManager.h @@ -0,0 +1,19 @@ +// +// KSAdBiddingTokenManager.h +// KSUServerBidding +// +// Created by 李姝谊 on 2021/10/29. +// + +#import +@class KSAdBiddingAdModel; +@class KSAdBiddingAdV2Model; + +@interface KSAdBiddingTokenManager : NSObject + +/// 服务端竞价V1:返回token json字符串 是请求广告的参数 ++ (NSString *)biddingTokenWithModel:(KSAdBiddingAdModel *)model; +/// 服务端竞价V2:返回token json字符串 是请求广告的参数 ++ (NSString *)biddingTokenWithModelV2:(KSAdBiddingAdV2Model *)model; + +@end diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdDeviceInfoEnum.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdDeviceInfoEnum.h new file mode 100644 index 0000000..b146ea1 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdDeviceInfoEnum.h @@ -0,0 +1,43 @@ +// +// KSAdDeviceInfoEnum.h +// Pods +// +// Created by chun on 2021/9/29. +// + +#ifndef KSAdDeviceInfoEnum_h +#define KSAdDeviceInfoEnum_h + +// 操作系统类型,选填 0: Unknown; 1: Android; 2: iOS +typedef NS_ENUM(NSInteger, KSAdOSType) { + KSAdOSType_Unknown = 0, + KSAdOSType_Android = 1, + KSAdOSType_iOS = 2, +}; + +typedef NS_ENUM(NSUInteger, KSAdScreenDirection) { + KSAdScreenDirectionUnknown, //未知方向 + KSAdScreenDirectionVertical, //竖屏 + KSAdScreenDirectionHorizontal, //横屏 +}; + +// 运营商类型,选填 0: 未知的运营商; 1: 中国移动; 2: 中国电信; 3: 中国联通; 99: 其他运营商 +typedef NS_ENUM(NSUInteger, KSAdCarrierType) { + KSAdCarrierType_Unknown = 0, // 未知 + KSAdCarrierType_ChinaMobile = 1, // 中国移动 + KSAdCarrierType_ChinaUnicom = 2, // 中国联通 + KSAdCarrierType_Telecom = 3, // 中国电信 + KSAdCarrierType_Others = 99, // 其他运营商 +}; + +// 隐私数据获取错误原因 +typedef NS_ENUM(NSUInteger, KSAdPrivateDataErrorCode) { + KSAdPrivateDataNoError = 0, //正常 + KSAdPrivateDataErrorNoPermission = 1, //无权限 + KSAdPrivateDataErrorException = 2, //获取异常 + KSAdPrivateDataErrorFailed = 3, //有权限,获取失败 + KSAdPrivateDataErrorDeviceNotSupport = 4, //设备不支持 + KSAdPrivateDataErrorOthers = 5, //其他错误 +}; + +#endif /* KSAdDeviceInfoEnum_h */ diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdExportManager.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdExportManager.h new file mode 100644 index 0000000..1c8a5cd --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdExportManager.h @@ -0,0 +1,19 @@ +// +// KSAdExportManager.h +// KSAdSDK +// +// Created by 徐志军 on 2019/11/1. +// Copyright © 2019 KuaiShou. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface KSAdExportManager : NSObject + ++ (void)presentLogViewControllerFromViewController:(UIViewController *)viewController; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdExposureReportParam.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdExposureReportParam.h new file mode 100644 index 0000000..688c9f8 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdExposureReportParam.h @@ -0,0 +1,44 @@ +// +// KSAdExposureReportParam.h +// KSUModel +// +// Created by xuzaihu on 2021/7/30. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, KSAdExposureFailureCode) { + KSAdExposureFailureOther = 0, // 其他 + KSAdExposureFailureMediaBasePriceFilter = 1, // 媒体侧底价过滤 + KSAdExposureFailureBidFailed = 2, // 广告竞价失败 + KSAdExposureFailureCacheInvalid = 3, // 缓存失效 + KSAdExposureFailureExposurePriorityReduce = 4, // 曝光优先级降低 +}; + +typedef NS_ENUM(NSUInteger, KSAdExposureAdnType) { + KSAdExposureAdnTypeKuaishou = 1, // 输给快手联盟其他广告 + KSAdExposureAdnTypeOther = 2, // 输给其他ADN + KSAdExposureAdnTypeSelfSale = 3, // 输给自售广告主 +}; + +typedef NSString* KSAdADNName; +//平台定义 +extern KSAdADNName const KSAdADNNameChuanshanjia; +extern KSAdADNName const KSAdADNNameGuangdiantong; +extern KSAdADNName const KSAdADNNameBaidu; +extern KSAdADNName const KSAdADNNameOther; + +@interface KSAdExposureReportParam : NSObject + +// 胜出者的ecpm报价 +@property (nonatomic, assign) NSInteger winEcpm; +// 竞胜平台类型 +@property (nonatomic, assign) KSAdExposureAdnType adnType; +// 竞胜平台名称,adnType=KSAdExposureAdnTypeOther时可以设置 +@property (nonatomic, copy) KSAdADNName adnName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdImage.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdImage.h new file mode 100644 index 0000000..74c639c --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdImage.h @@ -0,0 +1,27 @@ +// +// KSAdImage.h +// KSAdSDK +// +// Created by 徐志军 on 2019/10/14. +// Copyright © 2019 KuaiShou. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface KSAdImage : NSObject +// image address URL +@property (nonatomic, copy) NSString *imageURL; + +@property (nonatomic, strong, nullable) UIImage *image; + +// image width +@property (nonatomic, assign) float width; + +// image height +@property (nonatomic, assign) float height; +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdInteractionType.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdInteractionType.h new file mode 100644 index 0000000..6f60458 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdInteractionType.h @@ -0,0 +1,23 @@ +// +// KSAdInteractionType.h +// Pods +// +// Created by Dylan Sun on 2021/6/15. +// + +typedef NS_ENUM(NSInteger, KSAdInteractionType) { + KSAdInteractionType_Unknown, //unknown type + KSAdInteractionType_App, //open downlaod page in app + KSAdInteractionType_Web, //open webpage in app + KSAdInteractionType_DeepLink, //open deeplink + KSAdInteractionType_AppStore, //open appstore +}; + +typedef NS_ENUM(NSInteger, KSAdMaterialType) { + KSAdMaterialTypeUnkown = 0, // unknown + KSAdMaterialTypeVideo = 1, // video + KSAdMaterialTypeSingle = 2, // single image + KSAdMaterialTypeAtlas = 5, // multiple image +}; + + diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdPermission.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdPermission.h new file mode 100644 index 0000000..c786158 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdPermission.h @@ -0,0 +1,39 @@ +// +// KSAdPermission.h +// KSUPermission +// +// Created by 崔祥龙 on 2021/8/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class KSLocation; + +typedef KSLocation *_Nullable(^LocationBlock)(void); +typedef NSString *_Nullable(^IdfaBlock)(void); +typedef NSString *_Nullable(^IdfvBlock)(void); +typedef NSString *_Nullable(^DeviceIdBlock)(void); + +@interface KSLocation : NSObject + +@property (nonatomic, assign) CGFloat longitude; + +@property (nonatomic, assign) CGFloat latitude; + +@end + +@interface KSAdPermission : NSObject + +@property (nonatomic, copy) LocationBlock locationBlock; + +@property (nonatomic, copy) IdfaBlock idfaBlock; + +@property (nonatomic, copy) IdfvBlock idfvBlock; + +@property (nonatomic, copy) DeviceIdBlock deviceIdBlock; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdPlayableDemoViewController.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdPlayableDemoViewController.h new file mode 100644 index 0000000..15e5d24 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdPlayableDemoViewController.h @@ -0,0 +1,24 @@ +// +// KSAdPlayableDemoViewController.h +// KSAdSDK +// +// Created by zhangchuntao on 2020/11/20. +// + +#import + +#import "KSAdShowDirection.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface KSAdPlayableDemoViewController : UIViewController + +@property (nonatomic, copy) NSString *playableURL; + +@property (nonatomic, copy) NSString *downloadURL; + +@property (nonatomic, assign) KSAdShowDirection showDirection; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdRewardVideoModel.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdRewardVideoModel.h new file mode 100644 index 0000000..2c6a799 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdRewardVideoModel.h @@ -0,0 +1,32 @@ +// +// KSAdRewardVideoModel.h +// KSUServerBidding +// +// Created by 李姝谊 on 2021/11/1. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +// 同KSRewardedVideoModel完全一样 为了组件不循环依赖 写一个不同名但实际功能相同的类 +@interface KSAdRewardVideoModel : NSObject +/** + required. + Third-party game user_id identity. + Mainly used in the reward issuance, it is the callback pass-through parameter from server-to-server. + It is the unique identifier of each user. + In the non-server callback mode, it will also be pass-through when the video is finished playing. + Only the string can be passed in this case, not nil. + */ +@property (nonatomic, copy) NSString *userId; +//optional. reward name. +@property (nonatomic, copy) NSString *name; +//optional. number of rewards. +@property (nonatomic, assign) NSInteger amount; +//optional. serialized string. +@property (nonatomic, copy) NSString *extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdSDK-umbrella.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdSDK-umbrella.h new file mode 100644 index 0000000..1726360 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdSDK-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "KSAdSDK.h" + +FOUNDATION_EXPORT double KSAdSDKVersionNumber; +FOUNDATION_EXPORT const unsigned char KSAdSDKVersionString[]; + diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdSDK.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdSDK.h new file mode 100644 index 0000000..3005611 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdSDK.h @@ -0,0 +1,107 @@ +// +// KSAdSDK.h +// KSAdSDK +// +// Created by 徐志军 on 2019/9/5. +// Copyright © 2019 KuaiShou. All rights reserved. +// + +#import + +#if __has_include() +#import +#endif + +#if __has_include() +#import +#endif + +#if __has_include() +#import +#endif + +#if __has_include() +#import +#endif + +#if __has_include() +#import +#else +#import "KSAdSDKManager.h" +#endif + +#if __has_include() +#import +#else +#import "KSAdExportManager.h" +#endif + +#if __has_include() + #import + #import +#elif __has_include() + #import + #import +#endif + +#if __has_include() + #import + #import +#elif __has_include() + #import + #import +#endif + +#if __has_include() + #import +#elif __has_include() + #import +#endif + + +#if __has_include() + #import +#elif __has_include() + #import +#endif + +#if __has_include() + #import + #import +#elif __has_include() + #import + #import +#endif + +#if __has_include() + #import + #import + #import +#elif __has_include() + #import + #import + #import +#endif + + +#if __has_include() + #import + #import + #import +#elif __has_include() + #import + #import + #import +#endif + +#if __has_include() + #import +#elif __has_include() + #import +#endif + +#if __has_include() + #import +#elif __has_include() + #import +#endif diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdSDKError.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdSDKError.h new file mode 100644 index 0000000..4550c6e --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdSDKError.h @@ -0,0 +1,53 @@ +// +// KSAdSDKError.h +// KSAdSDK +// +// Created by 徐志军 on 2019/8/29. +// Copyright © 2019 KuaiShou. All rights reserved. +// + + +#import + + +typedef NS_ENUM(NSInteger, KSAdErrorCode) { + KSAdErrorCodeNoError = 1, // 成功 + + KSAdErrorCodeNetworkError = 40001, // 网络错误 + KSAdErrorCodeDataParse = 40002, // data数据解析错误 + KSAdErrorCodeDataEmpty = 40003, // data empty + KSAdErrorCodeCacheError = 40004, // 缓存出错 + KSAdErrorCodeImageDownloadError = 40007, // 图片下载失败 + KSAdErrorCodeAdStyleMismatchError = 40008, // 返回的adStyle不是具体场景的adstyle + + KSAdErrorCodeNotVideoAd = 50001, // not a video ad + KSAdErrorCodeParamWrong = 100001, // 参数有误 + KSAdErrorCodeServerError = 100002, // 服务器错误 + KSAdErrorCodeNoPermission = 100003, // 不允许的操作 + KSAdErrorCodeServerUnavailable = 100004, // 服务不可用 + KSAdErrorCodeNoMoreData = 100006, // 拉取内容视频时,没有更多了 + KSAdErrorCodeShareUrl = 100007, // 拉取分享接口,获取shareURL失败 + KSAdErrorCodeNoExistData = 130001, // 热点数据不存在 + + KSAdErrorCodeAppIdUnregister = 310001, // appId 未注册 + KSAdErrorCodeAppIdInvalid = 310002, // appId 无效 + KSAdErrorCodeAppIdBanned = 310003, // appId 已封禁 + KSAdErrorCodePackageNameWrong = 310004, // packageName与注册的不一致; + KSAdErrorCodeSystemOSWrong = 310005, // 操作系统与注册的不一致 + + KSAdErrorCodeSSPAccountInvalid = 320002, // appId 对应的账号无效 + KSAdErrorCodeSSPAccountBanned = 320003, // appId 对应的账号已封禁 + + KSAdErrorCodePosIdUnregister = 330001, // posId 未注册 + KSAdErrorCodePosIdInvalid = 330002, // posId 无效 + KSAdErrorCodePosIdBanned = 330003, // posId 已封禁 + KSAdErrorCodePosIdUnmatched = 330004, // posId 与注册的 appId 不一致 + + KSAdErrorCodeSecurityItemInvalid = 330010, //AppKey, wbIndex, .kss不合法或者与bundleid不匹配 +}; + + +FOUNDATION_EXTERN NSErrorDomain KSADErrorDomain; + + + diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdSDKLogLevelDefine.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdSDKLogLevelDefine.h new file mode 100644 index 0000000..bc1a80c --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdSDKLogLevelDefine.h @@ -0,0 +1,22 @@ +// +// KSAdSDKLogLevelDefine.h +// Pods +// +// Created by zhengjiajun on 2021/8/2. +// + +#ifndef KSAdSDKLogLevelDefine_h +#define KSAdSDKLogLevelDefine_h + +typedef NS_ENUM(NSInteger, KSAdSDKLogLevel) { + KSAdSDKLogLevelAll = 0, + KSAdSDKLogLevelVerbose, // 此类别的日记不会记录到日志文件中 + KSAdSDKLogLevelDebug, + KSAdSDKLogLevelVerify, + KSAdSDKLogLevelInfo, + KSAdSDKLogLevelWarn, + KSAdSDKLogLevelError, + KSAdSDKLogLevelOff, +}; + +#endif /* KSAdSDKLogLevelDefine_h */ diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdSDKManager.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdSDKManager.h new file mode 100644 index 0000000..9f5a472 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdSDKManager.h @@ -0,0 +1,137 @@ +// +// KSAdSDKManager.h +// KSAdSDK +// +// Created by 徐志军 on 2019/8/28. +// Copyright © 2019 KuaiShou. All rights reserved. +// + +#import + +#if __has_include() +#import +#else +#import "KSAdSDKError.h" +#endif + +#if __has_include() +#import +#else +#import "KSAdSDKLogLevelDefine.h" +#endif + +#if __has_include() +#import +#else +#import "KSAdPermission.h" +#endif + +#if __has_include() +#import +#else +#import "KSAdUserInfo.h" +#endif + +#if __has_include() +#import +#else +#import "KSAdBiddingAdModel.h" +#endif + +NS_ASSUME_NONNULL_BEGIN + +// 视频自动播放选项 +typedef NS_ENUM(NSInteger, KSAdFeedVideoAutoPlayType) { + KSAdFeedVideoAutoPlayTypeUnknown = 0, + KSAdFeedVideoAutoPlayTypeAllNet = 1, //有网络(WiFi及流量)自动播放 + KSAdFeedVideoAutoPlayTypeOnlyWifi = 2, //仅Wi-Fi下自动播放 + KSAdFeedVideoAutoPlayTypeNon = 3 //不自动播放 +}; + +@interface KSAdSDKManager : NSObject + +/// SDK 版本号 +@property (nonatomic, readonly, class) NSString *SDKVersion; + +/// Auto play video on Non Wi-Fi environment or not, default is NO +@property (nonatomic, assign, class) BOOL dataFlowAutoStart; +/// Auto play video on all environment, default is Unknown +@property (nonatomic, assign, class) KSAdFeedVideoAutoPlayType feedVideoAutoPlayType; +/** + * @brief start ad sdk + * @param appId ad app id + */ +/// 内容联盟SDK、广告联盟SDK使用 ++ (void)setAppId:(NSString *)appId; +/// 仅使用电商联盟SDK,初始化时使用,appKey,wbIndex 需要联系商务申请 ++ (KSAdErrorCode)startWithAppId:(NSString *)appId appKey:(NSString *)appKey wbIndex:(NSString *)wbIndex; + +// optional ++ (void)setAppName:(NSString *)appName; +// optional ++ (void)setUserInfoBlock:(void(^)(KSAdUserInfo *))userInfoBlock; +// optional ++ (void)setAppTag:(NSString *)appTag; +// optional, enable personalized recommendation, default is YES ++ (void)setEnablePersonalRecommend:(BOOL)enable; +// optional, enable programmatic recommendation, default is YES ++ (void)setEnableProgrammaticRecommend:(BOOL)enable; +/// Configure user info. +/// @param age optional 年龄段 +/// @param gender optional 性别 +/// @param interest optional 兴趣标签 ++ (void)setUserAge:(KSAdUserInfoThirdAgeType)age + gender:(KSAdUserInfoThirdGengerType)gender + interest:(NSString *_Nullable)interest; +/// Configure appInfo content. +/// @param prevTitle optional 内容标签(广告展示前文章标题) +/// @param postTitle optional 内容标签(广告展示后文章标题) +/// @param historyTitle optional 内容标签(用户最近浏览文章标题) +/// @param channel optional 频道标签 ++ (void)setContentPrevTitle:(NSString *_Nullable)prevTitle + postTitle:(NSString *_Nullable)postTitle + historyTitle:(NSString *_Nullable)historyTitle + channel:(NSString *_Nullable)channel; +// optional 媒体底价 ++ (void)setCpmBidFloor:(NSInteger)cpmBidFloor; +/** + Configure development mode. + @param level : default KSAdSDKLogLevelNone + */ +// optional ++ (void)setLoglevel:(KSAdSDKLogLevel)level; + ++ (void)setAutoHideUIRemoteKeyboardWindow:(BOOL)autoHideUIRemoteKeyboardWindow; + +// optional, disable use location status, default is NO ++ (void)setDisableUseLocationStatus:(BOOL)disable; + ++ (void)setLocationBlock:(LocationBlock)locationBlock; + +// optional, disable use phone status, default is NO ++ (void)setDisableUsePhoneStatus:(BOOL)disable; +// optional, 设置idfa,请传原始值,不需要加密 ++ (void)setIdfaBlock:(IdfaBlock)idfaBlock; +// optional, 设置idfv,请传原始值,不需要加密 ++ (void)setIdfvBlock:(IdfvBlock)idfvBlock; +// optional, 设置接入方deviceId ++ (void)setDeviceIdBlock:(DeviceIdBlock)deviceIdBlock; + +// optional, disable use network status, default is NO ++ (void)setDisableUseNetworkStatus:(BOOL)disable; + ++ (NSString *)appId; + ++ (NSString *)deviceId; //获取did +/** + * 获取SDK的bid请求报文token + * @param model 中posId是必传的,其余参数可参考各类广告调用 + * @return 返回SDK的token +*/ ++ (NSString *)getBidRequestToken:(KSAdBiddingAdModel *)model; +/// 获取服务端竞价V2的请求报文token +/// @param model 不需要传posId 但是在向服务端请求的时候posId必传 ++ (NSString *)getBidRequestTokenV2:(KSAdBiddingAdV2Model *)model; +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdServerBidLogMacro.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdServerBidLogMacro.h new file mode 100644 index 0000000..c7e75a3 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdServerBidLogMacro.h @@ -0,0 +1,18 @@ +// +// KSAdServerBidLogMacro.h +// KSUServerBidding +// +// Created by 李姝谊 on 2022/1/18. +// + +#import +#ifndef KSAdServerBidLogMacro_h +#define KSAdServerBidLogMacro_h + +#define KSAdBidLogError(frmt, ...) KSAdLogError(@"[ServerBid]" frmt, ##__VA_ARGS__) +#define KSAdBidLogWarn(frmt, ...) KSAdLogWarn(@"[ServerBid]" frmt, ##__VA_ARGS__) +#define KSAdBidLogInfo(frmt, ...) KSAdLogInfo(@"[ServerBid]" frmt, ##__VA_ARGS__) +#define KSAdBidLogDebug(frmt, ...) KSAdLogDebug(@"[ServerBid]" frmt, ##__VA_ARGS__) +#define KSAdBidLogVerbose(frmt, ...) KSAdLogVerbose(@"[ServerBid]" frmt, ##__VA_ARGS__) + +#endif /* KSAdServerBidLogMacro_h */ diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdShowDirection.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdShowDirection.h new file mode 100644 index 0000000..7bbab47 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdShowDirection.h @@ -0,0 +1,16 @@ +// +// KSAdShowDirection.h +// Pods +// +// Created by zhangchuntao on 2021/4/2. +// + +#ifndef KSAdShowDirection_h +#define KSAdShowDirection_h + +typedef NS_ENUM(NSInteger, KSAdShowDirection) { + KSAdShowDirection_Vertical = 0, //竖屏 + KSAdShowDirection_Horizontal = 1, //横屏 +}; + +#endif /* KSAdShowDirection_h */ diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdSplashAdExtraDataModel.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdSplashAdExtraDataModel.h new file mode 100644 index 0000000..9593598 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdSplashAdExtraDataModel.h @@ -0,0 +1,22 @@ +// +// KSAdSplashAdExtraDataModel.h +// KSUSplashAd +// +// Created by 臧密娜 on 2022/3/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface KSAdSplashAdExtraDataModel : NSObject +/// 是否屏蔽摇一摇,false或者不赋值,不屏蔽,true屏蔽 +@property (nonatomic, assign) BOOL disableShake; +/// 是否屏蔽扭一扭,false或者不赋值,不屏蔽,true屏蔽 +@property (nonatomic, assign) BOOL disableRotate; +/// 是否屏蔽手势滑动转化,false或者不赋值,不屏蔽,true屏蔽 +@property (nonatomic, assign) BOOL disableSlide; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSAdUserInfo.h b/ios/SDK/KSAdSDK.framework/Headers/KSAdUserInfo.h new file mode 100644 index 0000000..2e9b5ef --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSAdUserInfo.h @@ -0,0 +1,41 @@ +// +// KSAdUserInfo.h +// KSAdSDK +// +// Created by 徐志军 on 2019/8/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, KSAdUserInfoThirdAgeType) { + KSAdUserInfoThirdAgeTypeUnknown = 0, // 未知 + KSAdUserInfoThirdAgeTypeYoung = 1, // 18-23 + KSAdUserInfoThirdAgeTypeBelowThirty = 2, // 24-30 + KSAdUserInfoThirdAgeTypeBelowForty = 3, // 31-40 + KSAdUserInfoThirdAgeTypeBelowFifty = 4, // 41-49 + KSAdUserInfoThirdAgeTypeAboveFifty = 5, // 50+ +}; + +typedef NS_ENUM(NSUInteger, KSAdUserInfoThirdGengerType) { + KSAdUserInfoThirdGengerTypeUnknown = 0, // 未知 + KSAdUserInfoThirdGengerTypeMale = 1, // 男性 + KSAdUserInfoThirdGengerTypeFemale = 2, // 女性 +}; + +@interface KSAdUserInfo : NSObject + +@property (nonatomic, assign) long userId; // 用户id,目前是必填 +@property (nonatomic, copy) NSString *thirdUserId; //媒体用户id,目前用在激励视频回调 +@property (nonatomic, copy) NSString *gender; // 用户性别,选填 F: 女性 M:男性 +@property (nonatomic, copy) NSArray *interestArray; // 用户兴趣,选填 + +// 新增广告请求字段 +@property (nonatomic, assign) KSAdUserInfoThirdAgeType thirdAge; // 年龄 +@property (nonatomic, assign) KSAdUserInfoThirdGengerType thirdGender; // 性别 +@property (nonatomic, copy) NSString *thirdInterest; // 兴趣标签 + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSCUCallBackProtocol.h b/ios/SDK/KSAdSDK.framework/Headers/KSCUCallBackProtocol.h new file mode 100644 index 0000000..ed4b66d --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSCUCallBackProtocol.h @@ -0,0 +1,57 @@ +// +// KSCUCallBackProtocol.h +// KSAdSDK +// +// Created by jie cai on 2021/1/15. +// + +#import +#import "KSCUFeedEvent.h" +#import "KSCUContentPageDelegate.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol KSCURequestCallBackProtocol,KSCUUserInteractionCallBackProtocol; + +@protocol KSCUContentPageCallBackProtocol + +@end + +@protocol KSCUFeedPageCallBackProtocol + +@end + +/// feed 请求回调协议 +@protocol KSCURequestCallBackProtocol + +@optional +/// 请求开始回调 +- (void)kscuContentRequestStart:(KSCUFeedEvent *)event; +/// 请求成功回调 +- (void)kscuContentRequestSuccess:(KSCUFeedEvent *)event + callBack:(KSCUResponseObj *)responseObj; +/// 请求开失败回调 +- (void)kscuContentRequestFail:(KSCUFeedEvent *)event; + +@end + +@protocol KSCUUserInteractionCallBackProtocol + +@optional +- (void)kscuClickContentShareWithItem:(NSString *)shareItem; + +- (void)kscuAvaterDidClick:(KSCUContentType)contentType; + +- (void)kscuLikeDidClick:(KSCUContentType)contentType isLike:(BOOL)isLike; + +- (void)kscuCommentDidClick:(KSCUContentType)contentType; + +- (void)kscuSaleListDidClick:(NSString *)liveId; + +- (void)kscuBuyButtonDidClick:(NSString *)liveId; + +- (void)kscuGotoKwaiDidClick:(NSString *)liveId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSCUContentPage.h b/ios/SDK/KSAdSDK.framework/Headers/KSCUContentPage.h new file mode 100644 index 0000000..ebde01d --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSCUContentPage.h @@ -0,0 +1,57 @@ +// +// KSCUContentPage.h +// KSAdSDK +// +// Created by jie cai on 2020/5/2. +// + +#import +#import "KSCUEmbedAdConfig.h" +#import "KSCUOuterController.h" +#import "KSCUCallBackProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface KSCUContentPage : NSObject + +@property (nonatomic, readonly) UIViewController *viewController; +/// 内嵌广告配置.详情见 KSCUEmbedAdConfig 说明 +@property (nonatomic, strong, readonly) KSCUEmbedAdConfig *embedAdConfig; +/// 视频状态代理 +@property (nonatomic, weak, nullable) id videoStateDelegate; +/// 页面状态代理 +@property (nonatomic, weak, nullable) id stateDelegate; +/// 内容页面代理 +@property (nonatomic, weak, nullable) id callBackDelegate; +/// 是否支持左滑出现侧边栏 +@property (nonatomic, assign) BOOL enableLeftSlide; + +@property (nonatomic, strong) KSCUOuterController *outerController; + +- (instancetype)initWithPosId:(NSString *)posId; +/** + * @description 根据 deepLink 内容确认跳转界面,生成的 viewController,从KSCUContentPage.viewController 获取 + * @param posId 广告位 id + * @param deepLink deeplink + * @return KSCUContentPage +*/ +- (instancetype)initWithPosId:(NSString *)posId withDeepLink:(NSString *)deepLink; + +- (void)tryToRefresh; + +#pragma mark - 电商使用 +- (instancetype)initWithPosId:(NSString *)posId promoteID:(nullable NSString *)promoteID comment:(nullable NSString *)comment; +- (instancetype)initWithPosId:(NSString *)posId withDeepLink:(NSString *)deepLink promoteID:(nullable NSString *)promoteID comment:(nullable NSString *)comment; + +#pragma mark - 挽留弹窗相关 +/** + 外部触发挽留弹窗时调用 + 参数1:type:挽留的场景, 3-back键;4-切换tab + block返回值:弹窗消失时,点击的区域,媒体基本只需要关心点击残忍离开的场景,也就是closeType = 1 + 方法返回值:BOOL,是否可以正常展示挽留弹窗 + */ +- (BOOL)interceptWithSourceType:(NSInteger)type closeBlock:(nullable void(^)(NSInteger closeType))interceptViewCloseBlock; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSCUContentPageDelegate.h b/ios/SDK/KSAdSDK.framework/Headers/KSCUContentPageDelegate.h new file mode 100644 index 0000000..e461c92 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSCUContentPageDelegate.h @@ -0,0 +1,95 @@ +// +// KSCUVideoDelegate.h +// Pods +// +// Created by zhangchuntao on 2020/5/14. +// + +#ifndef KSCUVideoDelegate_h +#define KSCUVideoDelegate_h + +typedef NS_ENUM(NSUInteger, KSCUContentType) { + KSCUContentTypeUnknown, //未知,正常不会出现 + KSCUContentTypeNormal, //普通信息流 + KSCUContentTypeAd, //SDK内部广告 + KSCUContentTypeLive, + KSCUContentTypeEmbeded = 100 //外部广告 +}; + +@protocol KSCUContentInfo + +//内容标识 +- (NSString *)publicContentId; +//内容类型 +- (KSCUContentType)publicContentType; +//视频时长. 毫秒 +- (NSTimeInterval)publicVideoDuration; + +@end + +/** + * 视频播放状态代理 + */ +@protocol KSCUVideoStateDelegate +@optional +/** + * 视频开始播放 + * @param videoContent 内容模型 + */ +- (void)kscu_videoDidStartPlay:(id)videoContent; +/** +* 视频暂停播放 +* @param videoContent 内容模型 +*/ +- (void)kscu_videoDidPause:(id)videoContent; +/** +* 视频恢复播放 +* @param videoContent 内容模型 +*/ +- (void)kscu_videoDidResume:(id)videoContent; +/** +* 视频停止播放 +* @param videoContent 内容模型 +* @param finished 是否播放完成 +*/ +- (void)kscu_videoDidEndPlay:(id)videoContent isFinished:(BOOL)finished; +/** +* 视频播放失败 +* @param videoContent 内容模型 +* @param error 失败原因 +*/ +- (void)kscu_videoDidFailedToPlay:(id)videoContent withError:(NSError *)error; + +@end + + +/** +* 内容展示状态代理 +*/ +@protocol KSCUContentStateDelegate +@optional +/** +* 内容展示 +* @param content 内容模型 +*/ +- (void)kscu_contentDidFullDisplay:(id)content; +/** +* 内容隐藏 +* @param content 内容模型 +*/ +- (void)kscu_contentDidEndDisplay:(id)content; +/** +* 内容暂停显示,ViewController disappear或者Application resign active +* @param content 内容模型 +*/ +- (void)kscu_contentDidPause:(id)content; +/** +* 内容恢复显示,ViewController appear或者Application become active +* @param content 内容模型 +*/ +- (void)kscu_contentDidResume:(id)content; + +@end + + +#endif /* KSCUVideoDelegate_h */ diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSCUEmbedAdConfig.h b/ios/SDK/KSAdSDK.framework/Headers/KSCUEmbedAdConfig.h new file mode 100644 index 0000000..718e808 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSCUEmbedAdConfig.h @@ -0,0 +1,86 @@ +// +// KSEmbedAdConfig.h +// KSAdSDK +// +// Created by jie cai on 2020/4/26. +// + +#import + +@protocol KSCUEmbedAdDataSource; +@protocol KSCUEmbedAdProtocol; + +NS_ASSUME_NONNULL_BEGIN + +@interface KSCUEmbedAdConfig : NSObject + +@property (nonatomic, assign) BOOL allowInsertThirdAd; + +/// 数据源代理 +@property (nonatomic, weak) id dataSource; + +@end + +@interface KSCUEmbedAdsRequest : NSObject + +/// 第 requestCount 次加载请求, = 1 为下拉刷新或者首次加载, > 1 为加载更多 +/* + warning: + 第 2 次结束后,发起第三次请求 requestCount = 3,若第三次请求失败,下一次请求 从 3 开始, + */ +@property (nonatomic, assign, readonly) NSInteger requestCount; +/// 当前加载请求预留广告位总数 +@property (nonatomic, assign, readonly) NSInteger lastRequestAdCount; + +- (BOOL)isLoadMore; + +@end + +#pragma mark - 广告配置数据源协议协议 KSCUEmbedAdDataSource + +@protocol KSCUEmbedAdDataSource + +@required + +/// 即将发起请求 +- (void)embedAdConfig:(KSCUEmbedAdConfig *)embedAdConfig + willBeginRuqest:(KSCUEmbedAdsRequest *)requestAds; + +/// 请求结束 +/* + 建议:每当一次请求结束后,加载当次请求的广告 + */ +- (void)embedAdConfig:(KSCUEmbedAdConfig *)embedAdConfig + didEndRuqest:(KSCUEmbedAdsRequest *)requestAds + error:(NSError * _Nullable)error; + +/// 获取外置广告数据源 +- (_Nullable id)embedAdConfig:(KSCUEmbedAdConfig *)embedAdConfig adAtIndex:(NSInteger)index; + +@end + +#pragma mark - 配置广告模型协议 KSCUEmbedAdProtocol + +@protocol KSCUEmbedAdProtocol + +@required +/// 需要内嵌广告视图, 与展示内容大小 一致 +- (nonnull UIView *)embedAdView; +/// 完全展示 embedAdView +- (void)embedAdViewDidFullDisplay; +/// 完全消失 embedAdView +- (void)embedAdViewDidEndDisplay; + +@optional +/// 展示内容的唯一标识,注意:*****如果不实现这个方法或者返回空,SDK不会回调页面展示状态***** +- (NSString *)embededAdUniqueID; +/// 即将展示预加载 embedAdView +- (void)embedAdViewWillDisplay; +/// 嵌入 ViewController DidAppear 显示 +- (void)embedAdInViewControllerDidAppear; +/// 嵌入 ViewController DidDisappear 消失 +- (void)embedAdInViewControllerDidDisappear; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSCUEntryElement.h b/ios/SDK/KSAdSDK.framework/Headers/KSCUEntryElement.h new file mode 100644 index 0000000..df2d705 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSCUEntryElement.h @@ -0,0 +1,86 @@ +// +// KSCUEntryElement.h +// KSAdSDK +// +// Created by jie cai on 2020/4/9. +// + +#import + +#import "KSCUCallBackProtocol.h" +#import "KSCUContentPage.h" + +@protocol KSCUEntryElementDelegate; + +NS_ASSUME_NONNULL_BEGIN + +/* + 建议:入口组件贴屏幕左右两边 + + */ + +@interface KSCUEntryElement : NSObject + +/// 入口组件视图 entryElementSuccessToLoad 成功时获取 +@property (nonatomic, strong, readonly, nullable) UIView *entryView; +/// 入口组件 size 大小 entryElementSuccessToLoad 成功时获取 +@property (nonatomic, assign, readonly) CGSize entryExpectedSize; +/// 回调代理 +@property (nonatomic, weak) id delegate; + +/// 默认 padding 左右各 16,上 8 下 0 ,在 loadData之前配置 +@property (nonatomic, assign) UIEdgeInsets entryPadding; +/// 入口组件默认为屏幕宽度,在 loadData之前配置 +@property (nonatomic, assign) CGFloat expectedWidth; + +/// 判断是否正在加载请求 +@property (nonatomic, assign, readonly) BOOL isLoading; +/// 目前仅 样式 5 支持 +@property (nonatomic, assign) BOOL autoJumpInWifi; + +- (instancetype)initWithPosId:(NSString *)posId; + +/// 电商联盟专用 +- (instancetype)initWithPosId:(NSString *)posId promoteID:(nullable NSString *)promoteID; +/// 电商联盟专用 +- (instancetype)initWithPosId:(NSString *)posId promoteID:(nullable NSString *)promoteID comment:(nullable NSString *)comment; + +- (instancetype)initWithContentPage:(KSCUContentPage *)contentPage; + +/// 数据请求加载,通过代理回调 +/* + 1.连续多次调用,仅第一次生效 + 2.回调成功或者失败后,外部自行选择合适时机可以再次调用,进行刷新或重试操作 + */ +- (void)loadData; +/// 模拟用户点击跳入,回调 didFeedClickCallBack +- (void)manualClickToJumpFeed; + +- (void)setThemeMode:(NSInteger)themeMode; + +@end + +@protocol KSCUEntryElementDelegate + +@required +/// 成功回调通知 +/* + 通过 entryView 获取具体的视图 + entryExpectedSize 为期望的宽高 + */ +- (void)entryElementSuccessToLoad:(KSCUEntryElement *)entryElement; + +/// 点击单个feed事件回调 +/* + 内部构造 UIViewController + 外部对 viewController 处理,具体 push / present 或者 容器组操作 + */ +- (void)entryElement:(KSCUEntryElement *)entryElement didFeedClickCallBack:(KSCUContentPage *)contentPage; + +@optional +/// 失败回调 +- (void)entryElement:(KSCUEntryElement *)entryElement didFailWithError:(NSError *_Nullable)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSCUFeedEvent.h b/ios/SDK/KSAdSDK.framework/Headers/KSCUFeedEvent.h new file mode 100644 index 0000000..ad46c12 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSCUFeedEvent.h @@ -0,0 +1,41 @@ +// +// KSCUEvent.h +// KSAdSDK +// +// Created by jie cai on 2021/1/15. +// + +#import + + +NS_ASSUME_NONNULL_BEGIN + +typedef NSString * const KSCUEventName; +/// 滑滑流请求事件名称 +extern KSCUEventName KSCUEventRequestPageAPI; +/* + 滑滑场景类型 + */ +typedef NS_ENUM(NSInteger, KSCUFeedEventScene) { + KSCUFeedEventSceneMainPage, /// 主滑滑流 + KSCUFeedEventScenePersonalPage, /// 个人作品滑滑流 + KSCUFeedEventSceneOtherPage, /// 其他类型滑滑流 +}; + +@interface KSCUFeedEvent : NSObject +/// 事件唯一标识符 +@property (nonatomic, copy) NSString *eventIdentify; +/// 事件名称 +@property (nonatomic, copy) KSCUEventName eventName; +/// 滑滑流场景 +@property (nonatomic, assign) KSCUFeedEventScene eventScene; + +@end + +@interface KSCUResponseObj : NSObject +/// 当前请求视频模型数量 +@property (nonatomic, assign) NSInteger countOfVideoInRequest; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSCUFeedPage.h b/ios/SDK/KSAdSDK.framework/Headers/KSCUFeedPage.h new file mode 100644 index 0000000..7655c5b --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSCUFeedPage.h @@ -0,0 +1,48 @@ +// +// KSCUFeedPage.h +// KSAdSDK +// +// Created by jie cai on 2020/9/2. +// + +#import + +#import "KSCUContentPageDelegate.h" +#import "KSCUCallBackProtocol.h" +#import "KSCUOuterController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface KSCUFeedPage : NSObject + +/* + 属性配置,需要在获取 feedViewController前设置 + */ +///跳转是否隐藏 TarBar,默认为 YES +@property(nonatomic, assign) BOOL hidesBottomBarWhenPushed; +/// 视频状态代理 +@property (nonatomic, weak) id videoStateDelegate; +/// 页面状态代理 +@property (nonatomic, weak) id stateDelegate; + +@property (nonatomic, weak) id callBackDelegate; + +@property (nonatomic, readonly) UIViewController *feedViewController; + +@property (nonatomic, strong) KSCUOuterController *outerController; + +- (instancetype)initWithPosId:(NSString *)posId; + +- (instancetype)initWithPosId:(NSString *)posId promoteID:(nullable NSString *)promoteID comment:(nullable NSString *)comment NS_DESIGNATED_INITIALIZER; + +- (instancetype)init NS_UNAVAILABLE; + +/** + 设置夜间模式和非夜间模式 + themeMode:0:原样式, 1:夜间模式,如果设置了夜间模式,但是未创建夜间模式配置的plist,默认使用联盟的夜间页面 + */ +- (void)setThemeMode:(NSInteger)themeMode; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSCUFeedPageScrollViewDelegate.h b/ios/SDK/KSAdSDK.framework/Headers/KSCUFeedPageScrollViewDelegate.h new file mode 100644 index 0000000..7e0793c --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSCUFeedPageScrollViewDelegate.h @@ -0,0 +1,23 @@ +// +// KSCUFeedPageScrollViewDelegate.h +// KSAdSDK +// +// Created by jie cai on 2020/11/7. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol KSCUFeedPageScrollViewDelegate + +@optional +/// 首次加载成功后,返回;仅返回一次 +- (void)feedPage:(UIViewController *)vc +scrollViewcallback:(UIScrollView *)scrollView; +/// FeedPage 即将进入滑滑流视频 +- (void)willEnterContentVideoFeedPage; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSCUHorizontalFeed.h b/ios/SDK/KSAdSDK.framework/Headers/KSCUHorizontalFeed.h new file mode 100644 index 0000000..e34c72c --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSCUHorizontalFeed.h @@ -0,0 +1,34 @@ +// +// KSCUHorizontalFeed.h +// AFNetworking +// +// Created by jie cai on 2020/12/18. +// + +#import +#import "KSCUHorizontalFeedCallBackProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface KSCUHorizontalFeedConfig : NSObject + +///跳转是否隐藏 TarBar,默认为 YES +@property(nonatomic, assign) BOOL hidesBottomBarWhenPushed; + +@property (nonatomic, weak, nullable) id callBackDelegate; + +@end + +@interface KSCUHorizontalFeed : NSObject + +@property (nonatomic, strong, readonly) UIViewController *feedViewController; + +- (instancetype)initWithPosId:(NSString *)posId + configBuilder:(void(^ _Nullable)(KSCUHorizontalFeedConfig *config) )configBuilder NS_DESIGNATED_INITIALIZER; + +- (instancetype)init NS_UNAVAILABLE; ++ (instancetype)new NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSCUHorizontalFeedCallBackProtocol.h b/ios/SDK/KSAdSDK.framework/Headers/KSCUHorizontalFeedCallBackProtocol.h new file mode 100644 index 0000000..8720749 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSCUHorizontalFeedCallBackProtocol.h @@ -0,0 +1,33 @@ +// +// KSCUHorizontalFeedCallBackProtocol.h +// KSUCTHFeedImpl +// +// Created by qingxu zhou on 2021/11/2. +// + +#import +#import "KSCUContentPageDelegate.h" +NS_ASSUME_NONNULL_BEGIN + +@protocol KSCUHorizontalFeedCallBackProtocol +@optional +/// 进入横版视频详情页 +/// @param viewController 详情页VC +/// @param contentInfo 视频信息 +- (void)kscu_horizontalFeedDetailDidEnter:(UIViewController *)viewController contentInfo:(id)contentInfo; + +/// 离开横版视频详情页 +/// @param viewController 详情页VC +- (void)kscu_horizontalFeedDetailDidLeave:(UIViewController *)viewController; + +/// 视频详情页appear +/// @param viewController 详情页VC +- (void)kscu_horizontalFeedDetailDidAppear:(UIViewController *)viewController; + +/// 详情页disappear +/// @param viewController 详情页VC +- (void)kscu_horizontalFeedDetailDidDisappear:(UIViewController *)viewController; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSCUHotspotDataProtocol.h b/ios/SDK/KSAdSDK.framework/Headers/KSCUHotspotDataProtocol.h new file mode 100644 index 0000000..5257fa3 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSCUHotspotDataProtocol.h @@ -0,0 +1,27 @@ +// +// KSCUHotspotDataProtocol.h +// KSAdSDK +// +// Created by 臧密娜 on 2021/5/27. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol KSCUHotspotDataProtocol + +/// 排名 +@property (nonatomic, assign, readonly) NSInteger rank; +/// 标题名 +@property (nonatomic, copy, readonly) NSString *name; +/// 首个视频的封面 +@property (nonatomic, copy, readonly) NSString *coverUrl; +/// 视频数 +@property (nonatomic, assign, readonly) NSInteger photoCount; +/// 播放量 +@property (nonatomic, assign, readonly) int64_t viewCount; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSCUHotspotPage.h b/ios/SDK/KSAdSDK.framework/Headers/KSCUHotspotPage.h new file mode 100644 index 0000000..3014357 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSCUHotspotPage.h @@ -0,0 +1,72 @@ +// +// KSCUHotspotPage.h +// KSAdSDK +// +// Created by 臧密娜 on 2021/3/10. +// + +#import + +#import "KSCUCallBackProtocol.h" +#import "KSCUHotspotDataProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +@class KSCUHotspotPage; +@protocol KSCUContentStateDelegate; +@protocol KSCUVideoStateDelegate; +@protocol KSCUHotspotPageCallBackProtocol; +@protocol KSCUHotspotListRequestCallBackProtocol; +@protocol KSCUHotspotDataProtocol; + +@protocol KSCUHotspotPageCallBackProtocol + +@end + +@interface KSCUHotspotPageConfig : NSObject +/// 视频状态代理 +@property (nonatomic, weak) id videoStateDelegate; +/// 页面状态代理 +@property (nonatomic, weak) id stateDelegate; + +@property (nonatomic, weak) id callBackDelegate; + +@property (nonatomic, weak) id hotspotListRequestDelegate; + +@end + +@interface KSCUHotspotPage : NSObject + +@property (nonatomic, strong, readonly) UIViewController *hotspotViewController; + +- (instancetype)initWithPosId:(NSString *)posId configBuilder:(void(^ _Nullable)(KSCUHotspotPageConfig *config) )configBuilder NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; ++ (instancetype)new NS_UNAVAILABLE; + +/// 数据请求加载,通过代理回调 +/* + 1.连续多次调用,仅第一次生效 + 2.回调成功或者失败后,外部自行选择合适时机可以再次调用,进行刷新或重试操作 + */ +- (void)refreshData; + +/** + themeMode:0:原样式, 1:媒体自定义样式,如果设置了自定义样式,但是未创建对应的模式配置的plist,默认使用联盟的列表样式 + */ +- (void)setThemeMode:(NSInteger)themeMode; + +/// 媒体调用,获取热点信息,successBlock会返回热点数据列表,使用场景:媒体获取相关字段,自己渲染 +- (void)loadHotspotData:(void(^)(NSArray > *infos))successBlock + failedBlock:(void(^)(NSError *_Nullable error))failedBlock; + +@end + +@protocol KSCUHotspotListRequestCallBackProtocol +/// 成功回调通知 +- (void)hotspotListSuccessToLoad; +/// 失败回调 +- (void)hotspotListFailedToLoadWithError:(NSError *_Nullable)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSCUImageTextFeed.h b/ios/SDK/KSAdSDK.framework/Headers/KSCUImageTextFeed.h new file mode 100644 index 0000000..4240f7d --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSCUImageTextFeed.h @@ -0,0 +1,34 @@ +// +// KSCUImageTextFeed.h +// KSAdSDK +// +// Created by jie cai on 2021/3/31. +// + +#import +#import "KSCUImageTextFeedDelegate.h" +#import "KSCUHorizontalFeedCallBackProtocol.h" +NS_ASSUME_NONNULL_BEGIN + +@interface KSCUImageTextFeedConfig : NSObject + +@property (nonatomic, weak) id videoDetailDelegate; +@property (nonatomic, weak) id imageTextDelegate; + +@end + +@interface KSCUImageTextFeed : NSObject + +@property (nonatomic, readonly) UIViewController *feedViewController; +/// 配置信息流标题字体大小[18 ~ 24] +@property (nonatomic, assign) CGFloat titleFontSize; + +- (instancetype)initWithPosId:(NSString *)posId NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithPosId:(NSString *)posId + configBuilder:(void(^ _Nullable)(KSCUImageTextFeedConfig *config) )configBuilder NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; ++ (instancetype)new NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSCUImageTextFeedDelegate.h b/ios/SDK/KSAdSDK.framework/Headers/KSCUImageTextFeedDelegate.h new file mode 100644 index 0000000..2ab93dc --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSCUImageTextFeedDelegate.h @@ -0,0 +1,47 @@ +// +// KSCUImageTextFeedDelegate.h +// KSUCTImageText +// +// Created by qingxu zhou on 2021/10/15. +// + +#import +#import "KSCUContentPageDelegate.h" +NS_ASSUME_NONNULL_BEGIN + +//图文详情的回调 +@protocol KSCUImageTextDetailDelegate +@optional +/// 进入图文详情页 +/// @param detailViewController 图文详情页VC +/// @param feedId feedId +- (void)kscu_imageTextDetailDidEnter:(UIViewController *)detailViewController feedId:(NSString *)feedId; + +/// 离开图文详情页 +/// @param detailViewController 图文详情页VC +- (void)kscu_imageTextDetailDidLeave:(UIViewController *)detailViewController; + +/// 图文详情页appear +/// @param detailViewController 图文详情页VC +- (void)kscu_imageTextDetailDidAppear:(UIViewController *)detailViewController; + +/// 图文详情页disappear +/// @param detailViewController 图文详情页VC +- (void)kscu_imageTextDetailDidDisappear:(UIViewController *)detailViewController; + +/// 图文详情加载结果 +/// @param detailViewController 图文详情页VC +/// @param success 是否成功 +/// @param error error +- (void)kscu_imageTextDetailDidLoadFinish:(UIViewController *)detailViewController sucess:(BOOL)success error:(NSError *)error; + +/// 图文详情阅读进度 +/// @param detailViewController 图文详情页VC +/// @param isFold 是否折叠 +/// @param totalHeight 详情总高度 +/// @param seenHeight 已经看过的高度 +- (void)kscu_imageTextDetailDidScroll:(UIViewController *)detailViewController isFold:(BOOL)isFold totalHeight:(CGFloat)totalHeight seenHeight:(CGFloat)seenHeight; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSCUOuterController.h b/ios/SDK/KSAdSDK.framework/Headers/KSCUOuterController.h new file mode 100644 index 0000000..1d47b4c --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSCUOuterController.h @@ -0,0 +1,30 @@ +// +// KSCUOuterController.h +// KSAdSDK +// +// Created by jie cai on 2020/12/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface KSCUOuterController : NSObject + +/* + 播放器外部控制能力,需要联系商务申请 + */ + + /** + * 媒体调用,控制当前视频启播或者恢复播放; + */ +- (void)resumeCurrentPlayer; + + /** + * 媒体调用,控制当前视频暂停播放; 若在首个video起播前调用,视频不启播,若在视频播放过程中调用,视频转变为暂停播放状态。 + */ +- (void)pauseCurrentPlayer; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSCUSDKManager.h b/ios/SDK/KSAdSDK.framework/Headers/KSCUSDKManager.h new file mode 100644 index 0000000..507602e --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSCUSDKManager.h @@ -0,0 +1,20 @@ +// +// KSCUSDKManager.h +// KSUCTBaseFunc +// +// Created by qingxu zhou on 2021/11/2. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface KSCUSDKManager : NSObject + +/// 设置加载动画颜色,全局生效 +/// @param color 加载动画颜色 ++ (void)setLoadingColor:(UIColor *)color; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSCUTubeColorConfig.h b/ios/SDK/KSAdSDK.framework/Headers/KSCUTubeColorConfig.h new file mode 100644 index 0000000..aed5caa --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSCUTubeColorConfig.h @@ -0,0 +1,26 @@ +// +// KSCUTubeColorConfig.h +// KSAdSDK +// +// Created by qingxu zhou on 2021/9/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, KSCUTubeColorMode) { + KSCUTubeColorModeNormalMode = 0, //正常模式 + KSCUTubeColorModeDarkMode = 1, //暗黑模式 + KSCUTubeColorModeFollowSystem = 2, //跟随系统 + KSCUTubeColorModeUserDefined = 3, //自定义 +}; + +@interface KSCUTubeColorConfig : NSObject +@property (nonatomic, strong) UIColor *backgroundColor; //背景色 +@property (nonatomic, strong) UIColor *titleColor; //标题色 +@property (nonatomic, strong) UIColor *subTitleColor; //副标题色 +@property (nonatomic, strong) UIColor *descriptionColor; //描述文本颜色 +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSCUTubePage.h b/ios/SDK/KSAdSDK.framework/Headers/KSCUTubePage.h new file mode 100644 index 0000000..fdc2c05 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSCUTubePage.h @@ -0,0 +1,34 @@ +// +// KSCUTubePage.h +// KSAdSDK +// +// Created by qingxu zhou on 2021/9/24. +// + +#import +#import "KSCUTubeColorConfig.h" +#import "KSCUCallBackProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface KSCUTubePageConfig : NSObject +@property (nonatomic, weak) id stateDelegate; +@property (nonatomic, weak) id videoStateDelegate; +@property (nonatomic, weak) id callBackDelegate; +@property (nonatomic, assign) BOOL showNavigation; +@end + +@interface KSCUTubePage : NSObject +@property (nonatomic, readonly) UIViewController *viewController; +- (instancetype)initWithPosId:(NSString *)posId configBuilder:(void(^ _Nullable)(KSCUTubePageConfig *config))configBuilder NS_DESIGNATED_INITIALIZER; +- (instancetype)init NS_UNAVAILABLE; ++ (instancetype)new NS_UNAVAILABLE; + +/// 设置显示模式 +/// @param colorMode 显示模式 +/// @param colorConfig 自定义颜色,只有当设置模式为自定义时才会生效 +- (void)setColorMode:(KSCUTubeColorMode)colorMode colorConfig:(nullable KSCUTubeColorConfig *)colorConfig; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSDrawAd.h b/ios/SDK/KSAdSDK.framework/Headers/KSDrawAd.h new file mode 100644 index 0000000..0c84889 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSDrawAd.h @@ -0,0 +1,59 @@ +// +// KSDrawAd.h +// KSAdSDK +// +// Created by xuzhijun on 2019/12/6. +// + + +#import "KSAd.h" +#import "KSAdInteractionType.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol KSDrawAdDelegate; + +@interface KSDrawAd : KSAd + +@property (nonatomic, weak) UIViewController *rootViewController; + +//是否开启声音 +@property (nonatomic, assign) BOOL videoSoundEnabled; + +@property (nonatomic, weak) id delegate; + +///手动控制播放|暂停 +@property (nonatomic, assign) BOOL controlPlayState; +- (void)registerContainer:(UIView *)containerView; +- (void)unregisterView; +///控制播放暂停,controlPlayState=YES时才生效 +- (void)play; +- (void)pause; + +@end + +@protocol KSDrawAdDelegate +@optional +///广告展示 +- (void)drawAdViewWillShow:(KSDrawAd *)drawAd; +///广告点击 +- (void)drawAdDidClick:(KSDrawAd *)drawAd; +///广告跳转落地页 +- (void)drawAdDidShowOtherController:(KSDrawAd *)drawAd interactionType:(KSAdInteractionType)interactionType; +///广告关闭落地页 +- (void)drawAdDidCloseOtherController:(KSDrawAd *)drawAd interactionType:(KSAdInteractionType)interactionType; + +///视频开始播放 +- (void)drawAdVideoDidStart:(KSDrawAd *)drawAd; +///视频暂停播放 +- (void)drawAdVideoDidPause:(KSDrawAd *)drawAd; +///视频恢复播放 +- (void)drawAdVideoDidResume:(KSDrawAd *)drawAd; +///视频停止播放,finished=是否播放完成 +- (void)drawAdVideoDidStop:(KSDrawAd *)drawAd finished:(BOOL)finished; +///视频播放失败,error=失败原因 +- (void)drawAdVideoDidFailed:(KSDrawAd *)drawAd error:(NSError *)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSDrawAdsManager.h b/ios/SDK/KSAdSDK.framework/Headers/KSDrawAdsManager.h new file mode 100644 index 0000000..5203320 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSDrawAdsManager.h @@ -0,0 +1,44 @@ +// +// KSDrawAdsManager.h +// KSAdSDK +// +// Created by xuzhijun on 2019/12/6. +// + +#import +#import "KSDrawAd.h" + +@protocol KSDrawAdsManagerDelegate; + + + +NS_ASSUME_NONNULL_BEGIN + +@interface KSDrawAdsManager : NSObject + +@property (nonatomic, copy, readonly) NSArray *data; +- (instancetype)initWithPosId:(NSString *)posId; +@property (nonatomic, weak, nullable) id delegate; +/** + The number of ads requested,The maximum is 5 + */ +- (void)loadAdDataWithCount:(NSInteger)count; +/** + server bidding load ad data +*/ +- (void)loadAdDataWithResponse:(NSDictionary *)response; +/** + server bidding load ad data plan 2 + */ +- (void)loadAdDataWithResponseV2:(NSDictionary *)response; + +@end + +@protocol KSDrawAdsManagerDelegate + +@optional +- (void)drawAdsManagerSuccessToLoad:(KSDrawAdsManager *)adsManager drawAds:(NSArray *_Nullable)drawAdDataArray; +- (void)drawAdsManager:(KSDrawAdsManager *)adsManager didFailWithError:(NSError *_Nullable)error; + +@end +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSEUExtraInfo.h b/ios/SDK/KSAdSDK.framework/Headers/KSEUExtraInfo.h new file mode 100644 index 0000000..342942b --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSEUExtraInfo.h @@ -0,0 +1,32 @@ +// +// KSEUExtraInfo.h +// KSAdSDK +// +// Created by LFR on 2021/3/30. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface KSEUExtraInfo : NSObject + +/// 推广位id,必传 +@property (nonatomic, copy) NSString *promoteID; + +/// 媒体自定义的备注,下单后可在订单平台查到,可不传 +@property (nonatomic, copy) NSString *comment; + +/// 用户自购时的媒体返佣比例,⚠️ 0-100 的整数,可不传 +@property (nonatomic, assign) NSUInteger userCommRateBuying; + +/// 用户分享时的媒体返佣比例,⚠️ 0-100 的整数,可不传 +@property (nonatomic, assign) NSUInteger userCommRateSharing; + +- (instancetype)initWithPromoteID:(NSString *)promoteID comment:(NSString *)comment; + +- (NSDictionary *)jsonDic; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSFeedAd.h b/ios/SDK/KSAdSDK.framework/Headers/KSFeedAd.h new file mode 100644 index 0000000..7e22ebd --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSFeedAd.h @@ -0,0 +1,44 @@ +// +// KSFeedAd.h +// KSAdSDK +// +// Created by xuzhijun on 2019/11/22. +// + +#import + +#import "KSAd.h" +#import "KSAdInteractionType.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol KSFeedAdDelegate; + +@interface KSFeedAd : KSAd + +@property (nonatomic, readonly) UIView *feedView; + +@property (nonatomic, weak) id delegate; + +- (void)setVideoSoundEnable:(BOOL)enable; + +@end + +@protocol KSFeedAdDelegate +@optional +/** + This method is called when feed ad show everytime. Please don‘t use for exposure count. Please use 'feedAdDidShow' for exposure count. + */ +- (void)feedAdViewWillShow:(KSFeedAd *)feedAd; +- (void)feedAdDidClick:(KSFeedAd *)feedAd; +- (void)feedAdDislike:(KSFeedAd *)feedAd; +- (void)feedAdDidShowOtherController:(KSFeedAd *)nativeAd interactionType:(KSAdInteractionType)interactionType; +- (void)feedAdDidCloseOtherController:(KSFeedAd *)nativeAd interactionType:(KSAdInteractionType)interactionType; +/** + This method is called when feed ad show. Each ad is called back only once + */ +- (void)feedAdDidShow:(KSFeedAd *)feedAd; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSFeedAdShakeManager.h b/ios/SDK/KSAdSDK.framework/Headers/KSFeedAdShakeManager.h new file mode 100644 index 0000000..9db32a3 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSFeedAdShakeManager.h @@ -0,0 +1,20 @@ +// +// KSFeedAdShakeManager.h +// KSUFeedAd +// +// Created by 李姝谊 on 2022/6/21. +// + +#import +@class KSFeedAd; +NS_ASSUME_NONNULL_BEGIN + +@interface KSFeedAdShakeManager : NSObject + ++ (instancetype)sharedInstance; +- (void)addWeakFeedAd:(KSFeedAd *)feedAd; +- (void)stopDeviceMotionMonitor; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSFeedAdsManager.h b/ios/SDK/KSAdSDK.framework/Headers/KSFeedAdsManager.h new file mode 100644 index 0000000..e11d74a --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSFeedAdsManager.h @@ -0,0 +1,50 @@ +// +// KSFeedAdsManager.h +// KSAdSDK +// +// Created by xuzhijun on 2019/11/22. +// + +#import +#import "KSFeedAd.h" +NS_ASSUME_NONNULL_BEGIN +@protocol KSFeedAdsManagerDelegate; + + +@interface KSFeedAdsManager : NSObject + + +@property (nonatomic, copy, readonly) NSArray *data; + + +/** + @param size expected ad view size,when size.height is zero, acture height will match size.width + */ +- (instancetype)initWithPosId:(NSString *)posId size:(CGSize)size; +@property (nonatomic, weak, nullable) id delegate; +/** + The number of ads requested,The maximum is 5 + */ +- (void)loadAdDataWithCount:(NSInteger)count; +/** + server bidding load ad data +*/ +- (void)loadAdDataWithResponse:(NSDictionary *)response; +/** + server bidding load ad data plan 2 + */ +- (void)loadAdDataWithResponseV2:(NSDictionary *)response; + +@end + +@protocol KSFeedAdsManagerDelegate + +@optional + +- (void)feedAdsManagerSuccessToLoad:(KSFeedAdsManager *)adsManager nativeAds:(NSArray *_Nullable)feedAdDataArray; + +- (void)feedAdsManager:(KSFeedAdsManager *)adsManager didFailWithError:(NSError *_Nullable)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSFullscreenVideoAd.h b/ios/SDK/KSAdSDK.framework/Headers/KSFullscreenVideoAd.h new file mode 100644 index 0000000..42beeeb --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSFullscreenVideoAd.h @@ -0,0 +1,81 @@ +// +// KSFullscreenVideoAd.h +// KSAdSDK +// +// Created by 徐志军 on 2019/9/3. +// Copyright © 2019 KuaiShou. All rights reserved. +// + +#import +#import +#import "KSVideoAd.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol KSFullscreenVideoAdDelegate; + +@interface KSFullscreenVideoAd : KSVideoAd + +@property (nonatomic, weak, nullable) id delegate; + +- (instancetype)initWithPosId:(NSString *)posId; +@end + + +@protocol KSFullscreenVideoAdDelegate +@optional +/** + This method is called when video ad material loaded successfully. + */ +- (void)fullscreenVideoAdDidLoad:(KSFullscreenVideoAd *)fullscreenVideoAd; +/** + This method is called when video ad materia failed to load. + @param error : the reason of error + */ +- (void)fullscreenVideoAd:(KSFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error; +/** + This method is called when cached successfully. + */ +- (void)fullscreenVideoAdVideoDidLoad:(KSFullscreenVideoAd *)fullscreenVideoAd; +/** + This method is called when video ad slot will be showing. + */ +- (void)fullscreenVideoAdWillVisible:(KSFullscreenVideoAd *)fullscreenVideoAd; +/** + This method is called when video ad slot has been shown. + */ +- (void)fullscreenVideoAdDidVisible:(KSFullscreenVideoAd *)fullscreenVideoAd; +/** + This method is called when video ad is about to close. + */ +- (void)fullscreenVideoAdWillClose:(KSFullscreenVideoAd *)fullscreenVideoAd; +/** + This method is called when video ad is closed. + */ +- (void)fullscreenVideoAdDidClose:(KSFullscreenVideoAd *)fullscreenVideoAd; + +/** + This method is called when video ad is clicked. + */ +- (void)fullscreenVideoAdDidClick:(KSFullscreenVideoAd *)fullscreenVideoAd; +/** + This method is called when video ad play completed or an error occurred. + @param error : the reason of error + */ +- (void)fullscreenVideoAdDidPlayFinish:(KSFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error; +/** + This method is called when the video begin to play. + */ +- (void)fullscreenVideoAdStartPlay:(KSFullscreenVideoAd *)fullscreenVideoAd; +/** + This method is called when the user clicked skip button. + */ +- (void)fullscreenVideoAdDidClickSkip:(KSFullscreenVideoAd *)fullscreenVideoAd; +/** + This method is called when the user clicked skip button. + @param currentTime played duration + */ +- (void)fullscreenVideoAdDidClickSkip:(KSFullscreenVideoAd *)fullscreenVideoAd currentTime:(NSTimeInterval)currentTime; +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSInnerVideoAd.h b/ios/SDK/KSAdSDK.framework/Headers/KSInnerVideoAd.h new file mode 100644 index 0000000..9efc01d --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSInnerVideoAd.h @@ -0,0 +1,36 @@ +// +// KSInnerVideoAd.h +// KSUVideoAd +// +// Created by mohao on 2022/1/6. +// + +#import + +typedef NS_ENUM(NSInteger, KSInnerAdType) { + KSInnerAdUnKnown = 0,//未知 + KSInnerAdAggregation = 1,//激励聚合 + KSInnerAdReflow = 2,//激励视频回流页 +}; + +@protocol KSInnerAdDelegate; + +NS_ASSUME_NONNULL_BEGIN + +@interface KSInnerVideoAd : NSObject + +@property (nonatomic, assign) KSInnerAdType adType; + +@end + +@protocol KSInnerAdDelegate + +@optional + +- (void)onInnerAdClick:(KSInnerVideoAd *)innerAd; + +- (void)onInnerAdShow:(KSInnerVideoAd *)innerAd; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSInterstitialAd.h b/ios/SDK/KSAdSDK.framework/Headers/KSInterstitialAd.h new file mode 100644 index 0000000..fd9b570 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSInterstitialAd.h @@ -0,0 +1,80 @@ +// +// KSInterstitialAd.h +// KSAdSDK +// +// Created by zhangchuntao on 2021/3/17. +// + +#import + +#import "KSAd.h" +#import "KSAdInteractionType.h" + +NS_ASSUME_NONNULL_BEGIN + +@class KSInterstitialAd; + +@protocol KSInterstitialAdDelegate +@optional +/** + * interstitial ad data loaded + */ +- (void)ksad_interstitialAdDidLoad:(KSInterstitialAd *)interstitialAd; +/** + * interstitial ad render success + */ +- (void)ksad_interstitialAdRenderSuccess:(KSInterstitialAd *)interstitialAd; +/** + * interstitial ad load or render failed + */ +- (void)ksad_interstitialAdRenderFail:(KSInterstitialAd *)interstitialAd error:(NSError * _Nullable)error; +/** + * interstitial ad will visible + */ +- (void)ksad_interstitialAdWillVisible:(KSInterstitialAd *)interstitialAd; +/** + * interstitial ad did visible + */ +- (void)ksad_interstitialAdDidVisible:(KSInterstitialAd *)interstitialAd; +/** + * interstitial ad did click + */ +- (void)ksad_interstitialAdDidClick:(KSInterstitialAd *)interstitialAd; +/** + * interstitial ad did click skip + */ +- (void)ksad_interstitialAdDidClickSkip:(KSInterstitialAd *)interstitialAd; +/** + * interstitial ad will close + */ +- (void)ksad_interstitialAdWillClose:(KSInterstitialAd *)interstitialAd; +/** + * interstitial ad did close + */ +- (void)ksad_interstitialAdDidClose:(KSInterstitialAd *)interstitialAd; +/** + * interstitial ad did close other controller + */ +- (void)ksad_interstitialAdDidCloseOtherController:(KSInterstitialAd *)interstitialAd interactionType:(KSAdInteractionType)interactionType; + +@end + +@interface KSInterstitialAd : KSAd + +@property (nonatomic, weak) id delegate; +//广告是否已合法加载 +@property (nonatomic, readonly) BOOL isValid; +//是否开启声音 +@property (nonatomic, assign) BOOL videoSoundEnabled; + +- (instancetype)initWithPosId:(NSString *)posId; + +- (instancetype)initWithPosId:(NSString *)posId containerSize:(CGSize)containerSize; + +- (void)loadAdData; + +- (void)showFromViewController:(UIViewController *)viewController; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSMaterialMeta.h b/ios/SDK/KSAdSDK.framework/Headers/KSMaterialMeta.h new file mode 100644 index 0000000..d66083b --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSMaterialMeta.h @@ -0,0 +1,60 @@ +// +// KSMaterialMeta.h +// KSAdSDK +// +// Created by 徐志军 on 2019/10/11. +// Copyright © 2019 KuaiShou. All rights reserved. +// + +#import +#import "KSAdImage.h" +#import "KSAdInteractionType.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(int, KSAdSourceLogoType) { + KSAdSourceLogoTypeWhite, + KSAdSourceLogoTypeGray, +}; + +@interface KSMaterialMeta : NSObject + +/// interaction types supported by ads. +@property (nonatomic, assign) KSAdInteractionType interactionType; + +/// material pictures. +@property (nonatomic, strong) NSArray *imageArray; + +/// ad logo, maybe null +- (NSString *)adSourceLogoURL:(KSAdSourceLogoType)type; +/// ad source. +@property (nonatomic, copy) NSString *adSource; + +@property (nonatomic, strong, nullable) KSAdImage *appIconImage; + +/// 0-5 +@property (nonatomic, assign) CGFloat appScore; +/// downloadCountDesc. +@property (nonatomic, copy) NSString *appDownloadCountDesc; +/// ad description. +@property (nonatomic, copy) NSString *adDescription; + +/// text displayed on the creative button. +@property (nonatomic, copy) NSString *actionDescription; + +/// display format of the in-feed ad, other ads ignores it. +@property (nonatomic, assign) KSAdMaterialType materialType; + +// video duration +@property (nonatomic, assign) NSInteger videoDuration; + +@property (nonatomic, strong) KSAdImage *videoCoverImage; +@property (nonatomic, copy) NSString *videoUrl; +// app name +@property (nonatomic, copy) NSString *appName; +// product name (for h5) +@property (nonatomic, copy) NSString *productName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSNativeAd.h b/ios/SDK/KSAdSDK.framework/Headers/KSNativeAd.h new file mode 100644 index 0000000..1f84fca --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSNativeAd.h @@ -0,0 +1,150 @@ +// +// KSNativeAd.h +// KSAdSDK +// +// Created by 徐志军 on 2019/10/11. +// Copyright © 2019 KuaiShou. All rights reserved. +// + +#import + +#import "KSAd.h" +#import "KSMaterialMeta.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol KSNativeAdDelegate; + +@interface KSNativeAd : KSAd + +/** + Ad material. + */ +@property (nonatomic, strong, readonly, nullable) KSMaterialMeta *data; + +/** + The delegate for receiving state change messages. + The delegate is not limited to viewcontroller. + The delegate can be set to any object which conforming to . + */ +@property (nonatomic, weak, readwrite, nullable) id delegate; + + + +/** + required. + Root view controller for handling ad actions. + Action method includes 'pushViewController' and 'presentViewController'. + */ +@property (nonatomic, weak, readwrite) UIViewController *rootViewController; + +/** + Register clickable views in native ads view. + Interaction types can be configured on TikTok Audience Network. + Interaction types include view video ad details page, make a call, send email, download the app, open the webpage using a browser,open the webpage within the app, etc. + @param containerView : required. + container view of the native ad. + @param clickableViews : optional. + Array of views that are clickable. + */ +- (void)registerContainer:(__kindof UIView *)containerView withClickableViews:(NSArray<__kindof UIView *> *_Nullable)clickableViews; +/* + Similar to the registerContainer:withClickableViews:, the only difference is that the containerView can choose whether it is clickable or not + */ +- (void)registerContainer:(__kindof UIView *)containerView withClickableViews:(NSArray<__kindof UIView *> *_Nullable)clickableViews containerClickable:(BOOL)isClickable; +/** + Unregister ad view from the native ad. + */ +- (void)unregisterView; + +- (id)initWithPosId:(NSString *)posId; + +/** + Actively request nativeAd datas. + */ +- (void)loadAdData; + +/** + Actively json nativeAd datas. + */ +- (void)loadAdDataWithDictionary:(NSDictionary *)dictionary; + +//- (void)reset; + +- (void)reportVideoStartPlay; + +- (void)reportVideoEndPlay; + +@end + + + +@protocol KSNativeAdDelegate + +@optional + +/** + This method is called when native ad material loaded successfully. + */ +- (void)nativeAdDidLoad:(KSNativeAd *)nativeAd; + +/** + This method is called when native ad materia failed to load. + @param error : the reason of error + */ +- (void)nativeAd:(KSNativeAd *)nativeAd didFailWithError:(NSError *_Nullable)error; + +/** + This method is called when native ad show everytime. Please don‘t use for exposure count. Please use 'nativeAdDidShow' for exposure count. + */ +- (void)nativeAdDidBecomeVisible:(KSNativeAd *)nativeAd; + +/** + This method is called when native ad is clicked. + */ +- (void)nativeAdDidClick:(KSNativeAd *)nativeAd withView:(UIView *_Nullable)view; + +/** +This method is called when another controller has been showed. +@param interactionType : open appstore in app or open the webpage or view video ad details page. +*/ +- (void)nativeAdDidShowOtherController:(KSNativeAd *)nativeAd interactionType:(KSAdInteractionType)interactionType; + +/** + This method is called when another controller has been closed. + @param interactionType : open appstore in app or open the webpage or view video ad details page. + */ +- (void)nativeAdDidCloseOtherController:(KSNativeAd *)nativeAd interactionType:(KSAdInteractionType)interactionType; + +/** + This method is called when native ad show. Each ad is called back only once + */ +- (void)nativeAdDidShow:(KSNativeAd *)nativeAd; +/** + This method is called when native ad ready to play. + */ +- (void)nativeAdVideoReadyToPlay:(KSNativeAd *)nativeAd; +/** + This method is called when native ad start play finished. + */ +- (void)nativeAdVideoStartPlay:(KSNativeAd *)nativeAd; +/** + This method is called when native ad play finished. + */ +- (void)nativeAdVideoPlayFinished:(KSNativeAd *)nativeAd; +/** + This method is called when native ad play error. + */ +- (void)nativeAdVideoPlayError:(KSNativeAd *)nativeAd; +/** + This method is called when native ad play pause,including system-induced and user-induced pauses + */ +- (void)nativeAdVideoPause:(KSNativeAd *)nativeAd; +/** + This method is called when native ad play resume,including system resume and user resume.This method is not called when the video starts playing for the first time. + */ +- (void)nativeAdVideoResume:(KSNativeAd *)nativeAd; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSNativeAdRelatedView.h b/ios/SDK/KSAdSDK.framework/Headers/KSNativeAdRelatedView.h new file mode 100644 index 0000000..c8a1719 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSNativeAdRelatedView.h @@ -0,0 +1,35 @@ +// +// KSNativeAdRelatedView.h +// KSAdSDK +// +// Created by 徐志军 on 2019/10/16. +// Copyright © 2019 KuaiShou. All rights reserved. +// + +#import +#import "KSNativeAd.h" +#import "KSVideoAdView.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface KSNativeAdRelatedView : NSObject + +/** + Promotion label.Need to actively add to the view. + */ +@property (nonatomic, strong, readonly, nullable) UILabel *adLabel; + + +/** + Video ad view. Need to actively add to the view. + */ +@property (nonatomic, strong, readonly, nullable) KSVideoAdView *videoAdView; + +/** + Refresh the data every time you get new datas in order to show ad perfectly. + */ +- (void)refreshData:(KSNativeAd *)nativeAd; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSNativeAdsManager.h b/ios/SDK/KSAdSDK.framework/Headers/KSNativeAdsManager.h new file mode 100644 index 0000000..b84dd63 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSNativeAdsManager.h @@ -0,0 +1,50 @@ +// +// KSNativeAdsManager.h +// KSAdSDK +// +// Created by 徐志军 on 2019/10/11. +// Copyright © 2019 KuaiShou. All rights reserved. +// + +#import +#import "KSNativeAd.h" +NS_ASSUME_NONNULL_BEGIN + +@protocol KSNativeAdsManagerDelegate; + + +@interface KSNativeAdsManager : NSObject + +@property (nonatomic, strong, nullable) NSArray *data; +/// The delegate for receiving state change messages such as requests succeeding/failing. +@property (nonatomic, weak, nullable) id delegate; + +- (id)initWithPosId:(NSString *)posId; + +/** + The number of ads requested,The maximum is 5 + */ +- (void)loadAdDataWithCount:(NSInteger)count; +/** + server bidding load ad data +*/ +- (void)loadAdDataWithResponse:(NSDictionary *)response; +/** + server bidding load ad data plan 2 + */ +- (void)loadAdDataWithResponseV2:(NSDictionary *)response; + +@end + + +@protocol KSNativeAdsManagerDelegate + +@optional + +- (void)nativeAdsManagerSuccessToLoad:(KSNativeAdsManager *)adsManager nativeAds:(NSArray *_Nullable)nativeAdDataArray; + +- (void)nativeAdsManager:(KSNativeAdsManager *)adsManager didFailWithError:(NSError *_Nullable)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSRewardedVideoAd.h b/ios/SDK/KSAdSDK.framework/Headers/KSRewardedVideoAd.h new file mode 100644 index 0000000..8717191 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSRewardedVideoAd.h @@ -0,0 +1,103 @@ +// +// KSRewardedVideoAd.h +// KSAdSDK +// +// Created by 徐志军 on 2019/8/28. +// Copyright © 2019 KuaiShou. All rights reserved. +// + +#import +#import +#import "KSVideoAd.h" +#import "KSRewardedVideoAdDefines.h" +#import "KSInnerVideoAd.h" + +@class KSRewardedVideoModel; +@protocol KSRewardedVideoAdDelegate; + +NS_ASSUME_NONNULL_BEGIN +@interface KSRewardedVideoAd : KSVideoAd + +@property (nonatomic, strong) KSRewardedVideoModel *rewardedVideoModel; +@property (nonatomic, weak, nullable) id delegate; +@property (nonatomic, weak, nullable) id rewardPlayAgainInteractionDelegate; +@property (nonatomic, weak, nullable) id innerDelegate; + +- (instancetype)initWithPosId:(NSString *)posId rewardedVideoModel:(KSRewardedVideoModel *)rewardedVideoModel; + +@end + +@protocol KSRewardedVideoAdDelegate + +@optional +/** + This method is called when video ad material loaded successfully. + */ +- (void)rewardedVideoAdDidLoad:(KSRewardedVideoAd *)rewardedVideoAd; +/** + This method is called when video ad materia failed to load. + @param error : the reason of error + */ +- (void)rewardedVideoAd:(KSRewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error; +/** + This method is called when cached successfully. + */ +- (void)rewardedVideoAdVideoDidLoad:(KSRewardedVideoAd *)rewardedVideoAd; +/** + This method is called when video ad slot will be showing. + */ +- (void)rewardedVideoAdWillVisible:(KSRewardedVideoAd *)rewardedVideoAd; +/** + This method is called when video ad slot has been shown. + */ +- (void)rewardedVideoAdDidVisible:(KSRewardedVideoAd *)rewardedVideoAd; +/** + This method is called when video ad is about to close. + */ +- (void)rewardedVideoAdWillClose:(KSRewardedVideoAd *)rewardedVideoAd; +/** + This method is called when video ad is closed. + */ +- (void)rewardedVideoAdDidClose:(KSRewardedVideoAd *)rewardedVideoAd; + +/** + This method is called when video ad is clicked. + */ +- (void)rewardedVideoAdDidClick:(KSRewardedVideoAd *)rewardedVideoAd; +/** + This method is called when video ad play completed or an error occurred. + @param error : the reason of error + */ +- (void)rewardedVideoAdDidPlayFinish:(KSRewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error; +/** + This method is called when the user clicked skip button. + */ +- (void)rewardedVideoAdDidClickSkip:(KSRewardedVideoAd *)rewardedVideoAd; +/** + This method is called when the user clicked skip button. + @param currentTime played duration + */ +- (void)rewardedVideoAdDidClickSkip:(KSRewardedVideoAd *)rewardedVideoAd currentTime:(NSTimeInterval)currentTime; +/** + This method is called when the video begin to play. + */ +- (void)rewardedVideoAdStartPlay:(KSRewardedVideoAd *)rewardedVideoAd; +/** + This method is called when the user close video ad. + */ +- (void)rewardedVideoAd:(KSRewardedVideoAd *)rewardedVideoAd hasReward:(BOOL)hasReward; +/** + This method is called when the user close video ad,support staged rewards. + */ +- (void)rewardedVideoAd:(KSRewardedVideoAd *)rewardedVideoAd + hasReward:(BOOL)hasReward + taskType:(KSAdRewardTaskType)taskType + currentTaskType:(KSAdRewardTaskType)currentTaskType; +/** + This method is called when the user close video ad,extra rewards verify. + */ +- (void)rewardedVideoAd:(KSRewardedVideoAd *)rewardedVideoAd extraRewardVerify:(KSAdExtraRewardType)extraRewardType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSRewardedVideoAdDefines.h b/ios/SDK/KSAdSDK.framework/Headers/KSRewardedVideoAdDefines.h new file mode 100644 index 0000000..acfc3f5 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSRewardedVideoAdDefines.h @@ -0,0 +1,27 @@ +// +// KSRewardedVideoAdDefines.h +// Pods +// +// Created by xuzaihu on 2021/8/20. +// + +#ifndef KSRewardedVideoAdDefines_h +#define KSRewardedVideoAdDefines_h + +typedef NS_ENUM(NSInteger, KSAdRewardTaskType) { + KSAdRewardTaskTypeWatchVideo = 0, // 观看时长 + KSAdRewardTaskTypeWatchDetailBrowse = 1, // 浏览落地页 +}; + +typedef NS_ENUM(NSUInteger, KSAdDetailBrowseTaskStep) { + KSAdDetailBrowseTaskStepBeforeVideo = 0, //未观看完视频 + KSAdDetailBrowseTaskStepBeforeDetailBrowse = 1, //看完视频 + KSAdDetailBrowseTaskStepFinish = 2, //浏览落地页 +}; + +typedef NS_ENUM(NSInteger, KSAdExtraRewardType) { + KSAdExtraRewardClick = 1, // 点击激励 +}; + +#endif /* KSRewardedVideoAdDefines_h */ + diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSRewardedVideoModel.h b/ios/SDK/KSAdSDK.framework/Headers/KSRewardedVideoModel.h new file mode 100644 index 0000000..949aa31 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSRewardedVideoModel.h @@ -0,0 +1,31 @@ +// +// KSRewardedVideoModel.h +// KSAdSDK +// +// Created by 徐志军 on 2019/8/28. +// Copyright © 2019 KuaiShou. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +// 如果更改本model 请把KSAdRewardVideoModel一同修改 这两个类完全一样 为了避免组件循环依赖写了两个 +@interface KSRewardedVideoModel : NSObject +/** + required. + Third-party game user_id identity. + Mainly used in the reward issuance, it is the callback pass-through parameter from server-to-server. + It is the unique identifier of each user. + In the non-server callback mode, it will also be pass-through when the video is finished playing. + Only the string can be passed in this case, not nil. + */ +@property (nonatomic, copy) NSString *userId; +//optional. reward name. +@property (nonatomic, copy) NSString *name; +//optional. number of rewards. +@property (nonatomic, assign) NSInteger amount; +//optional. serialized string. +@property (nonatomic, copy) NSString *extra; +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSSplashAdView.h b/ios/SDK/KSAdSDK.framework/Headers/KSSplashAdView.h new file mode 100644 index 0000000..7f73ae1 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSSplashAdView.h @@ -0,0 +1,112 @@ +// +// KSSplashAdView.h +// KSAdSDK +// +// Created by zhangchuntao on 2021/3/3. +// + +#import + +#import "KSAd.h" +#import "KSAdInteractionType.h" +#import "KSAdSplashAdExtraDataModel.h" + +NS_ASSUME_NONNULL_BEGIN + +@class KSSplashAdView; + +@protocol KSSplashAdViewDelegate +@optional +/** + * splash ad request done + */ +- (void)ksad_splashAdDidLoad:(KSSplashAdView *)splashAdView; +/** + * splash ad material load, ready to display + */ +- (void)ksad_splashAdContentDidLoad:(KSSplashAdView *)splashAdView; +/** + * splash ad (material) failed to load + */ +- (void)ksad_splashAd:(KSSplashAdView *)splashAdView didFailWithError:(NSError *)error; +/** + * splash ad did visible + */ +- (void)ksad_splashAdDidVisible:(KSSplashAdView *)splashAdView; +/** + * splash ad video begin play + * for video ad only + */ +- (void)ksad_splashAdVideoDidBeginPlay:(KSSplashAdView *)splashAdView; +/** + * splash ad clicked + * @param inMiniWindow whether click in mini window + */ +- (void)ksad_splashAd:(KSSplashAdView *)splashAdView didClick:(BOOL)inMiniWindow; +/** + * splash ad will zoom out, frame can be assigned + * for video ad only + * @param frame target frame + */ +- (void)ksad_splashAd:(KSSplashAdView *)splashAdView willZoomTo:(inout CGRect *)frame; +/** + * splash ad zoomout view will move to frame + * @param frame target frame + */ +- (void)ksad_splashAd:(KSSplashAdView *)splashAdView willMoveTo:(inout CGRect *)frame; +/** + * splash ad skipped + * @param showDuration splash show duration (no subsequent callbacks, remove & release KSSplashAdView here) + */ +- (void)ksad_splashAd:(KSSplashAdView *)splashAdView didSkip:(NSTimeInterval)showDuration; +/** + * splash ad did enter conversion view controller + */ +- (void)ksad_splashAdDidOpenConversionVC:(KSSplashAdView *)splashAdView interactionType:(KSAdInteractionType)interactType; +/** + * splash ad close conversion viewcontroller (no subsequent callbacks, remove & release KSSplashAdView here) + */ +- (void)ksad_splashAdDidCloseConversionVC:(KSSplashAdView *)splashAdView interactionType:(KSAdInteractionType)interactType; +/** + * splash ad play finished & auto dismiss (no subsequent callbacks, remove & release KSSplashAdView here) + */ +- (void)ksad_splashAdDidAutoDismiss:(KSSplashAdView *)splashAdView; +/** + * splash ad close by user (zoom out mode) (no subsequent callbacks, remove & release KSSplashAdView here) + */ +- (void)ksad_splashAdDidClose:(KSSplashAdView *)splashAdView; + +@end + +@interface KSSplashAdView : UIView + +@property (nonatomic, weak) id delegate; + +@property (nonatomic, weak) UIViewController *rootViewController; +/// max timeout interval, default is 3 +@property (nonatomic, assign) NSTimeInterval timeoutInterval; +/// need show mini window, default is NO +@property (nonatomic, assign) BOOL needShowMiniWindow; +/// in zoomout state +@property (nonatomic, assign, readonly) BOOL showingMiniWindow; +/// ad interaction type, avaliable after ksad_splashAdContentDidLoad: +@property (nonatomic, assign, readonly) KSAdInteractionType interactionType; +/// ad material type, avaliable after ksad_splashAdContentDidLoad: +@property (nonatomic, assign, readonly) KSAdMaterialType materialType; + +- (id)initWithPosId:(NSString *)posId; +- (void)setExtraData:(KSAdSplashAdExtraDataModel *)extraDataModel; +/// load ad data +- (void)loadAdData; +/// server bidding load ad data +- (void)loadAdDataWithResponse:(NSDictionary *)response; +/** + server bidding load ad data plan 2 + */ +- (void)loadAdDataWithResponseV2:(NSDictionary *)response; +/// show splash ad in view, should be called after ksad_splashAdContentDidLoad: +- (void)showInView:(UIView *)view; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSUPrivateDataController.h b/ios/SDK/KSAdSDK.framework/Headers/KSUPrivateDataController.h new file mode 100644 index 0000000..6e12b29 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSUPrivateDataController.h @@ -0,0 +1,31 @@ +// +// KSUPrivateDataController.h +// AFNetworking +// +// Created by chun on 2021/8/4. +// + +#import +#import + +@interface KSUPrivateDataController : NSObject + ++ (KSUPrivateDataController *)sharedInstance; + +//返回格式{"userSet":true|false,"value":"xxxx","errorCode":KSAdPrivateDataErrorCode} +//定义见:KSAdDeviceInfoEnum.h->KSAdPrivateDataErrorCode +- (NSString *)getIdfa; + +- (NSString *)getIdfv; + +- (NSString *)getIp; + +- (NSString *)getMac; +//value:{latitude:xxx, longitude:xxx} +- (NSString *)getLocation; +//value:{latitude:xxx, longitude:xxx},获取媒体设置的location +- (NSString *)getMediaLocation; +//value:[{ssid:xxx, bssid:xxx},...] +- (NSString *)getWifiList; + +@end diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSUSDKInfo.h b/ios/SDK/KSAdSDK.framework/Headers/KSUSDKInfo.h new file mode 100644 index 0000000..01106d8 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSUSDKInfo.h @@ -0,0 +1,53 @@ +// +// KSUSDKInfo.h +// KSUSDKInfo +// +// Created by Dylan Sun on 2021/6/9. +// + +#import +#import +#import "KSAdUserInfo.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, KSAdSDKType) { + KSAdSDKTypeAD = 1, // 广告联盟 SDK + KSAdSDKTypeCU = 2, // 内容联盟 SDK + KSAdSDKTypeEU = 3, // 直播电商 SDK + KSAdSDKTypePureCU = 4,// 纯内容联盟SDK,广告逻辑不执行不加载 +}; + +@interface KSUSDKInfo : NSObject + +// 用户兴趣标签 +@property (nonatomic, copy) NSString *appTag; +@property (nonatomic, copy, getter=appId) NSString *appId; +@property (nonatomic, copy, getter=getAppName) NSString *appName; +@property (nonatomic, assign) BOOL personalizedRecommendation; +@property (nonatomic, assign) BOOL programmaticRecommendation; +@property (nonatomic, copy) void (^userInfoBlock)(KSAdUserInfo *); +@property (nonatomic, readonly) KSAdUserInfo *userInfo; +#ifdef KSADIsDebugging +/// 只能调试使用,会直接覆盖currentApiHost的内容,线上严禁调用 +@property (nonatomic, copy) NSString *currentApiHostDebug; +#endif +@property (nonatomic, copy, readonly) NSString *currentApiHost; +@property (nonatomic, copy) NSString *currentEUApiHost; +@property (nonatomic, copy) NSString *currentLiveHost; + ++ (instancetype)sharedInstance; + ++ (NSString *)SDKVersion; + ++ (NSString *)TKVersion; + ++ (NSString *)protocolVersion; + ++ (KSAdSDKType)sdkType; + ++ (int64_t)sdkVersionCode; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSVideoAd.h b/ios/SDK/KSAdSDK.framework/Headers/KSVideoAd.h new file mode 100644 index 0000000..19272d2 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSVideoAd.h @@ -0,0 +1,42 @@ +// +// KSVideoAd.h +// KSAdSDK +// +// Created by 徐志军 on 2019/9/4. +// Copyright © 2019 KuaiShou. All rights reserved. +// + +#import +#import + +#import "KSAd.h" +#import "KSAdShowDirection.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface KSVideoAd : KSAd + +@property (nonatomic, readonly) BOOL isValid; +@property (nonatomic, assign) BOOL shouldMuted; +@property (nonatomic, assign) KSAdShowDirection showDirection; //显示方向 + +- (void)loadAdData; + +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController; +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController direction:(KSAdShowDirection)direction DEPRECATED_ATTRIBUTE; + +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController showScene:(nullable NSString *)showScene; +- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController showScene:(nullable NSString *)showScene direction:(KSAdShowDirection)direction DEPRECATED_ATTRIBUTE; + +/* + 这个是播放异常的时候,此方法不会自动调用,可以在 + - (void)rewardedVideoAdDidPlayFinish:(KSRewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error使用此方法 + */ +- (void)closeVideoAdWhenPlayError; + +// 是否是同一个有效广告 +- (BOOL)isSameValidVideoAd:(nullable KSVideoAd *)ad; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Headers/KSVideoAdView.h b/ios/SDK/KSAdSDK.framework/Headers/KSVideoAdView.h new file mode 100644 index 0000000..2275730 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/Headers/KSVideoAdView.h @@ -0,0 +1,24 @@ +// +// KSVideoAdView.h +// KSAdSDK +// +// Created by 徐志军 on 2019/10/16. +// Copyright © 2019 KuaiShou. All rights reserved. +// 本类仅用于feed和自渲染 + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface KSVideoAdView : UIView + +@property (nonatomic, assign, readwrite) BOOL videoSoundEnable; +@property (nonatomic, assign, readwrite) BOOL playFinished; +@property (nonatomic, assign, readwrite) BOOL playStarted; // 已经上报过播放开始 +@property (nonatomic, assign, readwrite) BOOL lastIsPlay; // YES:上次状态是播放 NO:上次状态是暂停 +// CoverView是否显示appIcon和appName +@property (nonatomic, assign, readwrite) BOOL isShowAppInfo; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/Info.plist b/ios/SDK/KSAdSDK.framework/Info.plist new file mode 100644 index 0000000..8297221 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSAdSDK b/ios/SDK/KSAdSDK.framework/KSAdSDK new file mode 100755 index 0000000..0495db0 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSAdSDK differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/Info.plist b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/Info.plist new file mode 100644 index 0000000..aa2e880 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_arrow@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_arrow@2x.png new file mode 100644 index 0000000..5967e07 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_arrow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_arrow@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_arrow@3x.png new file mode 100644 index 0000000..27d97d9 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_arrow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_circlePlayButton@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_circlePlayButton@2x.png new file mode 100644 index 0000000..35cb9bb Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_circlePlayButton@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_circlePlayButton@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_circlePlayButton@3x.png new file mode 100644 index 0000000..6dae194 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_circlePlayButton@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_normal_playButton@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_normal_playButton@2x.png new file mode 100644 index 0000000..4939570 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_normal_playButton@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_normal_playButton@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_normal_playButton@3x.png new file mode 100644 index 0000000..56234c7 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_normal_playButton@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_zoom_playButton@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_zoom_playButton@2x.png new file mode 100644 index 0000000..09836a4 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_zoom_playButton@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_zoom_playButton@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_zoom_playButton@3x.png new file mode 100644 index 0000000..1b0ab80 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_feed_zoom_playButton@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_playButton_black@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_playButton_black@2x.png new file mode 100644 index 0000000..3fddbc1 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_playButton_black@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_playButton_black@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_playButton_black@3x.png new file mode 100644 index 0000000..66ee81d Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kasd_playButton_black@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kscu_entry_feedLike@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kscu_entry_feedLike@2x.png new file mode 100644 index 0000000..9201dfd Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kscu_entry_feedLike@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kscu_entry_feedLike@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kscu_entry_feedLike@3x.png new file mode 100644 index 0000000..3313f19 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kscu_entry_feedLike@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kscu_entry_flare@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kscu_entry_flare@2x.png new file mode 100644 index 0000000..33df2f1 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kscu_entry_flare@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kscu_entry_flare@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kscu_entry_flare@3x.png new file mode 100644 index 0000000..5406136 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/icon_kscu_entry_flare@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/ksad_feed_placeholder@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/ksad_feed_placeholder@2x.png new file mode 100644 index 0000000..f9fd334 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/ksad_feed_placeholder@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/ksad_feed_placeholder@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/ksad_feed_placeholder@3x.png new file mode 100644 index 0000000..addbde4 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedEntryResource.bundle/ksad_feed_placeholder@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedPageResource.bundle/Info.plist b/ios/SDK/KSAdSDK.framework/KSUCTFeedPageResource.bundle/Info.plist new file mode 100644 index 0000000..ba09764 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedPageResource.bundle/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedPageResource.bundle/icon_kscu_feed_arrow_white@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedPageResource.bundle/icon_kscu_feed_arrow_white@2x.png new file mode 100644 index 0000000..35b1d3a Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedPageResource.bundle/icon_kscu_feed_arrow_white@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedPageResource.bundle/icon_kscu_feed_arrow_white@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedPageResource.bundle/icon_kscu_feed_arrow_white@3x.png new file mode 100644 index 0000000..0cf2b16 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedPageResource.bundle/icon_kscu_feed_arrow_white@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedPageResource.bundle/kscu_icon_playbutton_white@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedPageResource.bundle/kscu_icon_playbutton_white@2x.png new file mode 100644 index 0000000..241ae68 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedPageResource.bundle/kscu_icon_playbutton_white@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTFeedPageResource.bundle/kscu_icon_playbutton_white@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTFeedPageResource.bundle/kscu_icon_playbutton_white@3x.png new file mode 100644 index 0000000..250eefd Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTFeedPageResource.bundle/kscu_icon_playbutton_white@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/Info.plist b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/Info.plist new file mode 100644 index 0000000..8b0ab6e Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_detailreplay@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_detailreplay@2x.png new file mode 100644 index 0000000..1940d0f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_detailreplay@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_detailreplay@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_detailreplay@3x.png new file mode 100644 index 0000000..cc61773 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_detailreplay@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_fold@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_fold@2x.png new file mode 100644 index 0000000..ddc2916 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_fold@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_fold@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_fold@3x.png new file mode 100644 index 0000000..1617732 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_fold@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_like@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_like@2x.png new file mode 100644 index 0000000..4a2dea1 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_like@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_like@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_like@3x.png new file mode 100644 index 0000000..5fac39b Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_like@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_selectlike@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_selectlike@2x.png new file mode 100644 index 0000000..9eb1ce0 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_selectlike@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_selectlike@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_selectlike@3x.png new file mode 100644 index 0000000..ac6a186 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_selectlike@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_videosee@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_videosee@2x.png new file mode 100644 index 0000000..949fcc1 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_videosee@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_videosee@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_videosee@3x.png new file mode 100644 index 0000000..d915c1f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_videosee@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_view@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_view@2x.png new file mode 100644 index 0000000..d2c6ef5 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_view@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_view@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_view@3x.png new file mode 100644 index 0000000..b02798a Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHFeedResource.bundle/icon_kscu_horizontal_view@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/Info.plist b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/Info.plist new file mode 100644 index 0000000..cf32a37 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_ crown1@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_ crown1@2x.png new file mode 100644 index 0000000..21b5bda Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_ crown1@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_ crown1@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_ crown1@3x.png new file mode 100644 index 0000000..7a362a8 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_ crown1@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_ crown2@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_ crown2@2x.png new file mode 100644 index 0000000..d217c0a Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_ crown2@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_ crown2@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_ crown2@3x.png new file mode 100644 index 0000000..d88c600 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_ crown2@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_ crown3@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_ crown3@2x.png new file mode 100644 index 0000000..9610010 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_ crown3@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_ crown3@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_ crown3@3x.png new file mode 100644 index 0000000..90f8d5e Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_ crown3@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hot_fire@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hot_fire@2x.png new file mode 100644 index 0000000..65a67c9 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hot_fire@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hot_fire@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hot_fire@3x.png new file mode 100644 index 0000000..9bb6474 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hot_fire@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hotspot_back@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hotspot_back@2x.png new file mode 100644 index 0000000..3ae6fb1 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hotspot_back@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hotspot_back@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hotspot_back@3x.png new file mode 100644 index 0000000..9a2a712 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hotspot_back@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hotspot_down_arrow@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hotspot_down_arrow@2x.png new file mode 100644 index 0000000..929eb92 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hotspot_down_arrow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hotspot_down_arrow@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hotspot_down_arrow@3x.png new file mode 100644 index 0000000..ffa848f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hotspot_down_arrow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hotspot_up_arrow@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hotspot_up_arrow@2x.png new file mode 100644 index 0000000..6efc222 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hotspot_up_arrow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hotspot_up_arrow@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hotspot_up_arrow@3x.png new file mode 100644 index 0000000..ba20f3d Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTHotTopicResource.bundle/icon_kscu_hotspot_up_arrow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/Info.plist b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/Info.plist new file mode 100644 index 0000000..61a0d39 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageTextClose@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageTextClose@2x.png new file mode 100644 index 0000000..60bd9f0 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageTextClose@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageTextClose@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageTextClose@3x.png new file mode 100644 index 0000000..afc5e1c Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageTextClose@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_Download@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_Download@2x.png new file mode 100644 index 0000000..4e75b79 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_Download@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_Download@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_Download@3x.png new file mode 100644 index 0000000..b5bd059 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_Download@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_detail_arrow@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_detail_arrow@2x.png new file mode 100644 index 0000000..c5d0e65 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_detail_arrow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_detail_arrow@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_detail_arrow@3x.png new file mode 100644 index 0000000..52726a8 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_detail_arrow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_detail_back@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_detail_back@2x.png new file mode 100644 index 0000000..cf8741e Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_detail_back@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_detail_back@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_detail_back@3x.png new file mode 100644 index 0000000..027546c Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_detail_back@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_detail_more@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_detail_more@2x.png new file mode 100644 index 0000000..5aaa38d Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_detail_more@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_detail_more@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_detail_more@3x.png new file mode 100644 index 0000000..12703cb Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTImageTextResource.bundle/icon_kscu_imageText_detail_more@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/Info.plist b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/Info.plist new file mode 100644 index 0000000..9deae0f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_btn_arrow_gray_normal@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_btn_arrow_gray_normal@2x.png new file mode 100644 index 0000000..ab8d7fe Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_btn_arrow_gray_normal@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_btn_arrow_gray_normal@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_btn_arrow_gray_normal@3x.png new file mode 100644 index 0000000..b11d83d Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_btn_arrow_gray_normal@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_btn_arrow_normal@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_btn_arrow_normal@2x.png new file mode 100644 index 0000000..de06600 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_btn_arrow_normal@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_btn_arrow_normal@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_btn_arrow_normal@3x.png new file mode 100644 index 0000000..b4a5ce6 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_btn_arrow_normal@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_author@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_author@2x.png new file mode 100644 index 0000000..0186f82 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_author@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_author@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_author@3x.png new file mode 100644 index 0000000..fc5384b Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_author@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_author_default@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_author_default@2x.png new file mode 100644 index 0000000..4661436 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_author_default@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_author_default@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_author_default@3x.png new file mode 100644 index 0000000..bb916f2 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_author_default@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_close@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_close@2x.png new file mode 100644 index 0000000..183d6fd Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_close@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_close@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_close@3x.png new file mode 100644 index 0000000..d51df0d Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_close@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_dislike@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_dislike@2x.png new file mode 100644 index 0000000..4fbd31b Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_dislike@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_dislike@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_dislike@3x.png new file mode 100644 index 0000000..2f848d0 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_dislike@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_like@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_like@2x.png new file mode 100644 index 0000000..ea0f508 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_like@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_like@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_like@3x.png new file mode 100644 index 0000000..6bef3e4 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_comment_like@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_content_play@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_content_play@2x.png new file mode 100644 index 0000000..3077fc4 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_content_play@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_content_play@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_content_play@3x.png new file mode 100644 index 0000000..20fa4cd Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_content_play@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_bottomShadow@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_bottomShadow@2x.png new file mode 100644 index 0000000..b6a83bf Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_bottomShadow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_bottomShadow@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_bottomShadow@3x.png new file mode 100644 index 0000000..ac7eb55 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_bottomShadow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_comment@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_comment@2x.png new file mode 100644 index 0000000..13e400f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_comment@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_comment@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_comment@3x.png new file mode 100644 index 0000000..85efb76 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_comment@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_dislike@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_dislike@2x.png new file mode 100644 index 0000000..1bb6be3 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_dislike@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_dislike@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_dislike@3x.png new file mode 100644 index 0000000..69aa7fb Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_dislike@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_like@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_like@2x.png new file mode 100644 index 0000000..5647483 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_like@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_like@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_like@3x.png new file mode 100644 index 0000000..7a1f823 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_like@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_share@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_share@2x.png new file mode 100644 index 0000000..c43f84e Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_share@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_share@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_share@3x.png new file mode 100644 index 0000000..2530d35 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_share@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_topShadow@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_topShadow@2x.png new file mode 100644 index 0000000..2730637 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_topShadow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_topShadow@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_topShadow@3x.png new file mode 100644 index 0000000..f2f8456 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_ksad_CK_video_topShadow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_authorProfile_like@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_authorProfile_like@2x.png new file mode 100644 index 0000000..6083813 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_authorProfile_like@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_authorProfile_like@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_authorProfile_like@3x.png new file mode 100644 index 0000000..e50997c Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_authorProfile_like@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_authorprofile_triangle@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_authorprofile_triangle@2x.png new file mode 100644 index 0000000..b07b251 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_authorprofile_triangle@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_authorprofile_triangle@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_authorprofile_triangle@3x.png new file mode 100644 index 0000000..903d026 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_authorprofile_triangle@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_drawAdForceWatch@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_drawAdForceWatch@2x.png new file mode 100644 index 0000000..16599db Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_drawAdForceWatch@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_drawAdForceWatch@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_drawAdForceWatch@3x.png new file mode 100644 index 0000000..44fc164 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_drawAdForceWatch@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_draw_tag@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_draw_tag@2x.png new file mode 100644 index 0000000..e20590d Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_draw_tag@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_draw_tag@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_draw_tag@3x.png new file mode 100644 index 0000000..f962457 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_draw_tag@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_patchAd_close@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_patchAd_close@2x.png new file mode 100644 index 0000000..94a9e2b Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_patchAd_close@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_patchAd_close@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_patchAd_close@3x.png new file mode 100644 index 0000000..3fcc1c8 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_patchAd_close@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_patchAd_close_strong@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_patchAd_close_strong@2x.png new file mode 100644 index 0000000..8d505b8 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_patchAd_close_strong@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_patchAd_close_strong@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_patchAd_close_strong@3x.png new file mode 100644 index 0000000..0f88a5e Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_patchAd_close_strong@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_profile_nav_more@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_profile_nav_more@2x.png new file mode 100644 index 0000000..d566623 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_profile_nav_more@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_profile_nav_more@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_profile_nav_more@3x.png new file mode 100644 index 0000000..4554a1a Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_profile_nav_more@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_profile_shieldAuthor@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_profile_shieldAuthor@2x.png new file mode 100644 index 0000000..93ee897 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_profile_shieldAuthor@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_profile_shieldAuthor@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_profile_shieldAuthor@3x.png new file mode 100644 index 0000000..f4fd084 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_profile_shieldAuthor@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_relatedPlay@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_relatedPlay@2x.png new file mode 100644 index 0000000..6de517f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_relatedPlay@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_relatedPlay@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_relatedPlay@3x.png new file mode 100644 index 0000000..8c9d292 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_relatedPlay@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_relatedVideo@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_relatedVideo@2x.png new file mode 100644 index 0000000..0e4fe50 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_relatedVideo@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_relatedVideo@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_relatedVideo@3x.png new file mode 100644 index 0000000..6d40c9b Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_relatedVideo@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_relatedVideo_bottom@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_relatedVideo_bottom@2x.png new file mode 100644 index 0000000..0493a0b Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_relatedVideo_bottom@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_relatedVideo_bottom@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_relatedVideo_bottom@3x.png new file mode 100644 index 0000000..70cfe69 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_relatedVideo_bottom@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_slide_product_pause@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_slide_product_pause@2x.png new file mode 100644 index 0000000..278fe5d Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_slide_product_pause@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_slide_product_pause@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_slide_product_pause@3x.png new file mode 100644 index 0000000..12d637d Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_slide_product_pause@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_slide_product_play@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_slide_product_play@2x.png new file mode 100644 index 0000000..b2f38cb Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_slide_product_play@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_slide_product_play@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_slide_product_play@3x.png new file mode 100644 index 0000000..764edaf Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_slide_product_play@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_stayPopup_arrow@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_stayPopup_arrow@2x.png new file mode 100644 index 0000000..191305a Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_stayPopup_arrow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_stayPopup_arrow@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_stayPopup_arrow@3x.png new file mode 100644 index 0000000..573a549 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_stayPopup_arrow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_stayPopup_colorCircle_bg@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_stayPopup_colorCircle_bg@2x.png new file mode 100644 index 0000000..192dfbb Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_stayPopup_colorCircle_bg@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_stayPopup_colorCircle_bg@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_stayPopup_colorCircle_bg@3x.png new file mode 100644 index 0000000..918dcc1 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/icon_kscu_stayPopup_colorCircle_bg@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_authorProfile_avatarPlaceholder@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_authorProfile_avatarPlaceholder@2x.png new file mode 100644 index 0000000..52d7a16 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_authorProfile_avatarPlaceholder@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_authorProfile_avatarPlaceholder@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_authorProfile_avatarPlaceholder@3x.png new file mode 100644 index 0000000..c47f5d3 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_authorProfile_avatarPlaceholder@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_authorprofile_headerbg@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_authorprofile_headerbg@2x.png new file mode 100644 index 0000000..659cc8b Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_authorprofile_headerbg@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_authorprofile_headerbg@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_authorprofile_headerbg@3x.png new file mode 100644 index 0000000..1ee56d8 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_authorprofile_headerbg@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_comment_ad_close@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_comment_ad_close@2x.png new file mode 100644 index 0000000..098afd8 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_comment_ad_close@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_comment_ad_close@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_comment_ad_close@3x.png new file mode 100644 index 0000000..aabfbf2 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_comment_ad_close@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_comment_ad_link@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_comment_ad_link@2x.png new file mode 100644 index 0000000..fb9d5f0 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_comment_ad_link@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_comment_ad_link@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_comment_ad_link@3x.png new file mode 100644 index 0000000..7e37abf Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTPageSlideResource.bundle/kscu_comment_ad_link@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/Info.plist b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/Info.plist new file mode 100644 index 0000000..4f48f4c Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_ksad_theatre_more_arrow@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_ksad_theatre_more_arrow@2x.png new file mode 100644 index 0000000..cb2879b Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_ksad_theatre_more_arrow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_ksad_theatre_more_arrow@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_ksad_theatre_more_arrow@3x.png new file mode 100644 index 0000000..966f36c Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_ksad_theatre_more_arrow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_ksad_theatre_playcount@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_ksad_theatre_playcount@2x.png new file mode 100644 index 0000000..0af3201 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_ksad_theatre_playcount@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_ksad_theatre_playcount@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_ksad_theatre_playcount@3x.png new file mode 100644 index 0000000..6fd223c Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_ksad_theatre_playcount@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_error@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_error@2x.png new file mode 100644 index 0000000..e161401 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_error@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_error@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_error@3x.png new file mode 100644 index 0000000..915fa77 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_error@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_no_content@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_no_content@2x.png new file mode 100644 index 0000000..ff03332 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_no_content@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_no_content@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_no_content@3x.png new file mode 100644 index 0000000..088d46a Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_no_content@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_back_arrow@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_back_arrow@2x.png new file mode 100644 index 0000000..4bde0e1 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_back_arrow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_back_arrow@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_back_arrow@3x.png new file mode 100644 index 0000000..c01cd17 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_back_arrow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_entry_arrow@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_entry_arrow@2x.png new file mode 100644 index 0000000..918c08d Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_entry_arrow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_entry_arrow@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_entry_arrow@3x.png new file mode 100644 index 0000000..5dc4c44 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_entry_arrow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_entry_icon@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_entry_icon@2x.png new file mode 100644 index 0000000..c95b95c Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_entry_icon@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_entry_icon@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_entry_icon@3x.png new file mode 100644 index 0000000..6dbfabf Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_entry_icon@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_episode_entry_dark@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_episode_entry_dark@2x.png new file mode 100644 index 0000000..7a4069d Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_episode_entry_dark@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_episode_entry_dark@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_episode_entry_dark@3x.png new file mode 100644 index 0000000..b3abf7f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_episode_entry_dark@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_episode_entry_normal@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_episode_entry_normal@2x.png new file mode 100644 index 0000000..db0a05f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_episode_entry_normal@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_episode_entry_normal@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_episode_entry_normal@3x.png new file mode 100644 index 0000000..741e157 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_episode_entry_normal@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_episode_play@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_episode_play@2x.png new file mode 100644 index 0000000..d44c59d Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_episode_play@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_episode_play@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_episode_play@3x.png new file mode 100644 index 0000000..14a0283 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_episode_play@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_more_arrow@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_more_arrow@2x.png new file mode 100644 index 0000000..6f725b5 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_more_arrow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_more_arrow@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_more_arrow@3x.png new file mode 100644 index 0000000..36758b4 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_more_arrow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_navigation_back_dark@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_navigation_back_dark@2x.png new file mode 100644 index 0000000..223ab97 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_navigation_back_dark@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_navigation_back_dark@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_navigation_back_dark@3x.png new file mode 100644 index 0000000..bc3966d Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_navigation_back_dark@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_navigation_back_normal@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_navigation_back_normal@2x.png new file mode 100644 index 0000000..f9b2171 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_navigation_back_normal@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_navigation_back_normal@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_navigation_back_normal@3x.png new file mode 100644 index 0000000..f474977 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_navigation_back_normal@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_title_arrow@2x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_title_arrow@2x.png new file mode 100644 index 0000000..7ae4094 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_title_arrow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_title_arrow@3x.png b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_title_arrow@3x.png new file mode 100644 index 0000000..e564fde Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCTTubeResource.bundle/icon_kscu_tube_title_arrow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/Info.plist b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/Info.plist new file mode 100644 index 0000000..92f9ebd Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/cuckoo_fail_icon@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/cuckoo_fail_icon@3x.png new file mode 100644 index 0000000..514a831 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/cuckoo_fail_icon@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/cuckoo_fail_icon_white@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/cuckoo_fail_icon_white@2x.png new file mode 100644 index 0000000..62d8814 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/cuckoo_fail_icon_white@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/cuckoo_fail_icon_white@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/cuckoo_fail_icon_white@3x.png new file mode 100644 index 0000000..38366a0 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/cuckoo_fail_icon_white@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_AdCK_video_author_default@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_AdCK_video_author_default@2x.png new file mode 100644 index 0000000..3a83e1e Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_AdCK_video_author_default@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_AdCK_video_author_default@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_AdCK_video_author_default@3x.png new file mode 100644 index 0000000..e34ff7e Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_AdCK_video_author_default@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_CK_copyLink@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_CK_copyLink@2x.png new file mode 100644 index 0000000..dc09914 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_CK_copyLink@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_CK_copyLink@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_CK_copyLink@3x.png new file mode 100644 index 0000000..ff9cf4e Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_CK_copyLink@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_CK_copyLink_whiteBg@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_CK_copyLink_whiteBg@2x.png new file mode 100644 index 0000000..9fad7c8 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_CK_copyLink_whiteBg@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_CK_copyLink_whiteBg@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_CK_copyLink_whiteBg@3x.png new file mode 100644 index 0000000..e724920 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_CK_copyLink_whiteBg@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_logo_text_white@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_logo_text_white@2x.png new file mode 100644 index 0000000..aba6626 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_logo_text_white@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_logo_text_white@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_logo_text_white@3x.png new file mode 100644 index 0000000..f613ba3 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_logo_text_white@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_userPhotoDefault@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_userPhotoDefault@2x.png new file mode 100644 index 0000000..454b8f6 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_userPhotoDefault@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_userPhotoDefault@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_userPhotoDefault@3x.png new file mode 100644 index 0000000..ad63e4e Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_ksad_userPhotoDefault@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error0@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error0@2x.png new file mode 100644 index 0000000..3d0ff5f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error0@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error0@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error0@3x.png new file mode 100644 index 0000000..f39ba08 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error0@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error0_white@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error0_white@2x.png new file mode 100644 index 0000000..256df13 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error0_white@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error0_white@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error0_white@3x.png new file mode 100644 index 0000000..9320730 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error0_white@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error1@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error1@2x.png new file mode 100644 index 0000000..f5c2a99 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error1@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error1@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error1@3x.png new file mode 100644 index 0000000..51350eb Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error1@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error1_whiite@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error1_whiite@3x.png new file mode 100644 index 0000000..e258c72 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error1_whiite@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error1_white@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error1_white@2x.png new file mode 100644 index 0000000..21529f5 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_error1_white@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_feedError3@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_feedError3@2x.png new file mode 100644 index 0000000..21529f5 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_feedError3@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_feedError3@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_feedError3@3x.png new file mode 100644 index 0000000..3cb00ad Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_api_feedError3@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_close_gray@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_close_gray@2x.png new file mode 100644 index 0000000..3cc93ae Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_close_gray@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_close_gray@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_close_gray@3x.png new file mode 100644 index 0000000..8624f70 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_close_gray@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_close_gray_night@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_close_gray_night@2x.png new file mode 100644 index 0000000..ee85adf Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_close_gray_night@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_close_gray_night@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_close_gray_night@3x.png new file mode 100644 index 0000000..a224350 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_close_gray_night@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_common_navBack@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_common_navBack@2x.png new file mode 100644 index 0000000..3d6fc6f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_common_navBack@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_common_navBack@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_common_navBack@3x.png new file mode 100644 index 0000000..583f167 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_common_navBack@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_common_playGrayButton@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_common_playGrayButton@2x.png new file mode 100644 index 0000000..5852a81 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_common_playGrayButton@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_common_playGrayButton@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_common_playGrayButton@3x.png new file mode 100644 index 0000000..887d04a Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_common_playGrayButton@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_feed_like@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_feed_like@2x.png new file mode 100644 index 0000000..02d7534 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_feed_like@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_feed_like@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_feed_like@3x.png new file mode 100644 index 0000000..e013c25 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_feed_like@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_horizontal_detailpause@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_horizontal_detailpause@2x.png new file mode 100644 index 0000000..0bd80b3 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_horizontal_detailpause@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_horizontal_detailpause@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_horizontal_detailpause@3x.png new file mode 100644 index 0000000..29f5f30 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_horizontal_detailpause@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_horizontal_detailplay@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_horizontal_detailplay@2x.png new file mode 100644 index 0000000..93d2056 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_horizontal_detailplay@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_horizontal_detailplay@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_horizontal_detailplay@3x.png new file mode 100644 index 0000000..2f63114 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_horizontal_detailplay@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_kwai_logo@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_kwai_logo@2x.png new file mode 100644 index 0000000..ec4bf70 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_kwai_logo@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_kwai_logo@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_kwai_logo@3x.png new file mode 100644 index 0000000..d614a7a Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_kwai_logo@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_more_dislike@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_more_dislike@2x.png new file mode 100644 index 0000000..97951d0 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_more_dislike@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_more_dislike@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_more_dislike@3x.png new file mode 100644 index 0000000..66b1157 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_more_dislike@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_more_dislike_close@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_more_dislike_close@2x.png new file mode 100644 index 0000000..a575f33 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_more_dislike_close@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_more_dislike_close@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_more_dislike_close@3x.png new file mode 100644 index 0000000..5a6426a Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_more_dislike_close@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_more_dislike_whiteBg@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_more_dislike_whiteBg@2x.png new file mode 100644 index 0000000..6bcf19f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_more_dislike_whiteBg@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_more_dislike_whiteBg@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_more_dislike_whiteBg@3x.png new file mode 100644 index 0000000..b015a44 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_more_dislike_whiteBg@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_private_letters@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_private_letters@2x.png new file mode 100644 index 0000000..59f41f1 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_private_letters@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_private_letters@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_private_letters@3x.png new file mode 100644 index 0000000..8c337fa Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_private_letters@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_readfast_logo@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_readfast_logo@2x.png new file mode 100644 index 0000000..d8c9275 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_readfast_logo@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_readfast_logo@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_readfast_logo@3x.png new file mode 100644 index 0000000..d72b4d8 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_readfast_logo@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_shieldAuthor@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_shieldAuthor@2x.png new file mode 100644 index 0000000..226f5b8 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_shieldAuthor@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_shieldAuthor@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_shieldAuthor@3x.png new file mode 100644 index 0000000..3506d2c Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/icon_kscu_shieldAuthor@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/ksad_CK_comment_dislike_aninamtion.json b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/ksad_CK_comment_dislike_aninamtion.json new file mode 100644 index 0000000..72cb061 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/ksad_CK_comment_dislike_aninamtion.json @@ -0,0 +1 @@ +{"v":"5.6.8","fr":50,"ip":0,"op":20,"w":40,"h":40,"nm":"quxiaodianzan","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"hongxin 2","sr":1,"ks":{"o":{"a":0,"k":90,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[20,20.257,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.001,0.001,0.001],"y":[0,0,0]},"t":0,"s":[0,0,100],"e":[107,107,100]},{"i":{"x":[0.562,0.562,0.562],"y":[0.645,0.645,1.335]},"o":{"x":[0.187,0.187,0.187],"y":[0,0,0]},"t":8,"s":[107,107,100],"e":[100,100,100]},{"t":11}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,9.09],[4.63,-6.17],[0,-9.09]],"o":[[0,0],[0,-9.09],[-6.69,-6.17],[0,9.09]],"v":[[0.003,15.169],[16.453,-5.831],[0.003,-12.001],[-16.457,-5.831]],"c":true},"ix":2},"nm":"路径 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"rd","nm":"圆角 1","r":{"a":0,"k":1.543,"ix":1},"ix":2,"mn":"ADBE Vector Filter - RC","hd":false},{"ty":"fl","c":{"a":0,"k":[0.313725490196,0.313725490196,0.321568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"心","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":20,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/ksad_CK_comment_like_aninamtion.json b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/ksad_CK_comment_like_aninamtion.json new file mode 100644 index 0000000..3cc935a --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/ksad_CK_comment_like_aninamtion.json @@ -0,0 +1 @@ +{"v":"5.6.8","fr":50,"ip":0,"op":20,"w":40,"h":40,"nm":"dianzan","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":2,"ty":4,"nm":"hongxin","sr":1,"ks":{"o":{"a":0,"k":90,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[20,20.257,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.001,0.001,0.001],"y":[0,0,0]},"t":0,"s":[0,0,100],"e":[110,110,100]},{"i":{"x":[0.562,0.562,0.562],"y":[0.834,0.834,1.224]},"o":{"x":[0.187,0.187,0.187],"y":[0,0,0]},"t":6,"s":[110,110,100],"e":[100,100,100]},{"t":8}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,9.09],[4.63,-6.17],[0,-9.09]],"o":[[0,0],[0,-9.09],[-6.69,-6.17],[0,9.09]],"v":[[0.003,15.169],[16.453,-5.831],[0.003,-12.001],[-16.457,-5.831]],"c":true},"ix":2},"nm":"路径 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"rd","nm":"圆角 1","r":{"a":0,"k":1.543,"ix":1},"ix":2,"mn":"ADBE Vector Filter - RC","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078014374,0.172548994422,0.33333298564,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"心","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":20,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/ksad_CK_tap_like_animation.json b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/ksad_CK_tap_like_animation.json new file mode 100644 index 0000000..498876d --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/ksad_CK_tap_like_animation.json @@ -0,0 +1 @@ +{"v":"5.6.8","fr":50,"ip":0,"op":50,"w":344,"h":318,"nm":"xin","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"XIN","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25,"s":[100],"e":[0]},{"t":40}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[172,158.999,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[70,70,100],"e":[45,45,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":3,"s":[45,45,100],"e":[50,50,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[50,50,100],"e":[47,47,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":9,"s":[47,47,100],"e":[47,47,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":25,"s":[47,47,100],"e":[100,100,100]},{"t":40}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,95.26],[48.38,-64.67],[0,-95.25]],"o":[[0,0],[0,-95.25],[-69.87,-64.67],[0,95.26]],"v":[[0,159],[172,-61.1],[0,-125.78],[-172,-61.1]],"c":true},"ix":2},"nm":"路径 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"rd","nm":"圆角 1","r":{"a":0,"k":13.2,"ix":1},"ix":2,"mn":"ADBE Vector Filter - RC","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,1,0.428,0.606,0.5,0.982,0.306,0.477,1,0.965,0.184,0.349],"ix":9}},"s":{"a":0,"k":[-91.854,-70.854],"ix":5},"e":{"a":0,"k":[131.962,29.098],"ix":6},"t":2,"h":{"a":0,"k":0,"ix":7},"a":{"a":0,"k":0,"ix":8},"nm":"Gradient Fill","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"心备份","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":50,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/ksad_CK_video_dislike_aninamtion.json b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/ksad_CK_video_dislike_aninamtion.json new file mode 100644 index 0000000..184c15f --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/ksad_CK_video_dislike_aninamtion.json @@ -0,0 +1 @@ +{"v":"5.6.8","fr":50,"ip":0,"op":20,"w":110,"h":110,"nm":"quxiaodianzan","ddd":0,"assets":[{"id":"image_0","w":70,"h":70,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAABxLuKEAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAHq0lEQVR4nO2cbWwcxRnH/8/e2U7syCFOlLYmoSqkEOMXJUHCEqHQSHwoFJQQ15FAAiJeVVG5UlTx0toVoFapVEUKhX4ArFAJiSYYH3kxBgRSlYhigoIw8V0u7xaNc06cxI4jX+58tztPP+TW2d3bXe+db+cuLz9ppZu52Xn+8/fMzu7OnIHrXOc61/EPknweALDEePnEyjngTMxwwk14oePlZJKX4LZleNn6uZNqfGUFUbMAfkZALYAbABYApQGcZmAQREdVoXxZPvD+AJFjOKNo+3h3PDJfS6fvIyiNAG4mYDEY5QACICTAiBFwUgPt1xhflw9sPegxnvdGu32famxdEQA9QcAqgHP4q9I5jfBZWijvVYa3Dnk9K9247hcK4SlirMgpHtGIyhxKCXw4J9J12qaEqzlOgbLyLzatvXE2B//M4LvsTmA2n0PkFJgEA1+kgsHXZ3/3/v+chCWbWm+tYOpg8LKZxYOmgT6cCFS+Ma//X+N2Vdmq9JKnNrSuUQh/BDDbSZgXLOJTTErnQU101ke60sZiakPraoWoHeCKfOPZGHVBEG0M7v+gx6Z4ljnWYFlpran1OWI8n69AO8yi6UiSlbbK8NaTAOB3PI3w78Ma/m75YwAWc9yMMZlSCIFWDILHk8AfAoybyggdfscToC8PCW5zM8dkhPFzuuk3qwJMr/sl0khGsAYQAaz4GU83h4k+7b6NX1zX1SUsRRgAFL288ZsLdzxSE2D6K+C/KXoMZgSZOeB3PL1+Yv7VmoP4LRwmIMUmj6pSWhuAOTJMKQZ6u4KgpyeXty6FzchRrJkjdS23EPDw1WqKzqX2cbAsTa/ZfZ/VY+YFlZbcbtyuXJhBIF6aaFx3NywdxGgM9S65vyzA9OurvbdYKQOesOaZeswvKyuXgXiePEnFhxmkgJtH6lsXwtBrTMYQo+la6y061QHcaUwbp2sqp0CDfEnFhxkUELgTTj2GGTdJV1UikIIl+kfAOisx5soWVDIwTNdW06xExNWS5ZQSNXAaSjbpawYCAsa09RozIldO6WBtu6WHkN0rwGsEc9tNxmjga9YYa9vNQwk4KVdO6WBtu9EYHmPtK8l6SoZM26fe4Jl6TBsOfc+Ec9JVFRkmnGvDoe+NeSZjuiIRoYF3y5VVfDTw7q5IxPSKUzeGMwcSQvuPbGHFxtDmKR+sN3S8ZfxUHxOGpSorIkwY3jJ+qg+W5ZOsO90NQ33phOBOacqKTEJw54ahPusyinlWyhzYNDa4k4lissQVCyaKbRob3Kkn4TQr6QVeiX2bnmD1qu81E6x2vhL7Ng2bJVrFkql/5lfPD+9kguddCVcaTBh69fzwThjabP76EtZ1FQKgjNY/3DyXgm9J0CmdcdaerYmEvgEgYBlGANg4XcPwmQFwTeSjvSkS2+RIlUeKxLaMKQwbUwD39y8MAN2Joc0MnPBNpWQYONGdGNp8OWmP624HZFYqT9SvWV6rlG3Blb6CQOCYSD+5OLL9O1wyRR9GOq6zkhEGwIsj2/snmd8tvFK5TDK/uziyvR/ZwyeLrDtfy+epoyXZ/yaD9xRUqUQYvKcl2f8mLO0yFTFges+ZwXa4HB0dRcOc2t1Ly2ffQ8D8QgmWgSAc+eji+d9tPLYvBftZKAsvmxPJePy37oHa5mDVe8RXhjlMOLdXjT+2Mtobg8feArhvZ3U0J1a3tvFHwUAnGBX2p5YIhMnTqvZ0bTQ0gBxMAbwvl5gqrY2GwuOsdcB5C2nxIfA4ax210VAYzqY4Mu19jCWtH6ImHPo8XqrmEDjOWkdNOPQ5zNcUuzbZ4mW6tqanjupw6OOSMydjSnU49DHce0pO07UdTuYIlJo5BI5DtBtMcZqBptWayzXGLu+yORDtILJuDZUHkYhDtFcPdPfCbIqVGV9j3Co0PqpfGlYD3b1xaB1FMYdIxKF1GEwx9pJpZyDbKnOV4JCeeq46W7f6nnnB8r+BL//uwFcIiTE19dKC6I49MA9zII8hdLnafKTYp6fMGap/sO7HSuU/iHlBHvV7honOnhIX2xZFeqLIHj55mwLkt+3DKeCUsEWRnuh+deJxARzPo35PCOD4fnXicT9MAfLfDzOdOWJFtHd4lzq6XgXvyzOGIyp43y51dP2KaO+wHg8FNAWwf4jMBdehuO3sYDpJwU9XzZn/EwV06wxjAQBU4p4/nTn8wu9/+DoB95s3OOR5olAvnuyuO6Yj3tDy5CwKPA/m/HopkUiy9s+qcPcWZN+4FaSXmMLNtAKXurLMGbl9dXONUrGRkNsmawaNjYrJlxce2LEXEkwBCrvnzvXxAQAvPLBjbz+PPqoBA14r1YCBfh59VKYpwMyvMXY49UIGQG+fOR5PULDn3qr5NwRA9W4VpcBd7WcOv7h+sO8Csu9PfDMF8OdH5nb1Gu91ptatLjSsfaCKgu1gnmUuTck4q3+pDod6YX+B9dUUo2A/cPqFrun44faHfl6rzNqoALcAgACOxUTy5Z8e2HUE0w8dOOT5It7v+rPMuX/JEnqnoqEOAJ6ZDEc/OXrUzhBppugiZeBlaBmRPnSs+HHxdcLtj+D25O5W1jdkryx6+s8AGYpmCiDfmHzjSn87WMy1aK+xi/LK9P/ojIZJaPh6WQAAAABJRU5ErkJggg==","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"xin-red.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55,55,0],"ix":2},"a":{"a":0,"k":[35,35,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.602,0.602,0.58],"y":[0.985,0.985,1]},"o":{"x":[0.502,0.502,0.42],"y":[0.007,0.007,0]},"t":0,"s":[100,100,100],"e":[0,0,100]},{"t":10}],"ix":6}},"ao":0,"ip":0,"op":20,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/ksad_CK_video_like_aninamtion.json b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/ksad_CK_video_like_aninamtion.json new file mode 100644 index 0000000..219d286 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/ksad_CK_video_like_aninamtion.json @@ -0,0 +1 @@ +{"v":"5.6.8","fr":50,"ip":0,"op":40,"w":110,"h":110,"nm":"dianzandongxiao","ddd":0,"assets":[{"id":"image_0","w":70,"h":70,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAABxLuKEAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAHq0lEQVR4nO2cbWwcxRnH/8/e2U7syCFOlLYmoSqkEOMXJUHCEqHQSHwoFJQQ15FAAiJeVVG5UlTx0toVoFapVEUKhX4ArFAJiSYYH3kxBgRSlYhigoIw8V0u7xaNc06cxI4jX+58tztPP+TW2d3bXe+db+cuLz9ppZu52Xn+8/fMzu7OnIHrXOc61/EPknweALDEePnEyjngTMxwwk14oePlZJKX4LZleNn6uZNqfGUFUbMAfkZALYAbABYApQGcZmAQREdVoXxZPvD+AJFjOKNo+3h3PDJfS6fvIyiNAG4mYDEY5QACICTAiBFwUgPt1xhflw9sPegxnvdGu32famxdEQA9QcAqgHP4q9I5jfBZWijvVYa3Dnk9K9247hcK4SlirMgpHtGIyhxKCXw4J9J12qaEqzlOgbLyLzatvXE2B//M4LvsTmA2n0PkFJgEA1+kgsHXZ3/3/v+chCWbWm+tYOpg8LKZxYOmgT6cCFS+Ma//X+N2Vdmq9JKnNrSuUQh/BDDbSZgXLOJTTErnQU101ke60sZiakPraoWoHeCKfOPZGHVBEG0M7v+gx6Z4ljnWYFlpran1OWI8n69AO8yi6UiSlbbK8NaTAOB3PI3w78Ma/m75YwAWc9yMMZlSCIFWDILHk8AfAoybyggdfscToC8PCW5zM8dkhPFzuuk3qwJMr/sl0khGsAYQAaz4GU83h4k+7b6NX1zX1SUsRRgAFL288ZsLdzxSE2D6K+C/KXoMZgSZOeB3PL1+Yv7VmoP4LRwmIMUmj6pSWhuAOTJMKQZ6u4KgpyeXty6FzchRrJkjdS23EPDw1WqKzqX2cbAsTa/ZfZ/VY+YFlZbcbtyuXJhBIF6aaFx3NywdxGgM9S65vyzA9OurvbdYKQOesOaZeswvKyuXgXiePEnFhxmkgJtH6lsXwtBrTMYQo+la6y061QHcaUwbp2sqp0CDfEnFhxkUELgTTj2GGTdJV1UikIIl+kfAOisx5soWVDIwTNdW06xExNWS5ZQSNXAaSjbpawYCAsa09RozIldO6WBtu6WHkN0rwGsEc9tNxmjga9YYa9vNQwk4KVdO6WBtu9EYHmPtK8l6SoZM26fe4Jl6TBsOfc+Ec9JVFRkmnGvDoe+NeSZjuiIRoYF3y5VVfDTw7q5IxPSKUzeGMwcSQvuPbGHFxtDmKR+sN3S8ZfxUHxOGpSorIkwY3jJ+qg+W5ZOsO90NQ33phOBOacqKTEJw54ahPusyinlWyhzYNDa4k4lissQVCyaKbRob3Kkn4TQr6QVeiX2bnmD1qu81E6x2vhL7Ng2bJVrFkql/5lfPD+9kguddCVcaTBh69fzwThjabP76EtZ1FQKgjNY/3DyXgm9J0CmdcdaerYmEvgEgYBlGANg4XcPwmQFwTeSjvSkS2+RIlUeKxLaMKQwbUwD39y8MAN2Joc0MnPBNpWQYONGdGNp8OWmP624HZFYqT9SvWV6rlG3Blb6CQOCYSD+5OLL9O1wyRR9GOq6zkhEGwIsj2/snmd8tvFK5TDK/uziyvR/ZwyeLrDtfy+epoyXZ/yaD9xRUqUQYvKcl2f8mLO0yFTFges+ZwXa4HB0dRcOc2t1Ly2ffQ8D8QgmWgSAc+eji+d9tPLYvBftZKAsvmxPJePy37oHa5mDVe8RXhjlMOLdXjT+2Mtobg8feArhvZ3U0J1a3tvFHwUAnGBX2p5YIhMnTqvZ0bTQ0gBxMAbwvl5gqrY2GwuOsdcB5C2nxIfA4ax210VAYzqY4Mu19jCWtH6ImHPo8XqrmEDjOWkdNOPQ5zNcUuzbZ4mW6tqanjupw6OOSMydjSnU49DHce0pO07UdTuYIlJo5BI5DtBtMcZqBptWayzXGLu+yORDtILJuDZUHkYhDtFcPdPfCbIqVGV9j3Co0PqpfGlYD3b1xaB1FMYdIxKF1GEwx9pJpZyDbKnOV4JCeeq46W7f6nnnB8r+BL//uwFcIiTE19dKC6I49MA9zII8hdLnafKTYp6fMGap/sO7HSuU/iHlBHvV7honOnhIX2xZFeqLIHj55mwLkt+3DKeCUsEWRnuh+deJxARzPo35PCOD4fnXicT9MAfLfDzOdOWJFtHd4lzq6XgXvyzOGIyp43y51dP2KaO+wHg8FNAWwf4jMBdehuO3sYDpJwU9XzZn/EwV06wxjAQBU4p4/nTn8wu9/+DoB95s3OOR5olAvnuyuO6Yj3tDy5CwKPA/m/HopkUiy9s+qcPcWZN+4FaSXmMLNtAKXurLMGbl9dXONUrGRkNsmawaNjYrJlxce2LEXEkwBCrvnzvXxAQAvPLBjbz+PPqoBA14r1YCBfh59VKYpwMyvMXY49UIGQG+fOR5PULDn3qr5NwRA9W4VpcBd7WcOv7h+sO8Csu9PfDMF8OdH5nb1Gu91ptatLjSsfaCKgu1gnmUuTck4q3+pDod6YX+B9dUUo2A/cPqFrun44faHfl6rzNqoALcAgACOxUTy5Z8e2HUE0w8dOOT5It7v+rPMuX/JEnqnoqEOAJ6ZDEc/OXrUzhBppugiZeBlaBmRPnSs+HHxdcLtj+D25O5W1jdkryx6+s8AGYpmCiDfmHzjSn87WMy1aK+xi/LK9P/ojIZJaPh6WQAAAABJRU5ErkJggg==","e":1},{"id":"image_1","w":70,"h":70,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAABxLuKEAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAHlUlEQVR4nO2bXWgbVxqG36PRv2TLduzYEOwuLGZZQjABtYXWu/X2pjUtLJuyJksuSm9a77aBhRhvKbgXhS0OcfFNUnpRetFt3bohLl1oYG9cl3rphRu3aXZDAkFL/ZNWsRtbEzkaj3XOtxe25JnRjH7s0ZHa5IEBndFovve8+s43R2dGwH3uc5/7VA8m+XMAQBLj7SVWxQH3Y4YTxYS7Ha8ik8oJbnuMqqot4XD4t4qi9AL4JYBOAM0ABIAtAN8DuCGEuM45/8zn833NmGM4o2jbg9Lp9MFgMPikoihHAXQDeABAAIAC4C6AJQBLQohL2Wx21u/3/6fMeLaUMqbgfV3XH/b5fM8DeKKMzxtZBfCJpmlvh0KhhXI/tLW19bjX630JwEMVxvtBCPGBpmnvRyKR723eL2qOU6CC/ZlMpjMYDJ4G8FgF4uwQAC5ubm6OBoPB/zkdtLm5+Wu/3z8KIL7PeBzAP1RVHYvFYms279saZGeMdR/LZrMDiqL8HUBonyKNbAohziYSibPd3d26TbzXAQRdjLfOOX/V6/VOodCMAnMKTLC2Oed/9Xg8Qy4KtHJN07TnQqHQIgBIiPfO1atXXzt8+PCWZb/JnGLGyDAlx5qmaX/2+XwPKIpyutrBhBCfXbt27bli5piMML7WNO3JQCDwdlUVmuE7Gjwyggkh/nnhwoUXBwYGhOUtAnbNMGXOnTt3WqPR6CyABgkaa4YQYlxRlDdgHkYE2H87LBwOv4yfuSkA4PF4TqbT6SOwGTnMulNV1e6GhoZpuD/zrEuI6L8ej+cJWLKmIGMikcgJ3COmAABj7HAmk/kdLAliNIZdvHjR5/F4jknWVnMCgcAL1n2mjOnt7X0QQIs0RXUCY6x3ZWWlA4asMWVMMBg8Kl9WfdDY2PiosZ0zhgHAzi/XexKv1/sIDBcj01BijP1CvqT6gDH2K2PbNJQANMmVU1ccgEONAWMsJl1OncAYM110rPOYe2b+YoNibJiMIaKkXC31g7Xv1oyxWwK8VzD13WSMEOIHuVrqB2vfTcZwzhflyqkfrH03GZNOp2ekqqkjrH03GkODg4OXiOhHuZJqDxH9ODg4eAmWpU3j5tF1/bTP5zteI401YWtr60O/3/83bN/aIRjWY3JOUSaT+VdN1NWQnT7nPQAsQwkAxsfHvyCim5K11Qwiujk+Pv5Frpnbb1zazA+ndDp9IhKJvC5ZY03Y2Nh4JRqNvg/DMAJsMgYAjY2NfUREy5I1SoeIlsfGxj6CZRgBNovh2M2aP0UikVF5MuWzsbHxcjQa/QCWbAG2M8bupjaNjIycJ6Kf7YSPiBZHRkbOw6H/djfccncD2erq6m8OHDjwXrVF1oLV1dUTbW1ts9g2JpcxOQou1zC0qbW1dVbX9Xcl6JSKruvvtrW1/RuW4bOD451IMm4TExOjRPRdVZVKhIi+m5iYGIWln9bjij7tgG3jPMlkMn7w4MHzNsf/1KBbt279sb29/StsD5+CIZR7UerJAgIg2tvbv9I07S33dcpF07S3DKYUfdTMaozVvfzW399/hnM+7apSiXDOp/v7+8/AeQiZjConYwgAzczM8MnJyZOc8+tuCpYB5/z65OTkyZmZGY4idcVIOQ8nmn59X758+dCRI0c+YYy1uiG62hDR6pUrV37f09OzDPNEzjFbgOLF1NGcxcXFo4cOHfqQMRbYv/TqQUSby8vLxzs7O79GBaYA5RuTa+cnf2tra081NTWdLXGOWkLr6+svNTc3fwrzJK7kE5tA8RpjO+nLBWhubv5UVdVTTieuMaSq6qm9mgKUV3zt9hEAisViH9ehOaSq6qlYLPYxihfaii7XtoFsXuezp87MMZpizZKSdcVIuY+OOs5vYDbH+mioTISDKWUVWyuVFk6nKxUD4EmlUn9obGwcg6RndQ0IVVWH3DIF2J8xubbJnNu3bz/e1NR0jjHm5v8AHCEibX19/cWWlpZpFDcFNm1HKv1mna5U+WHV0tIyvbS0NEBEKxWeu2KIaGVpaWnAbVOAvaV8SXO6urq+nZ+fP8Y5v7GH85cF5/zG/Pz8sa6urm/hsinA3mtB0TkOAIrH44tTU1PPcM6/3GMMRzjnX05NTT0Tj8cX7WKX0CqFghqzsykAfAD8Q0NDEV3XzxHRTTc2XdfPDQ0NRQD4d2IohrhWPfvqmBvY/Ysl//MBALt79+5fQqHQKew9S0Umk3kjHA6/icIsAcyZse8sceuy6jTPya+ShcPhN5PJ5LNEZPf3u+InJ1pLJpPPGkwxrr7t+ZJcDDfnG8WKsgAgOjo6Zufm5p7mnH9T7kk559/Mzc093dHRMYvihthpqCvs6o4CwIudujM8PNygadqZUvVE07Qzw8PDDditJ17s1hTX6olMnIpy3hwAgVQqdVwIkbAaIoRIpFKp49j+X7XRFNeLbC0odsXyYsecRCLRk81mP8+Zks1mP08kEj3YNcWYJT95U3JYO2E7tPr6+oILCwvxhYWFeF9fXxDlDZ2qmiLL8VK/sYzHWJc2alJkZaai0809u2/faR3Frl0VZI9Ru3hOGipedXOTWhWvSuNKn5/UsqqXG7smk7b/AyxTv4omqCSYAAAAAElFTkSuQmCC","e":1},{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[100],"e":[0]},{"t":14}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.58,"y":1},"o":{"x":0.42,"y":0},"t":0,"s":[55,55,0],"e":[55,4,0],"to":[0,-8.5,0],"ti":[0,8.5,0]},{"t":11}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[0,0,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":10,"s":[100,100,100],"e":[0,0,100]},{"t":14}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[8,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.986474990845,0.170283004642,0.329833000898,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":50,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[100],"e":[0]},{"t":14}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.58,"y":1},"o":{"x":0.42,"y":0},"t":0,"s":[55,55,0],"e":[91.062,18.938,0],"to":[6.01,-6.01,0],"ti":[-6.01,6.01,0]},{"t":11}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[0,0,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":10,"s":[100,100,100],"e":[0,0,100]},{"t":14}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[8,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.986474990845,0.170283004642,0.329833000898,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-315,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":50,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[100],"e":[0]},{"t":14}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.58,"y":1},"o":{"x":0.42,"y":0},"t":0,"s":[55,55,0],"e":[106,55,0],"to":[8.5,0,0],"ti":[-8.5,0,0]},{"t":11}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[0,0,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":10,"s":[100,100,100],"e":[0,0,100]},{"t":14}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[8,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.986474990845,0.170283004642,0.329833000898,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"3","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":50,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[100],"e":[0]},{"t":14}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.58,"y":1},"o":{"x":0.42,"y":0},"t":0,"s":[55,55,0],"e":[91.062,91.062,0],"to":[6.01,6.01,0],"ti":[-6.01,-6.01,0]},{"t":11}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[0,0,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":10,"s":[100,100,100],"e":[0,0,100]},{"t":14}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[8,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.986474990845,0.170283004642,0.329833000898,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-315,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":50,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[100],"e":[0]},{"t":14}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.58,"y":1},"o":{"x":0.42,"y":0},"t":0,"s":[55,55,0],"e":[55,106,0],"to":[0,8.5,0],"ti":[0,-8.5,0]},{"t":11}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[0,0,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":10,"s":[100,100,100],"e":[0,0,100]},{"t":14}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[8,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.986474990845,0.170283004642,0.329833000898,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"5","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":50,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"6","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[100],"e":[0]},{"t":14}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.58,"y":1},"o":{"x":0.42,"y":0},"t":0,"s":[55,55,0],"e":[18.938,91.062,0],"to":[-6.01,6.01,0],"ti":[6.01,-6.01,0]},{"t":11}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[0,0,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":10,"s":[100,100,100],"e":[0,0,100]},{"t":14}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[8,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.986474990845,0.170283004642,0.329833000898,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-315,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"6","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":50,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"7","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[100],"e":[0]},{"t":14}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.58,"y":1},"o":{"x":0.42,"y":0},"t":0,"s":[55,55,0],"e":[4,55,0],"to":[-8.5,0,0],"ti":[8.5,0,0]},{"t":11}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[0,0,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":10,"s":[100,100,100],"e":[0,0,100]},{"t":14}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[8,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.986474990845,0.170283004642,0.329833000898,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"7","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":50,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"8","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[100],"e":[0]},{"t":14}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.58,"y":1},"o":{"x":0.42,"y":0},"t":0,"s":[55,55,0],"e":[18.938,18.938,0],"to":[-6.01,-6.01,0],"ti":[6.01,6.01,0]},{"t":11}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[0,0,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":10,"s":[100,100,100],"e":[0,0,100]},{"t":14}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[8,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.986474990845,0.170283004642,0.329833000898,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-315,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"8","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":50,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"xin-red.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55,55,0],"ix":2},"a":{"a":0,"k":[35,35,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.426,0.426,0.667],"y":[0.999,0.999,1]},"o":{"x":[0.632,0.632,0.84],"y":[0.011,0.011,0]},"t":6,"s":[0,0,100],"e":[113,113,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":16,"s":[113,113,100],"e":[93.969,93.969,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.386,0.386,0.333],"y":[-0.103,-0.103,0]},"t":23,"s":[93.969,93.969,100],"e":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.997]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":30,"s":[100,100,100],"e":[100,100,100]},{"t":35}],"ix":6}},"ao":0,"ip":6,"op":40,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"xin.png","cl":"png","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55,55,0],"ix":2},"a":{"a":0,"k":[35,35,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.84,0.84,0.84],"y":[0,0,0]},"t":0,"s":[100,100,100],"e":[0,0,100]},{"t":6}],"ix":6}},"ao":0,"ip":0,"op":6,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"dian","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55,55,0],"ix":2},"a":{"a":0,"k":[55,55,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":110,"h":110,"ip":11,"op":61,"st":11,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"da","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[55,55,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.177,0.177],"y":[1,1]},"o":{"x":[0.438,0.438],"y":[0,0]},"t":6,"s":[0,0],"e":[100,100]},{"t":22}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.988234996796,0.168626993895,0.329412013292,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.16],"y":[1]},"o":{"x":[0.383],"y":[0]},"t":6,"s":[28],"e":[0]},{"t":22}],"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"da","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":6,"op":40,"st":6,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/ksad_slide_updown_animation.json b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/ksad_slide_updown_animation.json new file mode 100644 index 0000000..07e4e83 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/ksad_slide_updown_animation.json @@ -0,0 +1,2 @@ +{"v":"5.1.16","fr":30,"ip":6,"op":42,"w":200,"h":500,"nm":"上滑 output","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"手势 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[0],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":12,"s":[100],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":35,"s":[100],"e":[0]},{"t":41}],"ix":11},"r":{"a":0,"k":-5,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.333,"y":0},"n":"0p2_1_0p333_0","t":12,"s":[100,394.5,0],"e":[100,266.5,0],"to":[0,-21.3333339691162,0],"ti":[0,21.3333339691162,0]},{"t":28}],"ix":2},"a":{"a":0,"k":[60.5,53,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"sy":[{"ty":0,"nm":"Stroke","c":{"a":0,"k":[0,0,0,1],"ix":2},"s":{"a":0,"k":2,"ix":3}}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.11,3.5],[0,0],[-3.449,-4.051],[-0.016,-0.018],[0,0],[0,0],[-3.944,3.359],[-3.328,-3.906],[-0.015,-0.017],[0,0],[0,0],[-3.903,3.275],[-0.092,0.072],[-3.439,-4.097],[0,0],[0,0],[-2.717,2.281],[-0.449,0.225],[-2.18,-3.985],[0,0],[16.917,-9.254],[6.11,0.132],[5.411,2.723],[18.318,9.72],[-1.721,4.191],[-4.184,-1.529],[0,0],[0,0]],"o":[[0,0],[4.051,-3.449],[0.015,0.017],[0,0],[0,0],[-3.33,-3.968],[3.907,-3.328],[0.015,0.018],[0,0],[0,0],[-3.275,-3.902],[0.089,-0.075],[4.226,-3.28],[0,0],[0,0],[-2.28,-2.718],[0.385,-0.323],[4.062,-2.032],[0,0],[9.255,16.918],[-5.362,2.932],[-9.226,-0.199],[-12.122,-6.098],[-4.002,-2.123],[1.692,-4.121],[0,0],[0,0],[-3.393,-4.198]],"v":[[-56.344,-49.69],[-56.344,-49.69],[-42.764,-48.6],[-42.719,-48.547],[-9.811,-9.328],[-15.666,-16.306],[-14.557,-29.547],[-1.458,-28.5],[-1.413,-28.447],[4.442,-21.469],[3.39,-22.723],[4.527,-35.717],[4.799,-35.937],[18.525,-34.473],[24.345,-27.537],[22.742,-29.446],[23.534,-38.497],[24.789,-39.321],[35.972,-35.823],[56.031,0.849],[42.156,48.238],[24.646,52.513],[2.69,48.13],[-42.97,24.403],[-46.991,13.275],[-36.469,8.634],[-15.465,16.31],[-57.632,-35.855]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[60.5,52.645],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":5,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":1841,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"NULL CONTROL","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[74,193,0],"ix":2},"a":{"a":0,"k":[60,60,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":450,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","parent":2,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":12,"s":[0],"e":[60]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p833_1_0p333_0"],"t":20,"s":[60],"e":[60]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p833_1_0p167_0"],"t":32,"s":[60],"e":[0]},{"t":37.599609375}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[32.5,224.564,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"sy":[{"ty":0,"nm":"Stroke","c":{"a":0,"k":[0,0,0,1],"ix":2},"s":{"a":0,"k":2,"ix":3}}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2,9],[-1,-131]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":20,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":5,"ix":4},"w":{"a":0,"k":24,"ix":5},"lc":2,"lj":1,"ml":4,"nm":"Stroke 2","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p2_1_0p333_0"],"t":15.6,"s":[0],"e":[100]},{"t":31.599609375}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p2_1_0p333_0"],"t":12,"s":[0],"e":[100]},{"t":28}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":450,"st":0,"bm":0}],"markers":[]} + diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/kscu_leftSlide_animation.json b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/kscu_leftSlide_animation.json new file mode 100644 index 0000000..a6ff2b5 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/kscu_leftSlide_animation.json @@ -0,0 +1 @@ +{"v":"5.6.8","fr":60,"ip":0,"op":80,"w":750,"h":300,"nm":"左滑引导","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"形状图层 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,90,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[-100,100,100],"ix":6}},"ao":0,"shapes":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-111.375,-56.25],[147.625,-56.5]],"c":false},"ix":2},"nm":"路径 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":60,"ix":4},"w":{"a":0,"k":32,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[0],"e":[100]},{"t":58}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":7,"s":[0],"e":[100]},{"t":58}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"修剪路径 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":80,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Path 6","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[1],"y":[-0.018]},"t":0,"s":[0],"e":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":7,"s":[100],"e":[100]},{"i":{"x":[0],"y":[1.035]},"o":{"x":[0.333],"y":[0]},"t":58,"s":[100],"e":[0]},{"t":72}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":7,"s":[-15],"e":[0]},{"t":65}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":7,"s":[511.681,85.487,0],"e":[238.681,85.487,0],"to":[-45.5,0,0],"ti":[45.5,0,0]},{"t":58}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.628,0.628,0.591],"y":[1,1,1]},"o":{"x":[0.497,0.497,0.25],"y":[0,0,0]},"t":0,"s":[-50,50,100],"e":[-48,48,100]},{"t":7}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-5.32,-0.04],[-0.1,-5.4],[0,0],[0,0],[-3.94,-2.07],[1.68,-4.24],[8.04,-18.61],[12.12,-2.36],[3.96,20.27],[0,0],[0,0.04],[-4.9,0.89],[-0.46,0],[0,-4.22],[0,0],[0,0],[0,0.02],[-4.68,-0.04],[0,-4.74],[0,0],[0,0],[0,0.04],[-4.7,-0.07],[0,-4.8],[0,0],[0,0],[0,0.03]],"o":[[5.4,0.04],[0,0],[0,0],[2.22,-3.86],[4.04,2.11],[-5.16,13.03],[-4.9,11.33],[-20.27,3.95],[0,0],[-0.01,-0.04],[-0.89,-4.9],[0.45,-0.08],[4.22,0],[0,0],[0,0],[0,-0.03],[0.05,-4.68],[4.73,0.04],[0,0],[0,0],[0,-0.05],[0.07,-4.71],[4.81,0.07],[0,0],[0,0],[0,-0.02],[0.04,-5.32]],"v":[[11.222,-67.729],[21.102,-57.959],[22.332,9.111],[33.492,-10.279],[44.532,-13.479],[48.682,-2.309],[28.882,45.151],[1.702,67.031],[-42.168,37.481],[-49.138,1.701],[-49.158,1.581],[-41.888,-8.909],[-40.528,-9.029],[-32.888,-1.389],[-32.888,0.091],[-32.888,-9.989],[-32.888,-10.069],[-24.338,-18.459],[-15.788,-9.829],[-15.788,-7.159],[-15.788,-16.969],[-15.788,-17.099],[-7.138,-25.499],[1.522,-16.709],[1.522,-6.899],[1.522,-58.099],[1.522,-58.169]],"c":true}],"e":[{"i":[[-5.32,-0.04],[-0.1,-5.4],[0,0],[0,0],[-3.94,-2.07],[1.68,-4.24],[8.04,-18.61],[12.12,-2.36],[3.96,20.27],[0,0],[0,0.04],[-4.9,0.89],[-0.46,0],[0,-4.22],[0,0],[0,0],[0,0.02],[-4.68,-0.04],[0,-4.74],[0,0],[0,0],[0,0.04],[-4.7,-0.07],[0,-4.8],[0,0],[0,0],[0,0.03]],"o":[[5.4,0.04],[0,0],[0,0],[2.22,-3.86],[4.04,2.11],[-5.16,13.03],[-4.9,11.33],[-20.27,3.95],[0,0],[-0.01,-0.04],[-0.89,-4.9],[0.45,-0.08],[4.22,0],[0,0],[0,0],[0,-0.03],[0.05,-4.68],[4.73,0.04],[0,0],[0,0],[0,-0.05],[0.07,-4.71],[4.81,0.07],[0,0],[0,0],[0,-0.02],[0.04,-5.32]],"v":[[11.694,-65.969],[21.574,-56.199],[22.332,9.111],[33.492,-10.279],[44.532,-13.479],[48.682,-2.309],[28.882,45.151],[1.702,67.031],[-42.168,37.481],[-49.138,1.701],[-49.158,1.581],[-41.888,-8.909],[-40.528,-9.029],[-32.888,-1.389],[-32.888,0.091],[-32.888,-9.989],[-32.888,-10.069],[-24.338,-18.459],[-15.788,-9.829],[-15.788,-7.159],[-15.788,-16.969],[-15.788,-17.099],[-7.138,-25.499],[1.522,-16.709],[1.522,-6.899],[1.994,-56.339],[1.994,-56.409]],"c":true}]},{"t":7}],"ix":2},"nm":"路径 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"Path 6","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":80,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"预合成 2","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,150,0],"ix":2},"a":{"a":0,"k":[375,90,0],"ix":1},"s":{"a":0,"k":[130,130,100],"ix":6}},"ao":0,"w":750,"h":180,"ip":0,"op":80,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/kscu_redbag@2x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/kscu_redbag@2x.png new file mode 100644 index 0000000..ff67744 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/kscu_redbag@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/kscu_redbag@3x.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/kscu_redbag@3x.png new file mode 100644 index 0000000..80b3381 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/kscu_redbag@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_000.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_000.png new file mode 100644 index 0000000..2ac2a71 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_000.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_001.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_001.png new file mode 100644 index 0000000..2b5c995 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_001.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_002.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_002.png new file mode 100644 index 0000000..61f0aa3 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_002.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_003.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_003.png new file mode 100644 index 0000000..0d30fd7 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_003.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_004.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_004.png new file mode 100644 index 0000000..1d7a842 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_004.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_005.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_005.png new file mode 100644 index 0000000..fc40c4f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_005.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_006.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_006.png new file mode 100644 index 0000000..c95396f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_006.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_007.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_007.png new file mode 100644 index 0000000..98b040b Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_007.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_008.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_008.png new file mode 100644 index 0000000..1e1361c Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_008.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_009.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_009.png new file mode 100644 index 0000000..3de79f7 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_009.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_010.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_010.png new file mode 100644 index 0000000..1e851bf Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_010.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_011.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_011.png new file mode 100644 index 0000000..1e1093c Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_011.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_012.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_012.png new file mode 100644 index 0000000..02131da Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_012.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_013.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_013.png new file mode 100644 index 0000000..57e88ce Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_013.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_014.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_014.png new file mode 100644 index 0000000..b291efa Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_014.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_015.png b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_015.png new file mode 100644 index 0000000..2ac2a71 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUCUResource.bundle/thanos_loading_white_015.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUConversionResource.bundle/Info.plist b/ios/SDK/KSAdSDK.framework/KSUConversionResource.bundle/Info.plist new file mode 100644 index 0000000..ae2eb74 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUConversionResource.bundle/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSUConversionResource.bundle/icon_ad_shutdown@2x.png b/ios/SDK/KSAdSDK.framework/KSUConversionResource.bundle/icon_ad_shutdown@2x.png new file mode 100644 index 0000000..5113c7a Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUConversionResource.bundle/icon_ad_shutdown@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUConversionResource.bundle/icon_ad_shutdown@3x.png b/ios/SDK/KSAdSDK.framework/KSUConversionResource.bundle/icon_ad_shutdown@3x.png new file mode 100644 index 0000000..7f14b07 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUConversionResource.bundle/icon_ad_shutdown@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUConversionResource.bundle/icon_ksad_ad_free@2x.png b/ios/SDK/KSAdSDK.framework/KSUConversionResource.bundle/icon_ksad_ad_free@2x.png new file mode 100644 index 0000000..036da71 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUConversionResource.bundle/icon_ksad_ad_free@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUDrawAdResource.bundle/Info.plist b/ios/SDK/KSAdSDK.framework/KSUDrawAdResource.bundle/Info.plist new file mode 100644 index 0000000..3bd4a98 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUDrawAdResource.bundle/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSUDrawAdResource.bundle/icon_ksad_close_white@2x.png b/ios/SDK/KSAdSDK.framework/KSUDrawAdResource.bundle/icon_ksad_close_white@2x.png new file mode 100644 index 0000000..96f7759 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUDrawAdResource.bundle/icon_ksad_close_white@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUDrawAdResource.bundle/icon_ksad_close_white@3x.png b/ios/SDK/KSAdSDK.framework/KSUDrawAdResource.bundle/icon_ksad_close_white@3x.png new file mode 100644 index 0000000..937d1ac Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUDrawAdResource.bundle/icon_ksad_close_white@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUDrawAdResource.bundle/icon_ksad_video_play@2x.png b/ios/SDK/KSAdSDK.framework/KSUDrawAdResource.bundle/icon_ksad_video_play@2x.png new file mode 100644 index 0000000..3077fc4 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUDrawAdResource.bundle/icon_ksad_video_play@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUDrawAdResource.bundle/icon_ksad_video_play@3x.png b/ios/SDK/KSAdSDK.framework/KSUDrawAdResource.bundle/icon_ksad_video_play@3x.png new file mode 100644 index 0000000..20fa4cd Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUDrawAdResource.bundle/icon_ksad_video_play@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/Info.plist b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/Info.plist new file mode 100644 index 0000000..e0f9aa9 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_adUserPhotoDefault@2x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_adUserPhotoDefault@2x.png new file mode 100644 index 0000000..454b8f6 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_adUserPhotoDefault@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_adUserPhotoDefault@3x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_adUserPhotoDefault@3x.png new file mode 100644 index 0000000..ad63e4e Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_adUserPhotoDefault@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_dislike_black@2x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_dislike_black@2x.png new file mode 100644 index 0000000..b7ea4e4 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_dislike_black@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_dislike_black@3x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_dislike_black@3x.png new file mode 100644 index 0000000..2f8febb Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_dislike_black@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_dislike_white.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_dislike_white.png new file mode 100644 index 0000000..a799f1b Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_dislike_white.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_dislike_white@2x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_dislike_white@2x.png new file mode 100644 index 0000000..068626d Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_dislike_white@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_dislike_white@3x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_dislike_white@3x.png new file mode 100644 index 0000000..db6881a Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_dislike_white@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedBlackArrow@2x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedBlackArrow@2x.png new file mode 100644 index 0000000..5c123e0 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedBlackArrow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedBlackArrow@3x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedBlackArrow@3x.png new file mode 100644 index 0000000..d57cad7 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedBlackArrow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedBlackDownload@2x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedBlackDownload@2x.png new file mode 100644 index 0000000..1d1c265 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedBlackDownload@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedBlackDownload@3x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedBlackDownload@3x.png new file mode 100644 index 0000000..64d48db Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedBlackDownload@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedGrayClose@2x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedGrayClose@2x.png new file mode 100644 index 0000000..cad1812 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedGrayClose@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedGrayClose@3x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedGrayClose@3x.png new file mode 100644 index 0000000..6e56b87 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedGrayClose@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedWhiteArrow@2x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedWhiteArrow@2x.png new file mode 100644 index 0000000..500100b Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedWhiteArrow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedWhiteArrow@3x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedWhiteArrow@3x.png new file mode 100644 index 0000000..5f26d11 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedWhiteArrow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedWhiteDownload@2x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedWhiteDownload@2x.png new file mode 100644 index 0000000..4e75b79 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedWhiteDownload@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedWhiteDownload@3x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedWhiteDownload@3x.png new file mode 100644 index 0000000..b5bd059 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_feedWhiteDownload@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_hand_click@2x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_hand_click@2x.png new file mode 100644 index 0000000..92343c5 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_hand_click@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_hand_click@3x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_hand_click@3x.png new file mode 100644 index 0000000..e8b33bf Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_hand_click@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_leftImage_dislike@2x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_leftImage_dislike@2x.png new file mode 100644 index 0000000..b40c290 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_leftImage_dislike@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_leftImage_dislike@3x.png b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_leftImage_dislike@3x.png new file mode 100644 index 0000000..a564088 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUFeedAdResource.bundle/icon_ksad_leftImage_dislike@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/Info.plist b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/Info.plist new file mode 100644 index 0000000..dcd6e26 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ad_interstitial_shutdown@2x.png b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ad_interstitial_shutdown@2x.png new file mode 100644 index 0000000..97bdb35 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ad_interstitial_shutdown@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ad_interstitial_shutdown@3x.png b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ad_interstitial_shutdown@3x.png new file mode 100644 index 0000000..66bf179 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ad_interstitial_shutdown@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstital_double_arrow@2x.png b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstital_double_arrow@2x.png new file mode 100644 index 0000000..44a4d9a Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstital_double_arrow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstital_double_arrow@3x.png b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstital_double_arrow@3x.png new file mode 100644 index 0000000..f594479 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstital_double_arrow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstitiaPlay@2x.png b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstitiaPlay@2x.png new file mode 100644 index 0000000..6c91abf Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstitiaPlay@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstitiaPlay@3x.png b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstitiaPlay@3x.png new file mode 100644 index 0000000..3757fc3 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstitiaPlay@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstitiaShutDown@2x.png b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstitiaShutDown@2x.png new file mode 100644 index 0000000..5113c7a Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstitiaShutDown@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstitiaShutDown@3x.png b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstitiaShutDown@3x.png new file mode 100644 index 0000000..7f14b07 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstitiaShutDown@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstitial_exit_popup_arrow@2x.png b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstitial_exit_popup_arrow@2x.png new file mode 100644 index 0000000..d4409c5 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstitial_exit_popup_arrow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstitial_exit_popup_arrow@3x.png b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstitial_exit_popup_arrow@3x.png new file mode 100644 index 0000000..8328e99 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUInterstitialAdResource.bundle/icon_ksad_interstitial_exit_popup_arrow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/Info.plist b/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/Info.plist new file mode 100644 index 0000000..1d7da19 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/icon_ksad_native_close_normal@2x.png b/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/icon_ksad_native_close_normal@2x.png new file mode 100644 index 0000000..fad7e72 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/icon_ksad_native_close_normal@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/icon_ksad_native_close_normal@3x.png b/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/icon_ksad_native_close_normal@3x.png new file mode 100644 index 0000000..cf111c0 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/icon_ksad_native_close_normal@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/icon_ksad_recommend_logo@2x.png b/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/icon_ksad_recommend_logo@2x.png new file mode 100644 index 0000000..0fdc42c Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/icon_ksad_recommend_logo@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/icon_ksad_recommend_logo@3x.png b/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/icon_ksad_recommend_logo@3x.png new file mode 100644 index 0000000..ea25588 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/icon_ksad_recommend_logo@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/icon_ksad_recommend_text@2x.png b/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/icon_ksad_recommend_text@2x.png new file mode 100644 index 0000000..0ab598f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/icon_ksad_recommend_text@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/icon_ksad_recommend_text@3x.png b/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/icon_ksad_recommend_text@3x.png new file mode 100644 index 0000000..c254bac Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSURefluxAdResource.bundle/icon_ksad_recommend_text@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/Info.plist b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/Info.plist new file mode 100644 index 0000000..f2c29ab Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_arrow@2x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_arrow@2x.png new file mode 100644 index 0000000..3634f5a Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_arrow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_arrow@3x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_arrow@3x.png new file mode 100644 index 0000000..3f7a708 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_arrow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_button@2x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_button@2x.png new file mode 100644 index 0000000..eeb3be2 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_button@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_button@3x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_button@3x.png new file mode 100644 index 0000000..7a26e3e Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_button@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_close@2x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_close@2x.png new file mode 100644 index 0000000..1cd0a7f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_close@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_close@3x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_close@3x.png new file mode 100644 index 0000000..0185299 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_close@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_end_close@2x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_end_close@2x.png new file mode 100644 index 0000000..e812174 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_end_close@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_end_close@3x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_end_close@3x.png new file mode 100644 index 0000000..5575237 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_end_close@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_end_title@2x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_end_title@2x.png new file mode 100644 index 0000000..4f107d8 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_end_title@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_end_title@3x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_end_title@3x.png new file mode 100644 index 0000000..fc15749 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_end_title@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_giftBox@2x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_giftBox@2x.png new file mode 100644 index 0000000..f7c06f1 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_giftBox@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_mute@2x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_mute@2x.png new file mode 100644 index 0000000..c9f75aa Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_mute@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_mute@3x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_mute@3x.png new file mode 100644 index 0000000..9624cbb Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_mute@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_mute_h@2x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_mute_h@2x.png new file mode 100644 index 0000000..fa63881 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_mute_h@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_mute_h@3x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_mute_h@3x.png new file mode 100644 index 0000000..4f04228 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_mute_h@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_rotate_arrow@2x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_rotate_arrow@2x.png new file mode 100644 index 0000000..6843b44 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_rotate_arrow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_rotate_arrow@3x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_rotate_arrow@3x.png new file mode 100644 index 0000000..596759b Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_rotate_arrow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_rotate_phone@2x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_rotate_phone@2x.png new file mode 100644 index 0000000..de34bd1 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_rotate_phone@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_rotate_phone@3x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_rotate_phone@3x.png new file mode 100644 index 0000000..087d242 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_rotate_phone@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_shake_phone1@2x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_shake_phone1@2x.png new file mode 100644 index 0000000..c2e1faf Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_shake_phone1@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_shake_phone1@3x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_shake_phone1@3x.png new file mode 100644 index 0000000..6c8525c Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_shake_phone1@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_unmute@2x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_unmute@2x.png new file mode 100644 index 0000000..c58eba4 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_unmute@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_unmute@3x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_unmute@3x.png new file mode 100644 index 0000000..c773d0c Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_unmute@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_unmute_h@2x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_unmute_h@2x.png new file mode 100644 index 0000000..73076b4 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_unmute_h@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_unmute_h@3x.png b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_unmute_h@3x.png new file mode 100644 index 0000000..87c3583 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUSplashAdResource.bundle/icon_ksad_splash_unmute_h@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/Info.plist b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/Info.plist new file mode 100644 index 0000000..33fdd08 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ad_mute@2x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ad_mute@2x.png new file mode 100644 index 0000000..b94c288 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ad_mute@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ad_mute@3x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ad_mute@3x.png new file mode 100644 index 0000000..2b3779c Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ad_mute@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ad_sound@2x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ad_sound@2x.png new file mode 100644 index 0000000..1e20d6f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ad_sound@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ad_sound@3x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ad_sound@3x.png new file mode 100644 index 0000000..e20214d Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ad_sound@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ad_white_right_arrow@2x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ad_white_right_arrow@2x.png new file mode 100644 index 0000000..bc6cffb Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ad_white_right_arrow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ad_white_right_arrow@3x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ad_white_right_arrow@3x.png new file mode 100644 index 0000000..bb4f062 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ad_white_right_arrow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_back_highlight@2x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_back_highlight@2x.png new file mode 100644 index 0000000..b089eaf Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_back_highlight@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_back_highlight@3x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_back_highlight@3x.png new file mode 100644 index 0000000..d5bdc63 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_back_highlight@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_back_normal@2x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_back_normal@2x.png new file mode 100644 index 0000000..5c19232 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_back_normal@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_back_normal@3x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_back_normal@3x.png new file mode 100644 index 0000000..aad4d91 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_back_normal@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_close_highlight@2x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_close_highlight@2x.png new file mode 100644 index 0000000..f4f300d Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_close_highlight@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_close_highlight@3x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_close_highlight@3x.png new file mode 100644 index 0000000..80074e2 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_close_highlight@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_close_normal@2x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_close_normal@2x.png new file mode 100644 index 0000000..85e7a48 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_close_normal@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_close_normal@3x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_close_normal@3x.png new file mode 100644 index 0000000..b9ad54e Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_H5_nav_close_normal@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_app_icon_default@2x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_app_icon_default@2x.png new file mode 100644 index 0000000..7644a73 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_app_icon_default@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_app_icon_default@3x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_app_icon_default@3x.png new file mode 100644 index 0000000..9f747c8 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_app_icon_default@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_hand@2x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_hand@2x.png new file mode 100644 index 0000000..9df4fb7 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_hand@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_hand@3x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_hand@3x.png new file mode 100644 index 0000000..0186056 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_hand@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_logo_gray@2x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_logo_gray@2x.png new file mode 100644 index 0000000..956984f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_logo_gray@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_logo_gray@3x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_logo_gray@3x.png new file mode 100644 index 0000000..ca3a1ce Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_logo_gray@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_logo_white@2x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_logo_white@2x.png new file mode 100644 index 0000000..33814f1 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_logo_white@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_logo_white@3x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_logo_white@3x.png new file mode 100644 index 0000000..094b17c Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_logo_white@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_shake_phone@2x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_shake_phone@2x.png new file mode 100644 index 0000000..a73bab4 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_shake_phone@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_shake_phone@3x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_shake_phone@3x.png new file mode 100644 index 0000000..f1d2f38 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_shake_phone@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_star_all@2x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_star_all@2x.png new file mode 100644 index 0000000..f61a81d Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_star_all@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_star_all@3x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_star_all@3x.png new file mode 100644 index 0000000..7f854ee Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_star_all@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_star_gray@2x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_star_gray@2x.png new file mode 100644 index 0000000..12e4800 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_star_gray@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_star_gray@3x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_star_gray@3x.png new file mode 100644 index 0000000..0695d45 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_star_gray@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_star_half@2x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_star_half@2x.png new file mode 100644 index 0000000..64b5169 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_star_half@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_star_half@3x.png b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_star_half@3x.png new file mode 100644 index 0000000..679f443 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUUIResource.bundle/icon_ksad_star_half@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/Info.plist b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/Info.plist new file mode 100644 index 0000000..494e1e3 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_gift@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_gift@2x.png new file mode 100644 index 0000000..71a5ff6 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_gift@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_gift@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_gift@3x.png new file mode 100644 index 0000000..2d60d36 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_gift@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_present@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_present@2x.png new file mode 100644 index 0000000..6432848 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_present@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_present@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_present@3x.png new file mode 100644 index 0000000..84668e4 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_present@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_reward_task_gift@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_reward_task_gift@2x.png new file mode 100644 index 0000000..c777616 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_reward_task_gift@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_reward_task_gift@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_reward_task_gift@3x.png new file mode 100644 index 0000000..cfc6a95 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_reward_task_gift@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_skip@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_skip@2x.png new file mode 100644 index 0000000..ecc6124 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_skip@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_skip@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_skip@3x.png new file mode 100644 index 0000000..19f4c6a Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ad_skip@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_browse_close@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_browse_close@2x.png new file mode 100644 index 0000000..56fbd51 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_browse_close@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_browse_line@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_browse_line@2x.png new file mode 100644 index 0000000..beb74c6 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_browse_line@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_button_spotlight@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_button_spotlight@2x.png new file mode 100644 index 0000000..35aa18f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_button_spotlight@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_button_spotlight@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_button_spotlight@3x.png new file mode 100644 index 0000000..bef3ace Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_button_spotlight@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_check@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_check@2x.png new file mode 100644 index 0000000..32d390f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_check@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_check@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_check@3x.png new file mode 100644 index 0000000..00c0c16 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_check@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_playable_game@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_playable_game@2x.png new file mode 100644 index 0000000..ba58db2 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_playable_game@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_playable_game@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_playable_game@3x.png new file mode 100644 index 0000000..ec4fc5d Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_playable_game@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_playagain_topbg.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_playagain_topbg.png new file mode 100644 index 0000000..6ca5ffe Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_playagain_topbg.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_videoAdShutdown@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_videoAdShutdown@2x.png new file mode 100644 index 0000000..5113c7a Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_videoAdShutdown@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_videoAdShutdown@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_videoAdShutdown@3x.png new file mode 100644 index 0000000..7f14b07 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_videoAdShutdown@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_videoAlert_arrow@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_videoAlert_arrow@2x.png new file mode 100644 index 0000000..5e2398e Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_videoAlert_arrow@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_videoAlert_arrow@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_videoAlert_arrow@3x.png new file mode 100644 index 0000000..145ca74 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_videoAlert_arrow@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_videoAlert_close@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_videoAlert_close@2x.png new file mode 100644 index 0000000..dcb3c0f Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_videoAlert_close@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_videoAlert_close@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_videoAlert_close@3x.png new file mode 100644 index 0000000..d374c91 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoAdResource.bundle/icon_ksad_videoAlert_close@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/Info.plist b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/Info.plist new file mode 100644 index 0000000..1394dbb Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_back@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_back@2x.png new file mode 100644 index 0000000..d6a80ee Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_back@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_back@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_back@3x.png new file mode 100644 index 0000000..fa3c06d Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_back@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_pause@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_pause@2x.png new file mode 100644 index 0000000..36078a0 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_pause@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_pause@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_pause@3x.png new file mode 100644 index 0000000..7748c72 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_pause@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_pause_small@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_pause_small@2x.png new file mode 100644 index 0000000..c46d986 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_pause_small@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_pause_small@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_pause_small@3x.png new file mode 100644 index 0000000..9490aa6 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_pause_small@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_play@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_play@2x.png new file mode 100644 index 0000000..5ce3d80 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_play@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_play@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_play@3x.png new file mode 100644 index 0000000..25a1109 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_play@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_play_big@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_play_big@2x.png new file mode 100644 index 0000000..6c91abf Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_play_big@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_play_big@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_play_big@3x.png new file mode 100644 index 0000000..3757fc3 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_play_big@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_play_small@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_play_small@2x.png new file mode 100644 index 0000000..83f789c Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_play_small@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_play_small@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_play_small@3x.png new file mode 100644 index 0000000..61e1587 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_play_small@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_video_close@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_video_close@2x.png new file mode 100644 index 0000000..3068c81 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_video_close@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_video_close@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_video_close@3x.png new file mode 100644 index 0000000..57611d0 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_video_close@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_zoomIn@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_zoomIn@2x.png new file mode 100644 index 0000000..5c4c685 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_zoomIn@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_zoomIn@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_zoomIn@3x.png new file mode 100644 index 0000000..26e6377 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_zoomIn@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_zoomOut@2x.png b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_zoomOut@2x.png new file mode 100644 index 0000000..7e013f1 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_zoomOut@2x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_zoomOut@3x.png b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_zoomOut@3x.png new file mode 100644 index 0000000..44566be Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUVideoViewResource.bundle/icon_ksad_zoomOut@3x.png differ diff --git a/ios/SDK/KSAdSDK.framework/KSUWebCacheResource.bundle/Info.plist b/ios/SDK/KSAdSDK.framework/KSUWebCacheResource.bundle/Info.plist new file mode 100644 index 0000000..2bd0031 Binary files /dev/null and b/ios/SDK/KSAdSDK.framework/KSUWebCacheResource.bundle/Info.plist differ diff --git a/ios/SDK/KSAdSDK.framework/KSUWebCacheResource.bundle/KSAdWKJSBridge.js b/ios/SDK/KSAdSDK.framework/KSUWebCacheResource.bundle/KSAdWKJSBridge.js new file mode 100644 index 0000000..e175742 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/KSUWebCacheResource.bundle/KSAdWKJSBridge.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define("lib/fetch.js",t):(e="undefined"!=typeof globalThis?globalThis:e||self).KSAdWKJSBridge=t()}(this,function(){"use strict";var t,o,s="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof self&&self||void 0!==s&&s,c={searchParams:"URLSearchParams"in s,iterable:"Symbol"in s&&"iterator"in Symbol,blob:"FileReader"in s&&"Blob"in s&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in s,arrayBuffer:"ArrayBuffer"in s};function r(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e)||""===e)throw new TypeError('Invalid character in header field name: "'+e+'"');return e.toLowerCase()}function d(e){return e="string"!=typeof e?String(e):e}function e(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return c.iterable&&(e[Symbol.iterator]=function(){return e}),e}function l(t){this.map={},t instanceof l?t.forEach(function(e,t){this.append(t,e)},this):Array.isArray(t)?t.forEach(function(e){this.append(e[0],e[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function n(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function a(o){return new Promise(function(e,t){o.onload=function(){e(o.result)},o.onerror=function(){t(o.error)}})}function i(e){var t=new FileReader,o=a(t);return t.readAsArrayBuffer(e),o}function u(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function f(){return this.bodyUsed=!1,this._initBody=function(e){var t;this.bodyUsed=this.bodyUsed,(this._bodyInit=e)?"string"==typeof e?this._bodyText=e:c.blob&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:c.formData&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:c.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():c.arrayBuffer&&c.blob&&((t=e)&&DataView.prototype.isPrototypeOf(t))?(this._bodyArrayBuffer=u(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):c.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(e)||o(e))?this._bodyArrayBuffer=u(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):c.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},c.blob&&(this.blob=function(){var e=n(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){if(this._bodyArrayBuffer){var e=n(this);return e?e:ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer)}return this.blob().then(i)}),this.text=function(){var e,t,o=n(this);if(o)return o;if(this._bodyBlob)return e=this._bodyBlob,t=new FileReader,o=a(t),t.readAsText(e),o;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),o=new Array(t.length),r=0;r=e.length?void 0:e)&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(e.entries()),d=c.next();!d.done;d=c.next()){var l,a=(l=d.value)[0],i=l[1];t&&t(a,i,null)}}catch(e){o={error:e}}finally{try{d&&!d.done&&(r=c.return)&&r.call(c)}finally{if(o)throw o.error}}},H);function H(){}var C=(x.convertArrayBufferToBase64=function(e){for(var t=new Uint8Array(e),o="",r=t.byteLength,n=0;n) && !TARGET_IPHONE_SIMULATOR + #ifndef KSCU_IMPORT_KSMediaPlayer + #define KSCU_IMPORT_KSMediaPlayer 1 + #endif +#else + #ifndef KSCU_IMPORT_KSMediaPlayer + #define KSCU_IMPORT_KSMediaPlayer 0 + #endif +#endif + +#if KSCU_IMPORT_KSMediaPlayer + +#import +#import + +NS_ASSUME_NONNULL_BEGIN +/// 集成 KSMediaPlayer 播放器 +@interface KSCUMediaPlayer : NSObject + ++ (void)configNativeCache; + +@end + +NS_ASSUME_NONNULL_END +#endif + diff --git a/ios/SDK/KSAdSDK.framework/PrivateHeaders/KSCUMediaPlayerActionMeta.h b/ios/SDK/KSAdSDK.framework/PrivateHeaders/KSCUMediaPlayerActionMeta.h new file mode 100644 index 0000000..d481310 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/PrivateHeaders/KSCUMediaPlayerActionMeta.h @@ -0,0 +1,25 @@ +// +// KSCUMediaPlayerActionMeta.h +// KSAdSDK +// +// Created by jie cai on 2020/7/20. +// +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface KSCUMediaPlayerActionMeta : NSObject + +@property (nonatomic, copy) NSString *actionId; +@property (nonatomic, copy) NSString *timestamp; +/// 会话id,uuid生成,冷启动和收到后台超过一段时间回来会变(和内容一致) +@property (nonatomic, copy) NSString *sessionId; +@property (nonatomic, copy) NSString *seq; +/// 媒体播放器Log行为类型 +@property (nonatomic, copy) NSString *mediaPlayerAction; +/// 媒体播放器Log行为Message +@property (nonatomic, copy) NSString *mediaPlayerMsg; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/PrivateHeaders/KSCUMediaPlayerReportAPI.h b/ios/SDK/KSAdSDK.framework/PrivateHeaders/KSCUMediaPlayerReportAPI.h new file mode 100644 index 0000000..c3815f1 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/PrivateHeaders/KSCUMediaPlayerReportAPI.h @@ -0,0 +1,26 @@ +// +// KSCUMediaPlayerReportAPI.h +// Pods +// +// Created by jie cai on 2020/7/20. +// +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface KSCUMediaPlayerReportResponse : KSAdBaseResponse + +// 下次上传间隔,单位秒 +@property (nonatomic, assign) uint64_t interval; + +@end + +@interface KSCUMediaPlayerReportAPI : KSAdBaseAPI + +- (BFTask *)sendLogs:(NSArray *)logs; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/KSAdSDK.framework/PrivateHeaders/KSCUMediaPlayerReportManager.h b/ios/SDK/KSAdSDK.framework/PrivateHeaders/KSCUMediaPlayerReportManager.h new file mode 100644 index 0000000..3ea8250 --- /dev/null +++ b/ios/SDK/KSAdSDK.framework/PrivateHeaders/KSCUMediaPlayerReportManager.h @@ -0,0 +1,24 @@ +// +// KSCUMediaPlayerReportManager.h +// KSAdSDK +// +// Created by jie cai on 2020/7/20. +// +#import + +/* + doc: + https://docs.corp.kuaishou.com/d/home/fcADLf9f6v_kTQ_NMKz6jvtZ4#section=h.c7zqr0pnnkjb + */ + +NS_ASSUME_NONNULL_BEGIN + +@interface KSCUMediaPlayerReportManager : NSObject + ++ (instancetype)sharedInstance; + +- (void)addMediaPlayerActionKey:(NSString *)key value:(NSString *)value; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/SDK/libmysdk.a b/ios/SDK/libmysdk.a new file mode 100644 index 0000000..bb26f72 Binary files /dev/null and b/ios/SDK/libmysdk.a differ diff --git a/ios/quakerbirdad.podspec b/ios/quakerbirdad.podspec index 1db1a3c..f88c329 100644 --- a/ios/quakerbirdad.podspec +++ b/ios/quakerbirdad.podspec @@ -5,19 +5,40 @@ Pod::Spec.new do |s| s.name = 'quakerbirdad' s.version = '0.0.1' - s.summary = 'Flutter信天翁广告插件' + s.summary = 'A new Flutter plugin project.' s.description = <<-DESC -Flutter信天翁广告插件 - DESC + A new Flutter plugin project. + DESC s.homepage = 'http://example.com' s.license = { :file => '../LICENSE' } s.author = { 'Your Company' => 'email@example.com' } s.source = { :path => '.' } s.source_files = 'Classes/**/*' + s.static_framework = true + s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' s.platform = :ios, '9.0' + # KSAD + s.frameworks = ["StoreKit","AdSupport","CoreLocation","SystemConfiguration","CoreTelephony","Security","AVFoundation","WebKit","AudioToolbox","CoreGraphics","CoreImage","CoreText","JavaScriptCore","MapKit","UIKit","MobileCoreServices","MediaPlayer","CoreMedia","CoreMotion","Accelerate","ImageIO","QuartzCore","Foundation","CoreData","AVKit","MessageUI","QuickLook","AddressBook","AppTrackingTransparency","CFNetwork","SafariServices","DeviceCheck"] + s.libraries = ["z","xml2","c++abi","resolv.9","c++","sqlite3","bz2","iconv", "resolv.9","bz2.1.0"] + s.vendored_frameworks = 'SDK/KSAdSDK.framework' + s.dependency 'GDTMobSDK','4.14.02' + s.dependency 'Ads-CN-Beta','5.0.0.1' + s.dependency 'SigmobAd-iOS', '4.6.0' + s.dependency 'MintegralAdSDK/RewardVideoAd', '7.2.4' + s.dependency 'MintegralAdSDK/NewInterstitialAd', '7.2.4' + s.dependency 'MintegralAdSDK/SplashAd', '7.2.4' + s.dependency 'MintegralAdSDK/BannerAd', '7.2.4' + + # MYAD + s.frameworks = ["Foundation", "UIKit", "MobileCoreServices", "CoreGraphics", "Security", "SystemConfiguration", "CoreTelephony", "AdSupport", "CoreData", "StoreKit", "AVFoundation", "MediaPlayer", "CoreMedia", "WebKit", "Accelerate", "CoreLocation", "AVKit", "MessageUI", "QuickLook", "AudioToolBox", "JavaScriptCore", "CoreMotion"] + s.libraries = ["z", "resolv.9", "sqlite3", "c++", "c++abi"] + s.source = { :http=>"https://static.yximgs.com/udata/pkg/KSAdSDKTarGz/KSAdSDK-framework-content-3.3.32-1260.tar.gz" } + s.vendored_libraries = 'SDK/libmysdk.a' + + # Flutter.framework does not contain a i386 slice. - s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' + s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386'} + end diff --git a/lib/quakerbirdad.dart b/lib/quakerbirdad.dart index 412c5c6..1d97148 100644 --- a/lib/quakerbirdad.dart +++ b/lib/quakerbirdad.dart @@ -12,7 +12,7 @@ part 'widget/splash_widget.dart'; part 'widget/banner_widget.dart'; part 'widget/express_widget.dart'; part 'widget/express_draw_widget.dart'; -part 'widget/feed_widget.dart'; +part 'widget/native_widget.dart'; class QuakerBirdAd { static const MethodChannel _channel = MethodChannel('quakerbirdad'); @@ -53,6 +53,11 @@ class QuakerBirdAd { return await _channel.invokeMethod("getSDKVersion"); } + /// # 获取SDK版本号 + static Future requestPermission() async { + return await _channel.invokeMethod("requestPermission"); + } + /// # 加载插屏广告 /// /// [androidId] android 广告位id diff --git a/lib/quakerbirdad_callback.dart b/lib/quakerbirdad_callback.dart index 4233e63..29e5fed 100644 --- a/lib/quakerbirdad_callback.dart +++ b/lib/quakerbirdad_callback.dart @@ -17,7 +17,7 @@ typedef OnClick = void Function(); typedef OnDismiss = void Function(); ///奖励 -typedef OnReward = void Function(int type); +typedef OnReward = void Function(int? type); ///状态 /// type 类型 @@ -25,7 +25,7 @@ typedef OnReward = void Function(int type); /// status 状态 /// msg 错误消息 (失败时有效) typedef OnStatus = void Function( - int type, int platform, int status, String msg); + int? type, int? platform, int? status, String? msg); /// 开屏广告回调 class QuakerBirdAdSplashCallBack { @@ -103,14 +103,14 @@ class QuakerBirdAdFullScreenCallBack { /// 信息流广告回调 -class QuakerBirdAdFeedCallBack { +class QuakerBirdAdNativeCallBack { OnShow? onShow; OnError? onError; OnClick? onClick; OnDismiss? onDismiss; OnStatus? onStatus; - QuakerBirdAdFeedCallBack( + QuakerBirdAdNativeCallBack( {this.onShow, this.onError, this.onClick, this.onDismiss, this.onStatus}); } diff --git a/lib/widget/banner_widget.dart b/lib/widget/banner_widget.dart index a35227d..67b8de7 100644 --- a/lib/widget/banner_widget.dart +++ b/lib/widget/banner_widget.dart @@ -101,11 +101,10 @@ class _QuakerBirdAdBannerState extends State { _isShowAd = true; _width = map["width"]; _height = map["height"]; - print("$_width == $_height"); }); - if (widget.callBack?.onShow != null) { - widget.callBack?.onShow!(); - } + } + if (widget.callBack?.onShow != null) { + widget.callBack?.onShow!(); } break; case QuakerBirdAdMethod.onError: @@ -120,6 +119,11 @@ class _QuakerBirdAdBannerState extends State { } break; case QuakerBirdAdMethod.onDismiss: + if (mounted) { + setState(() { + _isShowAd = false; + }); + } if (widget.callBack?.onDismiss != null) { widget.callBack?.onDismiss!(); } diff --git a/lib/widget/express_draw_widget.dart b/lib/widget/express_draw_widget.dart index d66664f..5f5fdd9 100644 --- a/lib/widget/express_draw_widget.dart +++ b/lib/widget/express_draw_widget.dart @@ -120,6 +120,11 @@ class _QuakerBirdAdExpressDrawState extends State { } break; case QuakerBirdAdMethod.onDismiss: + if (mounted) { + setState(() { + _isShowAd = false; + }); + } if (widget.callBack?.onDismiss != null) { widget.callBack?.onDismiss!(); } diff --git a/lib/widget/express_widget.dart b/lib/widget/express_widget.dart index 99e9552..a94c76c 100644 --- a/lib/widget/express_widget.dart +++ b/lib/widget/express_widget.dart @@ -120,6 +120,11 @@ class _QuakerBirdAdExpressState extends State { } break; case QuakerBirdAdMethod.onDismiss: + if (mounted) { + setState(() { + _isShowAd = false; + }); + } if (widget.callBack?.onDismiss != null) { widget.callBack?.onDismiss!(); } diff --git a/lib/widget/feed_widget.dart b/lib/widget/native_widget.dart similarity index 88% rename from lib/widget/feed_widget.dart rename to lib/widget/native_widget.dart index f086836..24ac606 100644 --- a/lib/widget/feed_widget.dart +++ b/lib/widget/native_widget.dart @@ -5,14 +5,14 @@ part of '../quakerbirdad.dart'; /// @Email gstory0404@gmail.com /// @Description: dart类作用描述 -class QuakerBirdAdFeed extends StatefulWidget { +class QuakerBirdAdNative extends StatefulWidget { final String androidId; final String iosId; final double width; final double height; - final QuakerBirdAdFeedCallBack? callBack; + final QuakerBirdAdNativeCallBack? callBack; - QuakerBirdAdFeed( + QuakerBirdAdNative( {Key? key, required this.androidId, required this.iosId, @@ -22,11 +22,11 @@ class QuakerBirdAdFeed extends StatefulWidget { : super(key: key); @override - State createState() => _QuakerBirdAdFeedState(); + State createState() => _QuakerBirdAdFeedState(); } -class _QuakerBirdAdFeedState extends State { - String _viewType = "com.gstory.quakerbirdad/FeedAdView"; +class _QuakerBirdAdFeedState extends State { + String _viewType = "com.gstory.quakerbirdad/NativeAdView"; MethodChannel? _channel; @@ -120,6 +120,11 @@ class _QuakerBirdAdFeedState extends State { } break; case QuakerBirdAdMethod.onDismiss: + if (mounted) { + setState(() { + _isShowAd = false; + }); + } if (widget.callBack?.onDismiss != null) { widget.callBack?.onDismiss!(); } diff --git a/lib/widget/splash_widget.dart b/lib/widget/splash_widget.dart index e9198ef..be723a6 100644 --- a/lib/widget/splash_widget.dart +++ b/lib/widget/splash_widget.dart @@ -120,6 +120,11 @@ class _QuakerBirdAdSplashState extends State { } break; case QuakerBirdAdMethod.onDismiss: + if (mounted) { + setState(() { + _isShowAd = false; + }); + } if (widget.callBack?.onDismiss != null) { widget.callBack?.onDismiss!(); } diff --git a/pubspec.yaml b/pubspec.yaml index f7e75f0..696e086 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: quakerbirdad description: Flutter信天翁广告插件 -version: 0.0.4 +version: 0.0.5 homepage: https://github.com/gstory0404/quakerbirdad environment: