Jump to content

[TOPIC: topicViewTemplate]
[GLOBAL: userSmallPhoto]
Photo

Vungle plugin failed during ios build
Started by Ng Chun Chong Sep 26 2015 04:56 AM

28 replies to this topic
[TOPIC CONTROLS]
Page 1 of 2 1 2
This topic has been archived. This means that you cannot reply to this topic.
[/TOPIC CONTROLS]
[modOptionsDropdown]
[/modOptionsDropdown]
[reputationFilter]
[TOPIC: post.html]
#1

Ng Chun Chong

[GLOBAL: userInfoPane.html]
Ng Chun Chong
  • Observer

  • 8 posts
  • Corona SDK

Can not install Vungle plugin today, no problem with the build last week.

 

<result>Undefined symbols for architecture armv7:

  "_OBJC_CLASS_$_WKWebView", referenced from:

      l_OBJC_$_CATEGORY_WKWebView_$_VungleWKWebView in libads-vungle.a(WKWebView+VungleWKWebView.o)

ld: symbol(s) not found for architecture armv7

clang: error: linker command failed with exit code 1 (use -v to see invocation)</result>

ERROR: Builder failed: Undefined symbols for architecture armv7:

  "_OBJC_CLASS_$_WKWebView", referenced from:

      l_OBJC_$_CATEGORY_WKWebView_$_VungleWKWebView in libads-vungle.a(WKWebView+VungleWKWebView.o)

ld: symbol(s) not found for architecture armv7

clang: error: linker command failed with exit code 1 (use -v to see invocation)

2015-09-26 20:25:03.407 Corona Simulator[1312:20637] BUILD ERROR: There was a problem linking the app.

 

Check the console for more information.

2015-09-26 20:25:03.418 Corona Simulator[1312:20637] iOS build failed (12)



[TOPIC: post.html]
#2

decaobr

[GLOBAL: userInfoPane.html]
decaobr
  • Enthusiast

  • 42 posts
  • Corona SDK

Same problem here, can´t build if the Vungle Plugin is in.



[TOPIC: post.html]
#3

decaobr

[GLOBAL: userInfoPane.html]
decaobr
  • Enthusiast

  • 42 posts
  • Corona SDK

Currently i'm using the Corona SDK version 2015.2722



[TOPIC: post.html]
#4

naveen_pcs

[GLOBAL: userInfoPane.html]
naveen_pcs
  • Contributor

  • 266 posts
  • Corona SDK

Getting this same error. Daily build 2722.

 

It was working fine yesterday.



[TOPIC: post.html]
#5

hogletpie

[GLOBAL: userInfoPane.html]
hogletpie
  • Contributor

  • 152 posts
  • Corona SDK

+1

 

Build 2722.

 

build.settings:

plugins = {
        ["CoronaProvider.ads.iads"] = {
            publisherId = "com.coronalabs",
        },
        ["CoronaProvider.ads.vungle"] = {
            publisherId = "com.vungle",
	},
        ["CoronaProvider.native.popup.social"] = {
            publisherId = "com.coronalabs",
        },
        ["plugin.google.play.services"] = {
            publisherId = "com.coronalabs"
        },
        ["plugin.adbuddiz"] = {
            publisherId = "com.adbuddiz" 
        },
        ["plugin.chartboost"] = {
            publisherId = "com.swipeware"
        },
    }, 

Xcode 7.0

 

Log attached.CoronaSDK.png



[TOPIC: post.html]
#6

hogletpie

[GLOBAL: userInfoPane.html]
hogletpie
  • Contributor

  • 152 posts
  • Corona SDK

I have contacted Vungle and await their response.



[TOPIC: post.html]
#7

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 25,925 posts
  • Enterprise

The checked in a new version of the plugin yesterday. The will have to fix it. Given its Sunday this may not get resolved immediately and they will have to fix it.

[TOPIC: post.html]
#8

chris.mock

[GLOBAL: userInfoPane.html]
chris.mock
  • Observer

  • 13 posts
  • Corona SDK

This error "“Undefined symbols” and “linker command failed” error" has been identified. The plug-in configuration was missing reference to WebKit framework, which has now been adjusted, submitted, and verified, 6am PST. Chris//Vungle



[TOPIC: post.html]
#9

Michael W.

