The right way to build Yandex Mobile Ads Example for iOS

To build the example with CocoaPods do the following steps:

Install build tools

Install Ruby with rbenv on macOS and install CocoaPods without sudo:

gem install cocoapods
Fetching colored2-3.1.2.gem
Fetching nanaimo-0.3.0.gem
Fetching claide-1.1.0.gem
Fetching CFPropertyList-3.0.7.gem
Fetching atomos-0.1.3.gem
Fetching xcodeproj-1.25.0.gem
Fetching ruby-macho-2.5.1.gem
Fetching nap-1.1.0.gem
Fetching molinillo-0.8.0.gem
Fetching gh_inspector-1.1.3.gem
Fetching fourflusher-2.3.1.gem
Fetching escape-0.0.4.gem
Fetching cocoapods-try-1.2.0.gem
Fetching netrc-0.11.0.gem
Fetching cocoapods-trunk-1.6.0.gem
Fetching cocoapods-search-1.0.1.gem
Fetching cocoapods-plugins-1.0.0.gem
Fetching cocoapods-downloader-2.1.gem
Fetching cocoapods-deintegrate-1.0.5.gem
Fetching ffi-1.17.0-x86_64-darwin.gem
Fetching ethon-0.16.0.gem
Fetching typhoeus-1.4.1.gem
Fetching public_suffix-4.0.7.gem
Fetching fuzzy_match-2.0.4.gem
Fetching concurrent-ruby-1.3.4.gem
Fetching httpclient-2.8.3.gem
Fetching algoliasearch-1.27.5.gem
Fetching addressable-2.8.7.gem
Fetching tzinfo-2.0.6.gem
Fetching i18n-1.14.6.gem
Fetching connection_pool-2.4.1.gem
Fetching activesupport-7.2.1.gem
Fetching cocoapods-1.15.2.gem
Fetching cocoapods-core-1.15.2.gem
Successfully installed nanaimo-0.3.0
Successfully installed colored2-3.1.2
Successfully installed claide-1.1.0
Successfully installed CFPropertyList-3.0.7
Successfully installed atomos-0.1.3
Successfully installed xcodeproj-1.25.0
Successfully installed ruby-macho-2.5.1
Successfully installed nap-1.1.0
Successfully installed molinillo-0.8.0
Successfully installed gh_inspector-1.1.3
Successfully installed fourflusher-2.3.1
Successfully installed escape-0.0.4
Successfully installed cocoapods-try-1.2.0
Successfully installed netrc-0.11.0
Successfully installed cocoapods-trunk-1.6.0
Successfully installed cocoapods-search-1.0.1
Successfully installed cocoapods-plugins-1.0.0
Successfully installed cocoapods-downloader-2.1
Successfully installed cocoapods-deintegrate-1.0.5
Successfully installed ffi-1.17.0-x86_64-darwin
Successfully installed ethon-0.16.0
Successfully installed typhoeus-1.4.1
Successfully installed public_suffix-4.0.7
Successfully installed fuzzy_match-2.0.4
Successfully installed concurrent-ruby-1.3.4
Successfully installed httpclient-2.8.3
A new major version is available for Algolia! Please now use the https://rubygems.org/gems/algolia gem to get the latest features.
Successfully installed algoliasearch-1.27.5
Successfully installed addressable-2.8.7
Successfully installed tzinfo-2.0.6
PSA: I18n will be dropping support for Ruby < 3.2 in the next major release (April 2025), due to Ruby's end of life for 3.1 and below (https://endoflife.date/ruby). Please upgrade to Ruby 3.2 or newer by April 2025 to continue using future versions of this gem.
Successfully installed i18n-1.14.6
Successfully installed connection_pool-2.4.1
Successfully installed activesupport-7.2.1
Successfully installed cocoapods-core-1.15.2
Successfully installed cocoapods-1.15.2
Parsing documentation for nanaimo-0.3.0
Installing ri documentation for nanaimo-0.3.0
Parsing documentation for colored2-3.1.2
Installing ri documentation for colored2-3.1.2
Parsing documentation for claide-1.1.0
Installing ri documentation for claide-1.1.0
Parsing documentation for CFPropertyList-3.0.7
Installing ri documentation for CFPropertyList-3.0.7
Parsing documentation for atomos-0.1.3
Installing ri documentation for atomos-0.1.3
Parsing documentation for xcodeproj-1.25.0
Installing ri documentation for xcodeproj-1.25.0
Parsing documentation for ruby-macho-2.5.1
Installing ri documentation for ruby-macho-2.5.1
Parsing documentation for nap-1.1.0
Installing ri documentation for nap-1.1.0
Parsing documentation for molinillo-0.8.0
Installing ri documentation for molinillo-0.8.0
Parsing documentation for gh_inspector-1.1.3
Installing ri documentation for gh_inspector-1.1.3
Parsing documentation for fourflusher-2.3.1
Installing ri documentation for fourflusher-2.3.1
Parsing documentation for escape-0.0.4
Installing ri documentation for escape-0.0.4
Parsing documentation for cocoapods-try-1.2.0
Installing ri documentation for cocoapods-try-1.2.0
Parsing documentation for netrc-0.11.0
Installing ri documentation for netrc-0.11.0
Parsing documentation for cocoapods-trunk-1.6.0
Installing ri documentation for cocoapods-trunk-1.6.0
Parsing documentation for cocoapods-search-1.0.1
Installing ri documentation for cocoapods-search-1.0.1
Parsing documentation for cocoapods-plugins-1.0.0
Installing ri documentation for cocoapods-plugins-1.0.0
Parsing documentation for cocoapods-downloader-2.1
Installing ri documentation for cocoapods-downloader-2.1
Parsing documentation for cocoapods-deintegrate-1.0.5
Installing ri documentation for cocoapods-deintegrate-1.0.5
Parsing documentation for ffi-1.17.0-x86_64-darwin
Installing ri documentation for ffi-1.17.0-x86_64-darwin
Parsing documentation for ethon-0.16.0
Installing ri documentation for ethon-0.16.0
Parsing documentation for typhoeus-1.4.1
Installing ri documentation for typhoeus-1.4.1
Parsing documentation for public_suffix-4.0.7
Installing ri documentation for public_suffix-4.0.7
Parsing documentation for fuzzy_match-2.0.4
Installing ri documentation for fuzzy_match-2.0.4
Parsing documentation for concurrent-ruby-1.3.4
Installing ri documentation for concurrent-ruby-1.3.4
Parsing documentation for httpclient-2.8.3
Installing ri documentation for httpclient-2.8.3
Parsing documentation for algoliasearch-1.27.5
Installing ri documentation for algoliasearch-1.27.5
Parsing documentation for addressable-2.8.7
Installing ri documentation for addressable-2.8.7
Parsing documentation for tzinfo-2.0.6
Installing ri documentation for tzinfo-2.0.6
Parsing documentation for i18n-1.14.6
Installing ri documentation for i18n-1.14.6
Parsing documentation for connection_pool-2.4.1
Installing ri documentation for connection_pool-2.4.1
Parsing documentation for activesupport-7.2.1
Installing ri documentation for activesupport-7.2.1
Parsing documentation for cocoapods-core-1.15.2
Installing ri documentation for cocoapods-core-1.15.2
Parsing documentation for cocoapods-1.15.2
Installing ri documentation for cocoapods-1.15.2
Done installing documentation for nanaimo, colored2, claide, CFPropertyList, atomos, xcodeproj, ruby-macho, nap, molinillo, gh_inspector, fourflusher, escape, cocoapods-try, netrc, cocoapods-trunk, cocoapods-search, cocoapods-plugins, cocoapods-downloader, cocoapods-deintegrate, ffi, ethon, typhoeus, public_suffix, fuzzy_match, concurrent-ruby, httpclient, algoliasearch, addressable, tzinfo, i18n, connection_pool, activesupport, cocoapods-core, cocoapods after 14 seconds
34 gems installed

