iOS AISDK集成

iOS AISDK集成

1 手动集成

1.1 导入 SDK

  • GAiSdk.frameworkGTCommonSDK.xcframework目录拷贝到项目工程目录下

1.2 库引用检查

  • 在导入时,Xcode正常情况下会自动添加引用,但是偶尔也会不添加,注意检查下图中的引用路径,如果报错找不到库或者头文件,一般都是下面的引用没有添加,请在$(inherited)下面添加你的framwork路径。

1.3 添加系统依赖库

  • 在项目设置中添加以下系统库支持:
libc++.tbd
libz.tbd
libsqlite3.tbd
libresolv.tbd
Security.framework
MobileCoreServices.framework
SystemConfiguration.framework
CFNetwork.framework
CoreTelephony.framework
CoreLocation.framework
AdSupport.framework(如果需要采集idfa请添加此库并按照苹果要求进行申请)

1.3 设置 Other Linker Flags

找到主工程的 target -> Build Setting -> Linking -> Other Linker Flags,在$(inherited)下面添加 -ObjC

配置权限

在此之外,您还可以配置以下可选权限,以便使用地理位置、麦克风等相关功能。

可在项目的Info.plist中配置如下:


  <!-- 允许访问网络 -->
  <key>NSAppTransportSecurity</key>
  <dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
  </dict>

  <!-- IDFA -->
  <key>NSUserTrackingUsageDescription</key>
  <string>请求IDFA描述</string>

  <!-- 麦克风相关 -->
  <key>NSMicrophoneUsageDescription</key>
  <string>需要访问您的麦克风以使用语音/录音功能</string>

  <!-- 定位相关 -->
  <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
  <string>根据业务需要,始终允许访问位置信息</string>
  <key>NSLocationAlwaysUsageDescription</key>
  <string>根据业务需要,始终允许访问位置信息</string>
  <key>NSLocationUsageDescription</key>
  <string>根据业务需要,永不允许访问位置信息</string>
  <key>NSLocationWhenInUseUsageDescription</key>
  <string>根据业务需要,使用应用期间允许访问位置信息</string>


2.集成代码

2.1 初始化启动接口

接口描述:

使用智能体功能以前,需要先启动 SDK。

接口定义:

/**
 初始化启动接口

 @param appId 开发者中心生成的 appId
 */
@objc(startSdkWithAppId:onSuccess:onFailure:)
public static func startSdk(
        appId: String,
        onSuccess: AISDKSuccessBlock? = nil,
        onFailure: AISDKFailureBlock? = nil
    )

接口说明:

参数 参数说明
appId 应用标识 APPID

接口示例:

#import <GAiSdk/GAiSdk-Swift.h>
#define kGcAppId @"xxxxxxx"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

     [AISDK startSdkWithAppId:AISDKDemoAppId onSuccess:^(id  _Nullable res) {
        self.sdkInitialized = YES;
        self.statusLabel.text = @"状态:初始化成功";
        NSLog(@"[AISDKDemo] startSdk success");
    } onFailure:^(NSError * _Nonnull error) {
        self.sdkInitialized = NO;
        self.statusLabel.text = [NSString stringWithFormat:@"状态:初始化失败 (%@)", @(error.code)];
        NSLog(@"[AISDKDemo] startSdk failure code:%@ msg:%@", @(error.code), error.localizedDescription);
    }];

   return YES;
 }

Swift调用方式:

    AISDK.startSdk(appId: DemoConfig.appId, onSuccess: { [weak self] _ in
            DispatchQueue.main.async {
                self?.sdkReady = true
                self?.statusLabel.text = "SDK 初始化成功"
            }
        }, onFailure: { [weak self] error in
            DispatchQueue.main.async {
                guard let self else { return }
                self.sdkReady = false
                self.statusLabel.text = "SDK 初始化失败:\(error.code) \(error.localizedDescription)"
            }
        })
在这篇文章中: 2.集成代码

文档中心搜索

技术
咨询

微信扫一扫

随时联系技术支持

在线
咨询