[GLOBAL: userInfoPane.html]
Michael W.
  • Contributor

  • 276 posts
  • Alumni

Vungle pushed out a fix. Give it a try and see if it worked for you.



[TOPIC: post.html]
#10

arraffaele

[GLOBAL: userInfoPane.html]
arraffaele
  • Observer

  • 17 posts
  • Corona SDK

Vungle pushed out a fix. Give it a try and see if it worked for you.

Actually vungle plugin build correctly but do not works on iOS (no video appears) any idea??? i use corona build 2722

Android works fine and the videos appear!



[TOPIC: post.html]
#11

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 25,925 posts
  • Enterprise

You will need to show us your code including build.settings and config.lua.

 

Rob



[TOPIC: post.html]
#12

arraffaele

[GLOBAL: userInfoPane.html]
arraffaele
  • Observer

  • 17 posts
  • Corona SDK

config.lua
 
application =
 {
  content =
   {
width  = 320,
height = 480, 
scale  = "zoomStretch",
fps    = 60,
    -- imageSuffix = { ["@2x"] = 2, }
   },


  -- Push notifications
  -- notification = { iphone = { types =  { "badge", "sound", "alert", "newsstand" } } }


 }

and build.settings

settings = 
 {
  
  -- General parameters
  orientation =
   {
	default   = "portrait",
	supported = { "portrait" }
   },
	
  -- iOS parameters
  iphone =
   {
    plist =
     {
	  UIStatusBarHidden           = false,
	  UIPrerenderedIcon           = true,  -- Set to false for "shine" overlay
	  --UIApplicationExitsOnSuspend = true,  -- Uncomment to quit app on suspend

      CFBundleShortVersionString = "1.0.7",

      UIAppFonts = { "data/fonts/fonts.ttf" },
      
      --[[
      -- iOS app URL schemes:
      CFBundleURLTypes =
       {
         {
          CFBundleURLSchemes =
           {
            "fbXXXXXXXXXXXXXX", -- Example scheme for facebook
            "coronasdkapp",     -- Example second scheme
           }
         }
       }
      --]]

	 }
   },

  -- Android parameters
  android =
   {
    googlePlayGamesAppId = "xxxxxxx", -- Google Play Game Services AppID
    usesPermissions =
     {
      "android.permission.INTERNET",
      "android.permission.WRITE_EXTERNAL_STORAGE", -- For vungle
      "android.permission.ACCESS_NETWORK_STATE",   -- For vungle
      "com.android.vending.BILLING",               -- For Google In App Purchase
      --"com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY", -- Used for Samsung app store
     },
   },
  
  -- Exclude some files for different targets
  excludeFiles =
   {
    iphone  = {
               "Icon-xxhdpi.png", "Icon-xhdpi.png", "Icon-hdpi.png", "Icon-mdpi.png", "Icon-ldpi.png",
               "data/sounds/fx/*.ogg", "data/sounds/music/*.ogg"
              },
    android = {
               "Icon.png", "Icon@2x.png", "Icon-Small-40.png", "Icon-Small-40@2x.png", "Icon-60.png", "Icon-60@2x.png", "Icon-72.png", "Icon-72@2x.png", "Icon-76.png", "Icon-76@2x.png", "Icon-Small-50.png", "Icon-Small-50@2x.png", "Icon-Small.png", "Icon-Small@2x.png", "Default-568h@2x.png",
               "data/sounds/fx/*.aac", "data/sounds/music/*.aac"
              }
   },
    
  plugins =
   {
    -- Enable Vungle plugin
    ["CoronaProvider.ads.vungle"] = { publisherId = "com.vungle" },
                
    -- Enable Admob plugin
    ["plugin.google.play.services"] = { publisherId = "com.coronalabs" },

    -- Enable Google game network plugin 
    ["CoronaProvider.gameNetwork.google"] =
     {
      publisherId = "com.coronalabs",
      supportedPlatforms = { android = true },
     },

    -- Enable Apple game network plugin
    ["CoronaProvider.gameNetwork.apple"] =
     {
      publisherId        = "com.coronalabs",
      supportedPlatforms = { iphone = true, ["iphone-sim"] = true },
     },
    
    -- Enable Google In App Purchase
    ["plugin.google.iap.v3"] = { publisherId = "com.coronalabs", supportedPlatforms = { android = true } },
    
    -- Enable Social plugin (iOS and Android)
    ["CoronaProvider.native.popup.social"] = { publisherId = "com.coronalabs" },
   },

 }

