集成和使用W3i iOS Advertiser SDK来宣传我们的iOS应用程序

时间:2012-12-12 13:06:53

标签: ios ads advertising

我正在iOS应用中集成W3i Advertiser SDK,但应用程序正在以下行崩溃。

 [[W3iAdvertiserSdk sharedConnector] connectWithAppID:W3I_APP_ID];

这是例外:

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSDictionaryI W3iPublisherJSONRepresentation]: unrecognized selector sent to instance 0xa1d7520'
*** First throw call stack:
(0x29d3012 0x23fae7e 0x2a5e4bd 0x29c2bbc 0x29c294e 0x16af7a 0x3e25 0xcd57b7 0xcd5da7 0xcd6fab 0xce8315 0xce924b 0xcdacf8 0x2903df9 0x2903ad0 0x2948bf5 0x2948962 0x2979bb6 0x2978f44 0x2978e1b 0xcd67da 0xcd865c 0x2d08d 0x26c5)
libc++abi.dylib: terminate called throwing an exception

我搜索了很多,但没有关于w3i集成的网络信息,除了w3i的官方指南外,它的使用。 https://associate.w3i.com/integration/W3i_iOS_Advertiser_SDK_Integration_Guide1.htm

https://associate.w3i.com/integration/index.html

以下是我要遵循的步骤:

Step1 :从W3i下载SDK enter image description here

Step2 :将W3iAdvertiserSdk-3.2.0文件夹拖到项目的文件夹中 enter image description here

Step3 添加以下框架的链接(如果尚未存在):

  • AdSupport.framework
  • UIKit.framework
  • Foundation.framework
  • CoreGraphics.framework

Step4:添加到AppDelegate.m文件,#import“W3iAdvertiserSdk.h”

如果我在上面的Integration之后运行应用程序,那么应用程序运行正常没有任何错误但是当我调用W3iAdvertiser的方法来连接应用程序时,它会抛出我已经在上面发布的异常。

// add this line to application's didFinishLaunchingWithOptions method
[[W3iAdvertiserSdk sharedConnector] connectWithAppID:W3I_APP_ID];  //appId created at w3i

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSDictionaryI W3iPublisherJSONRepresentation]: unrecognized selector sent to instance 0xa1d7520'
*** First throw call stack:
(0x29d3012 0x23fae7e 0x2a5e4bd 0x29c2bbc 0x29c294e 0x16af7a 0x3e25 0xcd57b7 0xcd5da7 0xcd6fab 0xce8315 0xce924b 0xcdacf8 0x2903df9 0x2903ad0 0x2948bf5 0x2948962 0x2979bb6 0x2978f44 0x2978e1b 0xcd67da 0xcd865c 0x2d08d 0x26c5)
libc++abi.dylib: terminate called throwing an exception

任何人都可以指导我在哪里出错,如何使用SDK的功能将应用程序与w3i连接,通过w3i宣传我们的应用程序?

2 个答案:

答案 0 :(得分:2)

您还需要执行此步骤:

  1. 将-ObjC添加到目标的构建设置中的其他链接器标志。这将使“选项1”不会崩溃。

答案 1 :(得分:0)

将应用程序与w3i连接有两种方法:

选项1:集成W3i-iOS-SDK,并将其称为" connectWithAppId"在申请开始时。

选项2:致电W3i" appWasRun"申请开始时的API

第一个选项对我没用,但Option2非常简单,工作正常。

这是API的格式及其参数:

http://api.w3i.com/PublicServices/MobileTrackingApiRestV1.svc/AppWasRun?AppId={APPID}&clientIp={CLIENTIP}&iOSIDFA={advertisingIdentifier}&iOSUDID={IOSUDID}&iOSOpenUDID={IOSOpenUDID}&iOSMD5WLANMAC={iOSMD5WLANMAC}&iOSSha1HashedMac={iOSSha1HashedMac}

请求类型:GET

必需参数:APPID(由W3I生成)和至少一个标识符(W3i首选所有参数)

我只使用了OpenUDID并且工作正常。

http://api.w3i.com/PublicServices/MobileTrackingApiRestV1.svc/AppWasRun?AppId=W3i_APP_ID&iOSOpenUDID=OPEN_UDID

有关详细信息,请查看以下链接。

https://sites.google.com/site/w3ideveloperscom/ios/iOSAFPP/advapi

https://associate.w3i.com/integration/Device_Identifiers.htm

希望将来能帮助别人:)