A new release of RubyGems is available: 3.5.16 → 3.5.19!
Run `gem update --system 3.5.19` to update your installation.

Build the project

cd ~/dev/repos
git clone https://github.com/yandexmobile/yandex-ads-sdk-ios.git
cd yandex-ads-sdk-ios/Examples/YandexMobileAdsExample
pod install --repo-update
Updating local specs repositories
Cloning spec repo `cocoapods` from `https://github.com/CocoaPods/Specs.git`
 $ /usr/bin/git -C /Users/admin/.cocoapods/repos/cocoapods fetch origin --progress
  remote: Enumerating objects: 53, done.
  remote: Counting objects: 100% (53/53), done.
  remote: Compressing objects: 100% (35/35), done.
  remote: Total 36 (delta 24), reused 0 (delta 0), pack-reused 0 (from 0)
  From https://github.com/CocoaPods/Specs
     fd66db1316c4..24655255d699  master     -> origin/master
  $ /usr/bin/git -C /Users/admin/.cocoapods/repos/cocoapods rev-parse --abbrev-ref HEAD
  master
  $ /usr/bin/git -C /Users/admin/.cocoapods/repos/cocoapods reset --hard origin/master
  HEAD is now at 24655255d699 [Add] SurveySensumInApp 1.0.0
Analyzing dependencies
Downloading dependencies
Installing AppLovinSDK (12.6.1)
Installing AppLovinYandexMobileAdsAdapters (12.6.1.2)
Installing AppMetricaCore (5.8.0)
Installing AppMetricaCoreExtension (5.8.0)
Installing AppMetricaCoreUtils (5.8.0)
Installing AppMetricaCrashes (5.8.0)
Installing AppMetricaEncodingUtils (5.8.0)
Installing AppMetricaFMDB (5.8.0)
Installing AppMetricaHostState (5.8.0)
Installing AppMetricaLog (5.8.0)
Installing AppMetricaNetwork (5.8.0)
Installing AppMetricaPlatform (5.8.0)
Installing AppMetricaProtobuf (5.8.0)
Installing AppMetricaProtobufUtils (5.8.0)
Installing AppMetricaStorageUtils (5.8.0)
Installing BigoADS (4.2.3)
Installing BigoADSYandexMobileAdsAdapters (4.2.3.9)
Installing ChartboostSDK (9.7.0)
Installing ChartboostYandexMobileAdsAdapters (9.7.0.12)
Installing DivKit (30.18.0)
Installing DivKitBinaryCompatibilityFacade (4.4.0)
Installing DivKit_LayoutKit (30.18.0)
Installing DivKit_LayoutKitInterface (30.18.0)
Installing DivKit_Serialization (30.18.0)
Installing Google-Mobile-Ads-SDK (11.7.0)
Installing GoogleUserMessagingPlatform (2.6.0)
Installing GoogleYandexMobileAdsAdapters (11.7.0.3)
Installing InMobiSDK (10.7.5)
Installing InMobiYandexMobileAdsAdapters (10.7.5.2)
Installing IronSourceSDK (8.3.0.0)
Installing IronSourceYandexMobileAdsAdapters (8.3.0.2)
Installing KSCrash (2.0.0-rc.2)
Installing MintegralAdSDK (7.6.9)
Installing MintegralYandexMobileAdsAdapters (7.6.9.3)
Installing MyTargetYandexMobileAdsAdapters (5.21.7.2)
Installing StartAppSDK (4.10.4)
Installing StartAppYandexMobileAdsAdapters (4.10.4.3)
Installing UnityAds (4.12.3)
Installing UnityAdsYandexMobileAdsAdapters (4.12.2.3)
Installing VGSL (6.5.0)
Installing VGSLFundamentals (6.5.0)
Installing VGSLNetworking (6.5.0)
Installing VGSLUI (6.5.0)
Installing VungleAds (7.4.1)
Installing VungleYandexMobileAdsAdapters (7.4.1.1)
Installing YandexMobileAds (7.5.1)
Installing YandexMobileAdsAdMobAdapters (7.5.1.0)
Installing YandexMobileAdsInstream (0.38.0)
Installing YandexMobileAdsIronSourceAdapters (7.5.1.0)
Installing YandexMobileAdsMediation (7.5.1)
Installing myTargetSDK (5.21.8)
Installing myTrackerSDK (3.2.0)
Generating Pods project
Integrating client project
Pod installation complete! There are 4 dependencies from the Podfile and 52 total pods installed.

