美文网首页
VigameLibrary --- libVigame_x.x

VigameLibrary --- libVigame_x.x

作者: aaa000 | 来源:发表于2018-11-21 15:57 被阅读67次

    demo address
    链接:https://pan.baidu.com/s/1UQXXl0hp3IXJ4iD_LQdPEA 密码:2mb3

    1. 将库文件添加到工程中

    E4460FAC-0E3D-4CDE-8804-4A36F94DFB66.png

    (备注: 在文件系统中 include 文件夹下 有deps文件 需要删除头文件引用。)

    2.添加所有的 .framework .a 文件 路径和头文件链接

    (将文件拷贝到工程中 会自动台 target->build setting -> search path ->Header Search Paths 中添加)
    特殊添加一项目录 路径
    "$(SRCROOT)/Vigame/include"
    "$(SRCROOT)/Vigame/tools"
    "$(SRCROOT)/Vigame/include/deps/boost/include"
    "$(SRCROOT)/Vigame/include/deps/curl/include/ios"
    "$(SRCROOT)/Vigame/include/deps/openssl/include/ios"
    "$(SRCROOT)/Vigame/include/deps/zlib/include/linux"

    image.png

    3.添加系统支持库文件

    target->build phases -> Link Binary With Libraries
    OpenGLES.framwork
    OpenAL.framwork
    iAd.framwork

    WebKit.framwork
    AVFoundation.framwork
    Accelerate.framwork
    MobileCoreServices.framwork
    CoreMotion.framwork

    CoreLocation.framwork
    CoreTelephony.framwork
    QuartzCore.framwork
    StoreKit.framwork
    AdSupport.framwork

    UIKit.framwork
    CoreFoundation.framwork
    CoreGraphics.framwork
    CoreMedia.framwork

    CoreBluetooth.framwork
    CoreText.framwork
    Security.framwork
    MediaPlayer.framwork
    CFNetwork.framwork
    libresolv.9.tbd

    SystemConfiguration.framwork
    MessageUI.framwork
    JavaScriptCore.framwork
    AudioToolBox.framwork
    GLKit.framwork

    libz.tbd
    libsqlite3.tbd
    libiconv.tbd
    libxml2.tbd

    libc++.tbd
    libz.1.1.3.tbd
    libresolv.tbd
    libsqlite3.0.tbd

    4. 设备编译选项

    -ObjC

    26E33624-F1AF-4530-8312-5D392F710EC3.png

    (Unix的标准静态库实现和Objective-C的动态特性之间有一些冲突:Objective-C没有为每个函数(或者方法)定义链接符号,它只为每个类创建链接符号。这样当在一个静态库中使用类别来扩展已有类的时候,链接器不知道如何把类原有的方法和类别中的方法整合起来,就会导致你调用类别中的方法时,出现"selector not recognized",也就是找不到方法定义的错误。为了解决这个问题,引入了-ObjC标志,它的作用就是将静态库中所有的和对象相关的文件都加载进来。不过在64位的Mac系统或者iOS下,链接器有一个bug,会导致只包含有类别的静态库无法使用-ObjC来加载文件。变通方法是使用-all_load 或者-force_load标志,它们的作用都是加载静态库中所有文件,不过all_load作用于所有的库,而-force_load后面必须要指定具体的文件)

    Enable Bitcode 设置为NO


    00BD11F1-2C0E-4CC7-A148-25117CAA9693.png

    ( 官方API 描述 包得优化有关
    Bitcode is an intermediate representationof a compiled program. Apps you upload to iTunes Connect that contain bitcodewill be compiled and linked on the App Store. Including bitcode will allowApple to re-optimize your app binary in the future without the need to submit anew version of your app to the store.
    Bitcode. When you archive for submission tothe App Store, Xcode will compile your app into an intermediate representation.The App Store will then compile the bitcode down into the 64 or 32 bitexecutables as necessary.)

    5 编译报错

    __weak typeof(self)wSelf = self报错:- A parameter list without types is only allowed in a function definition. A corresponding warning tells me that __weak only applies to Objective-C object or block pointer types;type here is 'int'

    解决方案: Xcode-> Build Settings-> C Language Dialect修改配置,C99改为GNU99,C99不包含typeof

    6 确认c++ 编译项

    9CEB6BBF-3485-4E3E-BC22-BCAB635C9B2A.png

    7设置项目为自动内存管理

    C6D1428C-8591-4E39-AD5E-6D21C349B6D2.png

    8 SDK初始化工作

    1 导入头文件
    2DD85CAF-A737-40A4-971B-A257018E3F57.png
    2 调用初始化入口文件
    - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
    {
       //you code here
        [IOSLoader startLoaderLibrary];
        return YES;
    }
    

    9 代码调用

    1.通过广告位名称打开一个广告
    #include "vigame_ad.h"
    
     // 打开一个横幅广告
      vigame::ad::ADManager::openAd("banner");
    
     // 打开关闭横幅广告
      vigame::ad::ADManager::closeAd("banner");
    
      // 打开一个插屏广告
      vigame::ad::ADManager::openAd("pause");
    
      // 打开一个开屏广告
      vigame::ad::ADManager::openAd("splash");
    
     /*监听 某个视频广告位是否加载成功*/
        vigame::ad::ADManager::addAdReadyChangedCallback("level_fail_mfzs", [=](bool isReady){
            if (isReady) {
                NSLog(@"level_fail_mfzs视频广告位 加载成功");
            }
        });
        //手动检测广告是否加载成功
        vigame::ad::ADManager::isAdReady("level_fail_mfzs");
    
    // 打开一个视频广告 && 监听是否视频播放成功
      vigame::ad::ADManager::openAd("level_fail_mfzs",[=](vigame::ad::ADSourceItem* adSourceItem, int result){
          if (1 == result) {/*打开视频失败*/ }
          else if( 0 == result){/*打开视频成功*/ }
       });
    
    // 在 appDelegate.mm 文件中  打开一个 唤醒游戏广告
    - (void)applicationDidBecomeActive:(UIApplication *)application {
        //打开一个唤醒广告
        vigame::ad::ADManager::openAd("game_awaken");
    }
    
    2.添加自定义统计事件
    //统计
    #import "vigame_tj.h"
    
          //方式1
          vigame::tj::DataTJManager::event("eventName");
         //方式2
          vigame::tj::DataTJManager::event("eventName","value");
            //方式3
            std::unordered_map<std::string, std::string> map;
            map.insert(std::make_pair("key1", "value1"));
            map.insert(std::make_pair("key2", "value2"));
            vigame::tj::DataTJManager::event("eventName", map);
    
    // 导入支付头文件 发起支付
    #import "pay/PayManager.h"
    vigame::pay::PayManager::orderPay(154);
    

    ◀◀ 下面内容为工程参数配置信息 ▶▶

    1.Buglg参数配置

    在项目中VigameLibrary/Resource/VigameLibrary.plist 文件中

    image.png
    如果需要使用 bugly 跟踪上线项目用户问题反馈
    1> 将IS_USED 设置成YES
    2> 将 APP_ID 填入在bugly平台上申请的参数

    2.统计相关的参数配置

    image.png

    如果需要使用某家统计 需要将对应的 IS_USED 设置成YES
    各家统计字段说明:

    1> 谷歌统计

              |——  IS_USED                      是否使用google 统计
              |——  Conversion_ID                统计使用到转换ID  
              |——  new_Conversion_Label         新增转化标签 (没有可以不用填写)
              |—— retained_Conversion_Label     留存转化便签(没有可以不用填写)
              |—— pay_Conversion_Label          支付转化标签 (没有可以不用填写)
    

    2> dataEye统计

              |——  IS_USED                           是否使用dataEye 统计
              |——  IS_Login_Mode                     是否为登录模式 
              |——  Channel_ID                        渠道ID (app store)
              |—— AppID                              统计AppID (dataEye平台申请)
              |—— TrackingAppID                      跟踪ID     (dataEye平台申请)
    

    3> 友盟统计

              |——  IS_USED                      是否使用友盟 统计
              |——  NOT_GAME_SENCE               是否为游戏 
              |——  AppKey                       统计ID (友盟平台申请)
    

    3.广告配置

    在项目中VigameLibrary/Resource/feedata_apple.xml文件中

    <?xml version="1.0" encoding="utf-8"?>
    <data>
        <!-- 项目的appid   -->
        <appid>16065</appid>
        <!--  项目的projectid  -->
        <prjid>999111</prjid>
        
    </data>
    

    appid,prjid 将由公司统一为每个游戏分配下发, 所有的广告信息将通过这些参数自动从网络上获取!

    相关文章

      网友评论

          本文标题:VigameLibrary --- libVigame_x.x

          本文链接:https://www.haomeiwen.com/subject/txdcqqtx.html