Руководство по интеграции AdWoW iOS SDK

  • Данное руководство представляет собой пошаговую инструкцию добавления фреймворка AdWoW в ваше iOS приложение. После завершения интеграции рекомендуем ознакомиться с документом «Описание AdWoW iOS SDK» для получения дополнительной информации.

  • Прежде всего вам необходимо зарегистрироваться в Личном кабинете на портале AdWoW по адресуhttp://adwow.ru и получить секретный ключ и ключ приложения.

  • Актуальная версия AdWoW iOS SDK всегда доступна в разделе “Разработчикам -> Загрузить SDK” в Личном кабинете.

  • Добавьте в свой проект фреймворк AdWow.framework, а также еще ряд других необходимых фреймворков (смотри список ниже).Откройте раздел Build Phases и добавьте следующие фреймворки:

    • `SystemConfiguration.framework`;
    • `AdSupport.framework`;
    • `CoreTelephony.framework`.
  • Убедившись в наличии всех необходимых фреймворков, откройте AppDelegate.h вашего проекта и добавьте директиву импорта:

    <AdWowSDK/AWEngine.h>

    Если вы планируете использовать AdWoW SDK в других модулях проекта, необходимо будет импортировать заголовочный файл во все желаемые модули.

    Далее следует объявить класс AppDelegate, реализующий протокол AdWowDelegate:

    @interface AppDelegate : UIResponder <UIApplicationDelegate, AdWowDelegate>

    Теперь можно производить инициализацию AdWoW. Это целесообразно делать в методе делегатаUIApplicationDelegate didFinishLaunchingWithOptions.

    Пример инициализации AdWoW:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    AdWow *adWow = [[ AdWow alloc] initWithAppKey:@"appKey" andSecret:@"appSecret"];
    adWow.delegate = self;
    return YES;
    }

    Не забудьте подставить актуальные значения appKey и appSecret, полученные в Личном кабинете.

  • Начиная с версии 9 в iOS внесены изменения, связанные с повышением уровня безопасности траспортного слоя (App Transport Security https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/ ). С этого момента все внешние соеденения по умолчанию недоступны, в связи с чем модуль AdWoW потеряет способность взаимодествовать со своим серверным API. Чтобы устранить эту проблему, необходимо внести изменения в Info.plist вашего проекта.

    • <key>NSAppTransportSecurity</key>
      <dict>
      <key>NSExceptionDomains</key>
      <dict>
      <key>adwow.ru</key>
      <dict>
      <key>
      NSIncludesSubdomains</key>
      <true/>
      <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
      <true/>
      <key>NSTemporaryExceptionMinimumTLSVersion</key>
      <string>TLSv1.1</string>
      <key>NSTemporaryExceptionRequiresForwardSecrecy</key>
      <false/>
      </dict>
      </dict>
      </dict>

    Данный код дает разрешение приложению осуществлять сетевое взаимодействие с доменом adwow.ru и его субдоменами. Либо можно выдать разрешение на взаимодествие с любыми хостами, используя следующий код:

    <key>NSAppTransportSecurity</key>
    <dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    </dict>

    Однако, следует учесть, что данный способ менее безопасный.

    Также стоит знать, что приложения, опубликованные в AppStore до официального выпуска iOS 9 не нуждаются в срочном обновлении, поскольку изменения в системе безопаности iOS их не коснулись, они продолжат работу в прежнем режиме.

  • Решение о том, когда вызывать сохранение момента внутри вашего приложения, принимаете вы сами. В нужном месте кода нужно вызвать соответствующий метод фреймворка. Любому пользователю разрешается зарабатывать неограниченное количество наград за один и тот же момент. Если награда с указанным именем доступна, SDK отобразит форму награды для пользователя или уведомление.

    Найдите программный модуль своего приложения, в котором по вашему мнению уместно вызывать метод сохранения AdWoW момента, и убедитесь, что AdWoW импортирован в данный модуль:

    <AdWowSDK/AWEngine.h>

    Далее происходит непосредственно сохранение момента:

    [[AdWow sharedInstance] saveMoment:@"Level one complete" withCompletionHandler:^(AWUnit *unit, NSError *error) {
    if (error) {
    NSLog(@"something's weird");
    // можно показать окно ошибки
    }
    if (unit) {
    [unit show];
    }
    if (!unit) {
    // если ошибки нет, но и награда недоступна, сообщить об этом пользователю
    }
    }];

    Таким образом вы даете понять SDK, что хотите показать пользователю форму награды.Следует учесть один нюанс, касающийся названий моментов. Когда вы передаете строку в метод сохранения saveMoment, например “уровень 1 пройден”, она будет отображена в форме получения награды пользователю. Форма награды будет отображать сообщение вида “Поздравляем! вы заслужили награду за [ваше название момента]”. Вы всегда можете поменять заголовок момента в административной панели портала AdWoW. При этом название “уровень 1 пройден” менять внутри приложения не следует.

  • Мы предоставляем несколько тестовых приложений с открытым исходным кодом. Вы можете скачать в Личном кабинете тестовое приложение для анализа и отладки интеграции AdWoW.