[!] Unable to read the license file `LICENSE` for the spec `DivKitBinaryCompatibilityFacade (4.4.0)`

[!] Unable to read the license file `LICENSE` for the spec `DivKitBinaryCompatibilityFacade (4.4.0)`

open YandexMobileAdsExample.xcworkspace with XCode and build.

10 Responses to The right way to build Yandex Mobile Ads Example for iOS

  1. dmitriano says:

    Using xcodebuild to build different platform
    https://stackoverflow.com/questions/34094524/using-xcodebuild-to-build-different-platform

    xcodebuild -workspace MyApp.xcworkspace -scheme MyApp -sdk iphonesimulator -configuration Release
    xcodebuild -workspace MyApp.xcworkspace -scheme MyApp -sdk iphoneos -configuration Release

    mkdir -p ${TARGET_BUILD_DIR}/../MyApp${CURRENT_PROJECT_VERSION}

    cp -r ${TARGET_BUILD_DIR}/../Release-iphoneos/ ${TARGET_BUILD_DIR}/../MyApp${CURRENT_PROJECT_VERSION}

    lipo -create "${TARGET_BUILD_DIR}/../Release-iphoneos/MyApp.framework/MyApp" "${TARGET_BUILD_DIR}/../Release-iphonesimulator/MyApp.framework/MyApp" -output "${TARGET_BUILD_DIR}/../MyApp${CURRENT_PROJECT_VERSION}/MyApp.framework/MyApp"

  2. dmitriano says:

    CocoaPods with QT:
    https://github.com/CocoaPods/CocoaPods/issues/12333
    https://stackoverflow.com/questions/78272362/cmake-with-xcode-and-cocoapods-compile-problem
    After generating a pure Xcode project using cmake, I run pod install and generate a workspace.

  3. dmitriano says:

    Setting up easy monetization for an iOS app
    https://ads.yandex.com/helpcenter/en/easy/integration/ios
    Demo adUnitId: demo-interstitial-yandex

    final class InterstitialViewController: UIViewController {
    private var interstitialAd: InterstitialAd?

    func showAd() {
    interstitialAd?.show(from: self)
    }
    }

  4. dmitriano says:

    Qt for iOS: How to open iOS component from Qt Application (i.e.from QMainWindow or QWidget or anything)?
    https://stackoverflow.com/questions/21423842/qt-for-ios-how-to-open-ios-component-from-qt-application-i-e-from-qmainwindow
    The Qt documentation points to this example of how to integrate a native iOS controller with a QML application.

    https://github.com/richardmg/qtdd13_qmlapp

    It implements bringing up UIImagePickerController over a QML display.

    So, while you can’t integrate a UIWebView with QML content, you can push a new controller on containing it or maybe even can super-impose a UIWebView on top of the QML view.

  5. dmitriano says:

    https://stackoverflow.com/questions/31884507/how-to-use-objective-c-cocoapods-in-a-swift-project
    How to use Objective-C CocoaPods in a Swift Project

    https://muizidn.medium.com/import-objective-c-header-from-pod-easy-peasy-3cea13f7d6c7
    Import Objective C header from Pod?
    #import <MagicalRecord/MagicalRecord.h>

  6. dmitriano says:

    Importing Swift into Objective-C
    Access Swift types and declarations from within your Objective-C codebase.
    https://developer.apple.com/documentation/swift/importing-swift-into-objective-c
    #import "ProductModuleName-Swift.h"

  7. dmitriano says:

    Swift Framework: Umbrella header ‘[…].h’ not found
    https://stackoverflow.com/questions/30355133/swift-framework-umbrella-header-h-not-found
    This usually happens after a project rename or something like that. The problem is that the umbrella header is no longer listed as a Public header. Check the attached image to see how to fix this.

    For me – access level was public but it also fails on umbrella not found. I did move the “Headers” section of the “Build phases” to the top and it started to work. Script to podfile:
    post_install do |installer|
    installer.pods_project.targets.each do |target|
    phase_name = 'Headers'
    target.build_phases.each do |phase|
    if (phase.display_name.include? phase_name)
    target.build_phases.unshift(phase).uniq! unless target.build_phases.first == phase
    end
    end
    end

  8. dmitriano says:

    My Question:
    Importing Swift into Objective-C in a QT project with CMake
    https://stackoverflow.com/questions/79009379/importing-swift-into-objective-c-in-a-qt-project-with-cmake

  9. dmitriano says:

    https://forums.developer.apple.com/forums/thread/692809

    # What I *want* to do is have this copied somewhere.
    # But I don't know how to tell XCode to do that.
    set_target_properties(LibraryControl PROPERTIES
    XCODE_ATTRIBUTE_SWIFT_OBJC_INTERFACE_HEADER_NAME "LibraryControl-Swift.h"
    XCODE_ATTRIBUTE_DERIVED_FILE_DIR "${PROJECT_BINARY_DIR}"
    XCODE_ATTRIBUTE_SWIFT_OBJC_BRIDGING_HEADER "${PROJECT_SOURCE_DIR}/common/mac/LibraryControl-Bridging-Header.h"
    )

Leave a Reply

Your email address will not be published. Required fields are marked *