Appodeal and Flurry namespace collision

Hi All,

Has anyone successfully managed to use flurry and appodeal in their build for iOS? If I include the flurry plugin in my build.settings I will get a duplicate symbol error when xcode does it’s linking and the build fails.

If I remove the flurry plugin from the build.settings i can build and even submit via testflight, but I get a runtime error on the device from corona telling me i’m missing the resource plugin.flurry.analytics from my archive.

Any suggestions?

Thanks!

BTW the log is pretty long so here’s a link to it instead: https://drive.google.com/open?id=0B5uKlIJIYFVbZXJ4WHM5ckZmd2M 

build.settings:

– For more information on build.settings see the Corona SDK Build Guide at:

http://docs.coronalabs.com/guide/distribution/buildSettings/index.html

settings =

{

plugins =

  {

      [“plugin.flurry.analytics”] =

      {

          publisherId = “com.coronalabs”

      },

      [“CoronaProvider.native.popup.social”] =

      {

          publisherId = “com.coronalabs”

      },

      [“CoronaProvider.native.popup.activity”] =

      {

          publisherId = “com.coronalabs”,

          supportedPlatforms = { iphone=true, },

      },

      [“plugin.appodeal”] =

      {

          publisherId = “com.coronalabs”,

          supportedPlatforms = { iphone=true, android=true, [“android-kindle”]=true, appletvos=true }

      },

      [“plugin.iap_badger”] =

        {

            – required

            publisherId = “uk.co.happymongoose”,

        },

        [“plugin.google.iap.v3”] =

        {

            – required

            publisherId = “com.coronalabs”,

            supportedPlatforms = { android = true },

        },  

        [“CoronaProvider.gameNetwork.apple”] =

        {

            publisherId = “com.coronalabs”,

            supportedPlatforms = { iphone=true }

        },

        [“plugin.gpgs”] =

        {

            publisherId = “com.coronalabs”

        },

        

  },

  splashScreen = 

    {

        enable = false

    },

orientation =

{

– Supported values for orientation:

– portrait, portraitUpsideDown, landscapeLeft, landscapeRight

default = “landscapeRight”,

supported = { “landscapeRight”, }

},

excludeFiles =

{

– Include only the necessary icon files on each platform

iphone = { “Icon-*dpi.png”, },

android = { “Icon.png”, “Icon-Small-*.png”, “Icon*@2x.png”, },

},

– iOS Section

iphone =

{

plist =

{

UIStatusBarHidden = false,

UIPrerenderedIcon = true, – set to false for “shine” overlay

      MinimumOSVersion = “8.0”,

      NSAppTransportSecurity = { NSAllowsArbitraryLoads=true },

–UIApplicationExitsOnSuspend = true, – uncomment to quit app on suspend

CFBundleIconFiles =

{

“Icon.png”,

“Icon@2x.png”,

“Icon-167.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-50.png”,

“Icon-Small-50@2x.png”,

},

–[[

– iOS app URL schemes:

CFBundleURLTypes =

{

{

CFBundleURLSchemes =

{

“fbXXXXXXXXX”,  – replace XXXXXXXXX with your Facebook appId

}

}

}

–]]

}

},

– Android Section

android =

{

usesPermissions =

{

“android.permission.INTERNET”,

      “android.permission.ACCESS_NETWORK_STATE”,

      “com.android.vending.BILLING”,

},

     googlePlayGamesAppId = “YOUR_APPLICATION_ID”,

},

}

Hi @authorwjf,

Because the Appodeal SDK contains various other SDKs for mediation and advertising, you cannot use it in conjunction with Flurry Analytics. This is outlined in the docs here:

https://docs.coronalabs.com/plugin/appodeal/index.html#overview

Other analytics plugins can be used in place of Flurry, so I encourage you to explore these options:

https://marketplace.coronalabs.com/plugins/analytics-attribution

Take care,

Brent

Thanks, @Brent. I totally missed that. Guess I will pick another analytics library.

BTW the log is pretty long so here’s a link to it instead: https://drive.google.com/open?id=0B5uKlIJIYFVbZXJ4WHM5ckZmd2M 

build.settings:

– For more information on build.settings see the Corona SDK Build Guide at:

http://docs.coronalabs.com/guide/distribution/buildSettings/index.html

settings =

{

plugins =

  {

      [“plugin.flurry.analytics”] =

      {

          publisherId = “com.coronalabs”

      },

      [“CoronaProvider.native.popup.social”] =

      {

          publisherId = “com.coronalabs”

      },

      [“CoronaProvider.native.popup.activity”] =

      {

          publisherId = “com.coronalabs”,

          supportedPlatforms = { iphone=true, },

      },

      [“plugin.appodeal”] =

      {

          publisherId = “com.coronalabs”,

          supportedPlatforms = { iphone=true, android=true, [“android-kindle”]=true, appletvos=true }

      },

      [“plugin.iap_badger”] =

        {

            – required

            publisherId = “uk.co.happymongoose”,

        },

        [“plugin.google.iap.v3”] =

        {

            – required

            publisherId = “com.coronalabs”,

            supportedPlatforms = { android = true },

        },  

        [“CoronaProvider.gameNetwork.apple”] =

        {

            publisherId = “com.coronalabs”,

            supportedPlatforms = { iphone=true }

        },

        [“plugin.gpgs”] =

        {

            publisherId = “com.coronalabs”

        },

        

  },

  splashScreen = 

    {

        enable = false

    },

orientation =

{

– Supported values for orientation:

– portrait, portraitUpsideDown, landscapeLeft, landscapeRight

default = “landscapeRight”,

supported = { “landscapeRight”, }

},

excludeFiles =

{

– Include only the necessary icon files on each platform

iphone = { “Icon-*dpi.png”, },

android = { “Icon.png”, “Icon-Small-*.png”, “Icon*@2x.png”, },

},

– iOS Section

iphone =

{

plist =

{

UIStatusBarHidden = false,

UIPrerenderedIcon = true, – set to false for “shine” overlay

      MinimumOSVersion = “8.0”,

      NSAppTransportSecurity = { NSAllowsArbitraryLoads=true },

–UIApplicationExitsOnSuspend = true, – uncomment to quit app on suspend

CFBundleIconFiles =

{

“Icon.png”,

“Icon@2x.png”,

“Icon-167.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-50.png”,

“Icon-Small-50@2x.png”,

},

–[[

– iOS app URL schemes:

CFBundleURLTypes =

{

{

CFBundleURLSchemes =

{

“fbXXXXXXXXX”,  – replace XXXXXXXXX with your Facebook appId

}

}

}

–]]

}

},

– Android Section

android =

{

usesPermissions =

{

“android.permission.INTERNET”,

      “android.permission.ACCESS_NETWORK_STATE”,

      “com.android.vending.BILLING”,

},

     googlePlayGamesAppId = “YOUR_APPLICATION_ID”,

},

}

Hi @authorwjf,

Because the Appodeal SDK contains various other SDKs for mediation and advertising, you cannot use it in conjunction with Flurry Analytics. This is outlined in the docs here:

https://docs.coronalabs.com/plugin/appodeal/index.html#overview

Other analytics plugins can be used in place of Flurry, so I encourage you to explore these options:

https://marketplace.coronalabs.com/plugins/analytics-attribution

Take care,

Brent

Thanks, @Brent. I totally missed that. Guess I will pick another analytics library.