I have only update my app with the same vungle code of older version but in the update (on iOS) no videos appear



[TOPIC: post.html]
#13

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 25,925 posts
  • Enterprise

First, I would suggest updating to the latest Corona SDK (2731). I don't expect it to fix it, but it is the most stable version.

 

Next we will need to see your code where you init vungle and where you try to show the ads.

 

Rob



[TOPIC: post.html]
#14

arraffaele

[GLOBAL: userInfoPane.html]
arraffaele
  • Observer

  • 17 posts
  • Corona SDK

The code is the same of old app version and in the old version work fine, i try last corona build but do not work (no video appear)

Can be a possible bug in vungle plugin????

 

init ads

ads = require("ads")
ads.init("vungle","my_vungle_id", function(event) adVideoListener(event) end)

callback function

function adVideoListener(event)
 if(event.type == "adEnd") then
  addCoins(5)
  OkDialog(this:t("COINS_ADDED"),this:t("ADDED") .. " 5 " .. this:t("COINS"),this:t("OK"))
 end
 if(event.isError) then print("Failed to receive an ad!") else print("Ad received correctly!") end
end
show video
ads:setCurrentProvider("vungle")
if(ads.isAdAvailable()) then
 ads.show("interstitial", {  isAnimated = false, isBackButtonEnabled = false })
else
 print("No video available")
end


[TOPIC: post.html]
#15

umutdemirell

[GLOBAL: userInfoPane.html]
umutdemirell
  • Observer

  • 6 posts
  • Corona SDK

@arrafaelle

 

Are you testing on ios 9 device? If you are, then there may be an ATS problem. I encountered the same problem and solved by adding the following lines in build.settings file under iphone -> plist

 

NSAppTransportSecurity = 
{
           NSAllowsArbitraryLoads = true,
},
 
I know this is not an ultimate solution because apple review board may reject just because of turning off the secure loading but until vungle publishes their ads through a secure network this can be tried.
 


[TOPIC: post.html]
#16

arraffaele

[GLOBAL: userInfoPane.html]
arraffaele
  • Observer

  • 17 posts
  • Corona SDK

i test my app in ipad with ios 9.0.2.



[TOPIC: post.html]
#17

arraffaele

[GLOBAL: userInfoPane.html]
arraffaele
  • Observer

  • 17 posts
  • Corona SDK

ok now works. :)



[TOPIC: post.html]
#18

henson802

[GLOBAL: userInfoPane.html]
henson802
  • Contributor

  • 126 posts
  • Corona SDK

 

@arrafaelle

 

Are you testing on ios 9 device? If you are, then there may be an ATS problem. I encountered the same problem and solved by adding the following lines in build.settings file under iphone -> plist

 

NSAppTransportSecurity = 
{
           NSAllowsArbitraryLoads = true,
},
 
I know this is not an ultimate solution because apple review board may reject just because of turning off the secure loading but until vungle publishes their ads through a secure network this can be tried.
 

 

 

I was having same issue.  This fixed it.

 

Thank you!!



[TOPIC: post.html]
#19

saladgamer

[GLOBAL: userInfoPane.html]
saladgamer
  • Observer

  • 19 posts
  • Corona SDK

Hi,

I have the same problem: 

- I have an old iPhone 4 stuck with iOS 7.1.2, and Vungle works without any problem.

- On the latest iPod touch up-to-date with iOS 9.1, Vungle doesn't work at all (I use the lastest daily build).

- On android, no problem.

 

The trick "NSAllowsArbitraryLoads = true" works on iOS 9.1, but is it a "valid solution"? If no, do we have to wait for a valid fix? If yes, you should add it in the documentation then.

I am afraid to encounter some issues during Apple certification with this flag enabled.

 

Thanks

Yannick



[TOPIC: post.html]
#20

hogletpie

[GLOBAL: userInfoPane.html]
hogletpie
  • Contributor

  • 152 posts
  • Corona SDK

 

NSAppTransportSecurity = 

{
           NSAllowsArbitraryLoads = true,
},

 

Fixed it for me. Or so I thought...

 

I tested my app many times. Now I receive no callback following:

 

