IFLYADLib iOS SDK
当前版本:6.5.1。本版已通过 CocoaPods、SwiftPM、手动集成的安装及 arm64 模拟器/设备架构构建验证;真机广告展示仍需在宿主 App 中联调。
面向 iOS 应用的广告 SDK,提供开屏、Banner、插屏、自渲染信息流和激励视频,支持按广告形式组合接入。本仓库提供安装清单、接入指南和 Objective-C 示例。
指南目录 · 运行示例 · 安装与分包 · 配置与隐私 · 常见问题
能力矩阵
| 广告形式 | 公开入口 | 接入指南 | 示例代码 |
|---|---|---|---|
| 开屏 | IFLYSplashAd | 图片与视频开屏 | 开屏页面 |
| Banner | IFLYBannerAd | 容器内展示 | Banner 页面 |
| 插屏 | IFLYInterstitialAd | 半屏与全屏 | 插屏页面 |
| 自渲染信息流 | IFLYNativeFeedAd | 图文、视频与列表复用 | 基础卡片、列表复用 |
| 激励视频 | IFLYRewardVideoAd | 展示与奖励回调 | 激励页面 |
可左右滚动查看完整表格
开屏、Banner、插屏和激励视频由 SDK 展示 UI;NativeFeed 由媒体绘制 UI,SDK 负责广告交互和视频播放。
环境要求
| 项目 | 说明 |
|---|---|
| 系统 | iOS 11.0 及以上 |
| CocoaPods | IFLYADLib,默认安装 Full;也可选择格式 subspec |
| Objective-C 导入 | #import <IFLYAdCore/IFLYAdCore.h>,并导入所用格式模块头 |
| Swift 导入 | import IFLYAdCore,并导入所用格式模块,如 import IFLYAdBanner |
| 模块与资源 | IFLYAdCore 等按格式拆分模块;资源按 Core、VideoUI、Reward 投递,依赖关系见安装指南 |
| 链接 | 静态 XCFramework,选择 Do Not Embed;最终 App target 需要 $(inherited) -ObjC |
| 共存 | 同一 App 选择一种安装方式;通用版与优酷定制版不能同时链接,其他渠道也不承诺共存 |
可左右滚动查看完整表格
升级到 6.5.1
七模块 XCFramework 采用带 modulemap 的静态 framework。Swift 可直接导入模块,无需为本 SDK 配置 bridging header;Objective-C 需从旧 <IFLYADLib/...> 路径迁移。步骤见Swift 模块接入与头路径迁移。
安装
首次接入可使用 CocoaPods,按 CocoaPods 官方 trunk 安装固定版本:
source 'https://cdn.cocoapods.org/'
platform :ios, '11.0'
target 'YourApp' do
use_frameworks!
pod 'IFLYADLib', '6.5.1'
endpod install
open YourApp.xcworkspace该写法安装全部五种格式,CocoaPods 自动配置资源和 -ObjC。当前通过 CocoaPods trunk 获取版本清单,二进制仍由 TOS 分发。仅需部分格式时替换为对应 subspec;Core 本身不包含广告形式。
- 按格式组合 CocoaPods 依赖
- 下载与手动集成:6.5.1 同时下载 TOS 二进制包和资源补充包,按格式链接依赖并复制资源及隐私清单。
首次使用
- 取得与当前 App、广告形式匹配的广告位,完成宿主隐私流程及所需的系统授权;SDK 无需额外的全局初始化实例。
- 创建具体广告对象,设置 delegate 与展示控制器,并由业务强持有。
- 调用
loadAd或loadAdWithRequestConfig:。开屏、Banner、插屏、激励视频等待DidReady;NativeFeed 在DidLoad后渲染素材并 attach。 - 在主线程检查对象有效性及宿主页面状态,再展示。失败、超时或放弃本次机会时继续宿主流程;下一次广告机会创建新实例。
完整流程见上方各格式指南。DidLoad 表示响应解析成功,不代表内置素材已就绪;展示与有效曝光是不同事件。激励奖励只依据 didRewardEffective 回调,由宿主做幂等处理。
初始化、隐私和请求配置
请求前的授权、IDFA、个性化状态、ATS 和展示窗口要求见配置与隐私。个性化设置用于记录媒体选择,宿主应独立管理同意流程与 SDK 使用时机。
请求配置
常用字段、普通加载方式和示例辅助方法见请求配置。交易参数按平台约定设置。
开屏广告
见开屏广告指南。包含加载、窗口要求、跳过、关闭与失败后的业务收尾。
Banner 广告
见Banner 广告指南。在已布局的媒体容器中展示。
插屏广告
见插屏广告指南。在业务合适时机选择半屏或全屏展示。
激励视频广告
见激励视频广告指南。区分奖励、播放完成与广告关闭。
自渲染信息流
见自渲染信息流指南。列表离屏按具体容器同步 detach,保留数据层 Ad 以便回屏恢复;永久移除时清理引用。通用版不支持媒体摇一摇上报,相关调用返回 71512。
S2S 和 Header Bidding
已开通竞价的媒体按竞价接入指南处理 Token、加载和竞价结果通知;普通接入使用前述加载方式。
错误处理与生命周期
见生命周期与清理。将加载、素材、展示和交互失败分开处理,避免无间隔重试。
三种接入示例
最新示例请从 main 分支源码 ZIP 下载并解压,或克隆 main;下面各 README 说明进入哪个目录及如何运行。接入自己的 App 请从安装指南开始,包含完整下载、资源来源、Xcode 配置和安装检查。
| 接入方式 | 独立示例 | 首次准备 |
|---|---|---|
| CocoaPods | IFLYADLibSimple | 在示例目录运行 pod install |
| SwiftPM | IFLYADLibSwiftPMSimple | 打开 workspace,解析远程 6.5.1 包 |
| 手动集成 | IFLYADLibManualSimple | 运行示例内 准备SDK.py,再打开 workspace |
可左右滚动查看完整表格
三种示例均固定使用 SDK 6.5.1,具体运行步骤见各自 README。同一 App 只选择一种接入方式。
示例工程
IFLYADLibSimple 提供五种格式、六个页面。指南包含下载运行、广告位配置、页面操作与预期结果。示例依赖固定为 6.5.1,移入生产 App 时保留自己的隐私流程和业务生命周期。
常见问题
找不到头文件、重复符号、资源缺失、未就绪和无填充等问题见常见问题。完整接口和错误码以所安装版本的公开头为准。
反馈与支持
接入问题请通过双方约定的支持渠道提供 SDK/iOS/Xcode 版本、安装方式、广告形式、操作步骤和错误码。日志与截图先去除 Token、设备标识和业务敏感信息。