ads.init("vungle", vungleID, AdListener) 

 

The listener does not fire. And when that happens I get an empty cache: ads.showCacheFiles()

 

and no ads showing. Previously when the listener fired ads.init was all good and the ads showed.

 

I appreciate you folks have it working - but does it work "always"?

 

NSAllowsArbitraryLoads = true worked for me for a while and now it does not. Vungle code unchanged for over a year (it's not worth posting - there's little to it as per the docs and reads much like arraffaele's code).

 

Tested using Xcode 7.0 and Corona SDK 2731 iOS 9.1 iPad Mini 4.

 

https://vungle.com/blog/2015/08/28/how-to-prepare-for-ios-9/



[TOPIC: post.html]
#21

hogletpie

[GLOBAL: userInfoPane.html]
hogletpie
  • Contributor

  • 152 posts
  • Corona SDK

I thought I'd give Xcode 6.4 and Corona SDK 2719 a whirl. That doesn't work either. Unsurprising seeing as my iPad is running iOS 9.1

 

I would urge you to check repeatedly that Vungle is working for you with live ads. 



[TOPIC: post.html]
#22

saladgamer

[GLOBAL: userInfoPane.html]
saladgamer
  • Observer

  • 19 posts
  • Corona SDK

I tried with live ads, and indeed, it doesn't work on iOS 9.1. It still works on my iPhone 4 with iOS 7.1.2.

This is quite urgent for me. Vungle is the only way to have video ads in our apps, so not having it working on the latest iOS is really worrying.



[TOPIC: post.html]
#23

henson802

[GLOBAL: userInfoPane.html]
henson802
  • Contributor

  • 126 posts
  • Corona SDK

So I just double checked two of my apps that use Vungle... Both are working fine with the video adverts. And I tested on my iPhone 6 with iOS 9.1.

Just checking but you guys are using:

ads.init("vungle", vungleID, AdListener)

You replaced the VungleID with your actual ID ( a number if I remember right) and using:

NSAppTransportSecurity =
{
NSAllowsArbitraryLoads = true,
},

In the build.settings ?

[TOPIC: post.html]
#24

hogletpie

[GLOBAL: userInfoPane.html]
hogletpie
  • Contributor

  • 152 posts
  • Corona SDK

I'm back on Xcode 7.0 and Corona SDK 2731 iPad Mini 4 iOS 9.1.

 

Here's my Vungle code and build settings.

settings = {
    orientation = {
        default = "portrait",
        supported = {"portrait"}
    },
    iphone = {
        plist = {
            NSAppTransportSecurity = 
            {
                NSAllowsArbitraryLoads = true,
                NSExceptionDomains = 
                {
                    ["fbcdn.net"] = 
                    {
                            NSIncludesSubdomains = true,
                            NSExceptionRequiresForwardSecrecy = false,
                    },
                    ["facebook.com"] = 
                    {
                            NSIncludesSubdomains = true,
                            NSExceptionRequiresForwardSecrecy = false,
                    },
                    ["akamaihd.net"] = 
                    {
                            NSIncludesSubdomains = true,
                            NSExceptionRequiresForwardSecrecy = false,
                    },
                },
            },
            LSApplicationQueriesSchemes = 
            {
                "fb",
                "fbapi20130214",
                "fbapi20130410",
                "fbapi20140410",
                "fbapi20140116",
                "fbapi20150313",
                "fbapi20150629",
                "fbauth",
                "fbauth2",
                "fb-messenger-api20140430",
            },
            FacebookAppID = "xxxxxxxxxxxxxxx", 
            CFBundleURLTypes =
            {
                {
                    CFBundleURLSchemes =
                    {
                        "fbxxxxxxxxxxxxxxx",	
                    }
                }
            },
            UIAppFonts = {
                "Komikax.ttf"
            },
            UILaunchStoryboardName = "BlackScreen",
            UIStatusBarHidden = true,
            UIPrerenderedIcon = true, -- Set to false for "shine" overlay.
            CFBundleDisplayName = "xxxxxxxxxxxxx",
            CFBundleIconFiles = {
                "Icon.png", 
                "Icon@2x.png", 
                "Icon-60.png",
                "Icon-60@2x.png",
                "Icon-60@3x.png",
                "Icon-72.png", 
                "Icon-72@2x.png",
                "Icon-76.png",
                "Icon-76@2x.png",
                "Icon-Small.png", 
                "Icon-Small@2x.png",
                "Icon-Small@3x.png",
                "Icon-Small-40.png",
                "Icon-Small-40@2x.png",
                "Icon-Small-40@3x.png",
                "Icon-Small-50.png",
                "Icon-Small-50@2x.png", 
            },
        },
    },
    plugins = {
        ["CoronaProvider.ads.iads"] = {
            publisherId = "com.coronalabs",
        },
        ["CoronaProvider.ads.vungle"] = {
            publisherId = "com.vungle",
	},
        ["CoronaProvider.native.popup.social"] = {
            publisherId = "com.coronalabs",
        },
        ["CoronaProvider.native.popup.activity"] =
        {
            publisherId = "com.coronalabs",
        },
        ["plugin.google.play.services"] = {
            publisherId = "com.coronalabs"
        },
        ["plugin.adbuddiz"] = {
            publisherId = "com.adbuddiz" 
        },
        ["plugin.chartboost"] = {
            publisherId = "com.swipeware"
        },
    }, 
}

local function AdListener(event)
    
         print("********************************************")
         print("event.response = " .. tostring(event.response))
         print("event.provider = " .. tostring(event.provider))
         print("event.isError = " .. tostring(event.isError))
         print("event.type = " .. tostring(event.type))
         print("event.name = " .. tostring(event.name))
         print("event.phase = " .. tostring(event.phase))
         print("********************************************")
    
         if event.type == "adStart" and event.isError then
		
		local function Callback()
			if audioOn == 1 then audio.play(click) end
		end
		
		native.showAlert("XXX", "Video failed to load. Please try again shortly.", {"OK"}, Callback)
	-- Video ad. displayed and then closed.
	elseif event.type == "adEnd" and not vungleAwarded then
		vungleAwarded = true
		-- Code to reward user.
	elseif event.type == "adView" and not vungleAwarded then
		-- Code to reward user.
	end
end

ads.init("iads", bundleID)--, AdListener)
ads.init("vungle", vungleID, AdListener) 
ads.init("admob", adMobID)--, AdListener)  
ads:setCurrentProvider("admob")
ads.load("interstitial", {appId = adMobID, testMode = adMobTestMode})

To quote my own previous post:

 

 

 

I would urge you to check repeatedly that Vungle is working for you with live ads. 

 

The trick here is to place some print statements in the listener as I have done. 

 

This worked for me for about 8 live ads or so:

NSAppTransportSecurity = 
{
     NSAllowsArbitraryLoads = true,
},

But now it does not work at all. When it worked for the 8 or so live ads I received print statements in the Xcode console. I can't recall exactly what the statements said but it was along the lines of "event.provider = Vungle" and other reassuring statements confirming that ads.init("vungle", vungleID, AdListener) succeeded.

 

You will know the difference between the Vungle plugin failing and a case of Vungle being out of inventory. When the plugin is working you will get some reassuring statements confirming that ads.init("vungle", vungleID, AdListener) succeeded. If you do not - you will never get any videos.

 

As a result, calling ads.showCacheFiles() in Corona SDK: https://docs.coronalabs.com/plugin/vungle/showCacheFiles.html results in (excerpted from the Xcode log):

 

"cache" : [

      ],
      "appId" : "xxxxxxxxx",
      "ifa" : "xxxxxxxxx",
      "version" : "3.2.0"
    } 

 

If there were ads successfully cached then there would be entries between the square brackets.

 

I have other ad networks that are also initialized and I started to wonder if that was the issue. I doubt it. As you can see I only use the listener for Vungle. It appears to be an ATS (Awfully Terribly Stymied!) problem. My video views per day are literally 1/10th of what they used to be these last 6 weeks or so. Ouch! :-(

 

Hopefully Vungle will chime in soon with a fix.



[TOPIC: post.html]
#25

hogletpie

[GLOBAL: userInfoPane.html]
hogletpie
  • Contributor

  • 152 posts
  • Corona SDK

@henson802

 

I have ads.init("vungle", vungleID, AdListener) where vungleID is a string. vungleID is usually (but not always!) the iOS app ID.




[topic_controls]
Page 1 of 2 1 2
 
[/topic_controls]