Error in Building with Appodeal

Dear all experts,

I have got the following error warning and error when building for iOS,
My built is Version 2020.3627
Xcode 10.3 (since I only got iPhone 6 Plus for testing)

I don’t have idea on why it happened. Please help!!!
Thanks in advance!!!

ld: warning: Could not find auto-linked library ‘swiftCompatibility50’
ld: warning: Could not find auto-linked library ‘swiftCompatibilityDynamicReplacements’
ld: warning: Could not find auto-linked library ‘swiftCoreMIDI’
ld: warning: Could not find auto-linked framework ‘UniformTypeIdentifiers’
ld: warning: Could not find auto-linked framework ‘StackMRAIDKit’
ld: warning: Could not find auto-linked framework ‘StackRichMedia’
ld: warning: Could not find auto-linked framework ‘StackXML’
ld: warning: Could not find auto-linked framework ‘StackUIKit’
ld: warning: Could not find auto-linked framework ‘StackNASTKit’
ld: warning: Could not find auto-linked framework ‘StackVASTKit’
ld: warning: Could not find auto-linked framework ‘StackVASTAssets’
ld: warning: Could not find auto-linked framework ‘AppodealMediationCoreObjC’
ld: warning: Could not find auto-linked framework ‘StackVideoPlayer’
ld: warning: Could not find auto-linked framework ‘StackFoundation’
ld: warning: Could not find auto-linked framework ‘AppodealAdExchangeSDK’
Undefined symbols for architecture armv7:
“_UISceneDidActivateNotification”, referenced from:
l003 in GoogleMobileAds(GADDeviceOrientationSignalCache.o)
_GADSceneDidActivateObserversForView in GoogleMobileAds(GADSceneEvents.o)
l001 in GoogleMobileAds(GADViewVisibilityMonitor.o)
l001 in GoogleMobileAds(GADIntermissionStateMonitor.o)
l003 in GoogleMobileAds(GADEvents.o)
l003 in GoogleMobileAds(GADDeviceOrientationSignalCache.o)
_GADSceneDidActivateObserversForView in GoogleMobileAds(GADSceneEvents.o)
l001 in GoogleMobileAds(GADViewVisibilityMonitor.o)
l001 in GoogleMobileAds(GADIntermissionStateMonitor.o)
l003 in GoogleMobileAds(GADEvents.o)
l003 in GoogleMobileAds(GADDeviceOrientationSignalCache.o)
_GADSceneDidActivateObserversForView in GoogleMobileAds(GADSceneEvents.o)
l001 in GoogleMobileAds(GADViewVisibilityMonitor.o)
l001 in GoogleMobileAds(GADIntermissionStateMonitor.o)
l003 in GoogleMobileAds(GADEvents.o)
l003 in GoogleMobileAds(GADDeviceOrientationSignalCache.o)
_GADSceneDidActivateObserversForView in GoogleMobileAds(GADSceneEvents.o)
l001 in GoogleMobileAds(GADViewVisibilityMonitor.o)
l001 in GoogleMobileAds(GADIntermissionStateMonitor.o)
l003 in GoogleMobileAds(GADEvents.o)
l003 in GoogleMobileAds(GADDeviceOrientationSignalCache.o)
_GADSceneDidActivateObserversForView in GoogleMobileAds(GADSceneEvents.o)
l001 in GoogleMobileAds(GADViewVisibilityMonitor.o)
l001 in GoogleMobileAds(GADIntermissionStateMonitor.o)
l003 in GoogleMobileAds(GADEvents.o)
“_UISceneDidDisconnectNotification”, referenced from:
___34-[ADCWindowManager initWithScene:]_block_invoke in AdColony(ADCWindowManager.o)
“_UISceneDidEnterBackgroundNotification”, referenced from:
l003 in GoogleMobileAds(GADApplicationStateEvents.o)
l001 in GoogleMobileAds(GADIntermissionStateMonitor.o)
l003 in GoogleMobileAds(GADEvents.o)
l003 in GoogleMobileAds(GADApplicationStateEvents.o)
l001 in GoogleMobileAds(GADIntermissionStateMonitor.o)
l003 in GoogleMobileAds(GADEvents.o)
l003 in GoogleMobileAds(GADApplicationStateEvents.o)
l001 in GoogleMobileAds(GADIntermissionStateMonitor.o)
l003 in GoogleMobileAds(GADEvents.o)
“_UISceneWillDeactivateNotification”, referenced from:
l008 in GoogleMobileAds(GADRequestStatisticsSignals.o)
_GADSceneWillDeactivateObserversForView in GoogleMobileAds(GADSceneEvents.o)
l001 in GoogleMobileAds(GADViewVisibilityMonitor.o)
l003 in GoogleMobileAds(GADEvents.o)
l008 in GoogleMobileAds(GADRequestStatisticsSignals.o)
_GADSceneWillDeactivateObserversForView in GoogleMobileAds(GADSceneEvents.o)
l001 in GoogleMobileAds(GADViewVisibilityMonitor.o)
l003 in GoogleMobileAds(GADEvents.o)
l008 in GoogleMobileAds(GADRequestStatisticsSignals.o)
_GADSceneWillDeactivateObserversForView in GoogleMobileAds(GADSceneEvents.o)
l001 in GoogleMobileAds(GADViewVisibilityMonitor.o)
l003 in GoogleMobileAds(GADEvents.o)
l008 in GoogleMobileAds(GADRequestStatisticsSignals.o)
_GADSceneWillDeactivateObserversForView in GoogleMobileAds(GADSceneEvents.o)
l001 in GoogleMobileAds(GADViewVisibilityMonitor.o)
l003 in GoogleMobileAds(GADEvents.o)
“_UISceneWillEnterForegroundNotification”, referenced from:
l003 in GoogleMobileAds(GADApplicationStateEvents.o)
l001 in GoogleMobileAds(GADIntermissionStateMonitor.o)
l003 in GoogleMobileAds(GADEvents.o)
l003 in GoogleMobileAds(GADApplicationStateEvents.o)
l001 in GoogleMobileAds(GADIntermissionStateMonitor.o)
l003 in GoogleMobileAds(GADEvents.o)
l003 in GoogleMobileAds(GADApplicationStateEvents.o)
l001 in GoogleMobileAds(GADIntermissionStateMonitor.o)
l003 in GoogleMobileAds(GADEvents.o)
“___darwin_check_fd_set_overflow”, referenced from:
_global_select in libtemplate.a(select.o)
_collect_fd in libtemplate.a(select.o)
_return_fd in libtemplate.a(select.o)
_global_select in libtemplate.a(select.o)
_collect_fd in libtemplate.a(select.o)
_return_fd in libtemplate.a(select.o)
“___isPlatformVersionAtLeast”, referenced from:
___27+[MTRGDeviceUtils hasNotch]_block_invoke in MyTargetSDK(MTRGDeviceUtils.o)
-[MTRGInterstitialPromoStyle2View handleClick:] in MyTargetSDK(MTRGInterstitialPromoStyle2View.o)
-[MTRGInterstitialPromoStyle2View layoutSubviews] in MyTargetSDK(MTRGInterstitialPromoStyle2View.o)
-[MTRGClickHandler openExternalApp:completionHandler:] in MyTargetSDK(MTRGClickHandler.o)
-[MTRGInterstitialPromoDefaultStyleView handleMyTargetButtonState:] in MyTargetSDK(MTRGInterstitialPromoDefaultStyleView.o)
-[MTRGInterstitialPromoDefaultStyleView layoutSubviews] in MyTargetSDK(MTRGInterstitialPromoDefaultStyleView.o)
-[MTRGMraidViewPresenter adjustLayout] in MyTargetSDK(MTRGMraidViewPresenter.o)

“_swift_FORCE_LOAD$_swiftCompatibility50”, referenced from:
_swift_FORCE_LOAD$swiftCompatibility50$_APDTwitterMoPubAdapter in libAPDTwitterMoPubAdapter.a(MoPubNativeWrapper.o)
_swift_FORCE_LOAD$swiftCompatibility50$_APDTwitterMoPubAdapter in libAPDTwitterMoPubAdapter.a(MoPubAdNetwork.o)
_swift_FORCE_LOAD$swiftCompatibility50$_APDTwitterMoPubAdapter in libAPDTwitterMoPubAdapter.a(MoPubInterstitialAdapter.o)
_swift_FORCE_LOAD$swiftCompatibility50$_APDTwitterMoPubAdapter in libAPDTwitterMoPubAdapter.a(Factory.o)
_swift_FORCE_LOAD$swiftCompatibility50$_APDTwitterMoPubAdapter in libAPDTwitterMoPubAdapter.a(MoPubRewardedAdAdapter.o)
_swift_FORCE_LOAD$swiftCompatibility50$_APDTwitterMoPubAdapter in libAPDTwitterMoPubAdapter.a(MoPubRewardedAd.o)
_swift_FORCE_LOAD$swiftCompatibility50$_APDTwitterMoPubAdapter in libAPDTwitterMoPubAdapter.a(MoPubSkippableVideoAdapter.o)

(maybe you meant: _swift_FORCE_LOAD$swiftCompatibility50$_APDAppodealAdExchangeAdapter, _swift_FORCE_LOAD$swiftCompatibility50$_APDGoogleAdMobAdapter , _swift_FORCE_LOAD$swiftCompatibility50$_APDOguryAdapter , _swift_FORCE_LOAD$swiftCompatibility50$_APDTapjoyAdapter , _swift_FORCE_LOAD$swiftCompatibility50$_APDSmaatoAdapter , _swift_FORCE_LOAD$swiftCompatibility50$_APDIronSourceAdapter , _swift_FORCE_LOAD$swiftCompatibility50$_APDAmazonAdsAdapter , _swift_FORCE_LOAD$swiftCompatibility50$_APDAdColonyAdapter , _swift_FORCE_LOAD$swiftCompatibility50$_APDAppLovinAdapter , _swift_FORCE_LOAD$swiftCompatibility50$_APDMintegralAdapter , _swift_FORCE_LOAD$swiftCompatibility50$_APDTwitterMoPubAdapter , _swift_FORCE_LOAD$swiftCompatibility50$_APDYandexAdapter , _swift_FORCE_LOAD$swiftCompatibility50$_APDStartAppAdapter , _swift_FORCE_LOAD$swiftCompatibility50$_APDUnityAdapter , _swift_FORCE_LOAD$swiftCompatibility50$_APDInMobiAdapter , _swift_FORCE_LOAD$swiftCompatibility50$_APDChartboostAdapter , _swift_FORCE_LOAD$swiftCompatibility50$_APDMyTargetAdapter )
“_swift_FORCE_LOAD$_swiftCompatibilityDynamicReplacements”, referenced from:
_swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDTwitterMoPubAdapter in libAPDTwitterMoPubAdapter.a(MoPubNativeWrapper.o)
_swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDTwitterMoPubAdapter in libAPDTwitterMoPubAdapter.a(MoPubAdNetwork.o)
_swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDTwitterMoPubAdapter in libAPDTwitterMoPubAdapter.a(MoPubInterstitialAdapter.o)
_swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDTwitterMoPubAdapter in libAPDTwitterMoPubAdapter.a(Factory.o)
_swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDTwitterMoPubAdapter in libAPDTwitterMoPubAdapter.a(MoPubRewardedAdAdapter.o)
_swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDTwitterMoPubAdapter in libAPDTwitterMoPubAdapter.a(MoPubRewardedAd.o)
_swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDTwitterMoPubAdapter in libAPDTwitterMoPubAdapter.a(MoPubSkippableVideoAdapter.o)

(maybe you meant: _swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDGoogleAdMobAdapter, _swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDSmaatoAdapter , _swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDChartboostAdapter , _swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDStartAppAdapter , _swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDAmazonAdsAdapter , _swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDAdColonyAdapter , _swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDYandexAdapter , _swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDIronSourceAdapter , _swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDUnityAdapter , _swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDAppLovinAdapter , _swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDInMobiAdapter , _swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDMyTargetAdapter , _swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDOguryAdapter , _swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDTwitterMoPubAdapter , _swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDAppodealAdExchangeAdapter , _swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDMintegralAdapter , _swift_FORCE_LOAD$swiftCompatibilityDynamicReplacements$_APDTapjoyAdapter )
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Nov 21 18:21:10.451 BUILD ERROR: There was a problem linking the app.

You are using the official Appodeal plugin, I don’t believe that one works currently.

Thanks for the Appodeal plugin, @agramonte! I just ran into the same issue with iOS and your plugin took about five minutes from signing up on the Plugins Market to incorporating and building. Successfully serving test ads.
Do you know if your plugin works for Amazon? I know the Solar2D documentation says the official plugin doesn’t, but the Appodeal dashboard lets you create an Amazon app.

@colinmorgan It does. It runs and shows ads. For some reason even though it says you can use Chartboost, I can’t get my Amazon devices to show Chartboost ads on Appodeal. Appodeal is looking at it and it might be just my account. Chartboost currently is producing very high eCPM on Amazon apps (somewhere between iOS and Android eCPMs). For this reason, I have been using my ironsource plugin for Amazon apps, but the Appodeal will work and show ads.

@agramonte That’s great news! I’ll implement it ASAP. Thanks again!

Thanks agramonte, so what will be the best method now to implement ads in ios and android app?
is it just admob plugin?

besides, my builds.setting is: (Please let me know how to correct it or simply use admob plugin is easiest)

plugins =
{
    -- Base
    ['plugin.appodeal.base'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.GoogleAdMob'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.StartApp'] = { publisherId = 'com.coronalabs' },

    -- Banner
    ['plugin.appodeal.AppLovin'] = { publisherId = 'com.coronalabs' },
    --['plugin.appodeal.FacebookAudience'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.Flurry'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.InMobi'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.MyTarget'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.Yandex'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.AmazonAds'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.TwitterMoPub'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.Smaato'] = { publisherId = 'com.coronalabs' },

    -- Interstitial
    ['plugin.appodeal.AdColony'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.AppLovin'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.Chartboost'] = { publisherId = 'com.coronalabs' },
    --['plugin.appodeal.FacebookAudience'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.Flurry'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.InMobi'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.IronSource'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.Mobvista'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.MyTarget'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.StartApp'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.Ogury'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.AmazonAds'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.TwitterMoPub'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.Smaato'] = { publisherId = 'com.coronalabs' },

    -- Rewarded Video
    ['plugin.appodeal.AdColony'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.AppLovin'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.Chartboost'] = { publisherId = 'com.coronalabs' },
    --['plugin.appodeal.FacebookAudience'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.Flurry'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.InMobi'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.IronSource'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.Mobvista'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.MyTarget'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.StartApp'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.Unity'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.Tapjoy'] = { publisherId = 'com.coronalabs' },
    ['plugin.appodeal.TwitterMoPub'] = { publisherId = 'com.coronalabs' },

    --["plugin.appodeal"] =
    --{
    --   publisherId = "com.coronalabs",
	--	supportedPlatforms = { android=true }
    --},

This is the official Appodeal plugin. I don’t use this and don’t even know if it works. I use my own plugins that are found here:

thanks… I’ll try to use it and let you know whether I got problems… thanks for kindly share.

Hi agramonte,

I’ll build success by using plugin.appodeal and plugin.appodealAdapterA in ios but FAILED in android
Please find the following error from simulator:

16:05:24.663 ERROR: configuring ‘plugin.appodeal’ failed!
16:05:24.663
16:05:24.663 FAILURE: Build failed with an exception.
16:05:24.663
16:05:24.663 * Where:
16:05:24.663 Build file ‘C:\Users\Frankie Yip\AppData\Local\Temp\Corona Labs\CLtmpa24972\template\app\build.gradle.kts’ line: 303
16:05:24.663
16:05:24.663 * What went wrong:
16:05:24.663 A problem occurred evaluating script.
16:05:24.663 > Could not find method compileOptions() for arguments [corona_5nzcf2mqtn86954b2bmpseuy2$_run_closure1@1024932] on project ‘:App’ of type org.gradle.api.Project.
16:05:24.663
16:05:24.663 * Try:
16:05:24.663 Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
16:05:24.663
16:05:24.663 * Get more help at https://help.gradle.org
16:05:24.663
16:05:24.663 BUILD FAILED in 14s
16:05:24.663 Picked up JAVA_TOOL_OPTIONS: -Duser.language=en
16:05:24.839 Android build failed (1) after 17 seconds

Could you help! Many thanks for your contribution made

I’ll take a look today.

Please try and again. And please test. I didn’t get a chance to do my usual rounds of testing. I have updated the Android version to 2.8.1 (the latest on the Appodeal site). I also added a readme with the version of the plugins included.

I was able to build for Android and uploaded as internal test release but after closing the interstitial ad, the app crashes.

Also, I couldn’t build with FirebaseAnalytics and Notification plugins.

Can you send me what errors you are getting both for the build and the crash after interstitial? Also, build settings will help.

For the FirebaseAnalytics, i don’t believe I can do anything. That plugin uses play-services-measurement-base and the pre-packaged Appodeal Admob plugin (not something that I did but what is provided by default by Appodeal) also uses that package. I see the same error when you include Notification and FirebaseAnalytics plugin, but it would be interesting to see what you get if you just use Notification plugin. I suspect Appodeal and Notification should work.

The error when closing the interstitial, I will take a look at some time today.

@agramonte, thank you very much for having a look at it. I tried disabling firebaseAnalytics and building Appodeal and Notifications but I got the same error.

This is the link to the error: https://pastebin.com/q87JkP0Q

Sorry, same library. If I had the time I could try to disassemble the Appodeal Admob plugin and separate out the library, but I am not even sure that would work. Appodeal Admob plugin is using a different version of the library.

The crash on close of interstitial is now resolved.

@agramonte, the interstitial and rewardedvideo problem is solved now. Thanks a lot!

How do you solve Notification or Analytics problem in your apps and games?

Currently, I use Tenjin and GameAnalytics for Analytics, and I use OneSignal for notifications.

I noticed that you are still using GameAnalytics, not from Solar2d plugins. I didn’t know they were keeping both up to date. The GA documentation points to:
https://www.solar2dplugins.com/plugins/gameanalytics

Interesting enough on my test app it builds with this configuration:

plugins =
{

	["plugin.appodeal"] = {
		publisherId = "com.cabagomez",
		supportedPlatforms = {
			android= true
		}
		
	},
	["plugin.appodealAdaptersA"] = {
		publisherId = "com.cabagomez",
		supportedPlatforms = {
			android= true
		}
		
	},
	["plugin.appodealAdaptersB"] = {
		publisherId = "com.cabagomez",
		supportedPlatforms = {
			android= true
		}
		
	},
	["plugin.notifications.v2"] =
    {
        publisherId = "com.coronalabs"
    },
	

},

And this also worked:

[ "plugin.appodeal"] = {
			publisherId = "com.cabagomez",
			supportedPlatforms = {
				android= true
			}
			
		},
		["plugin.appodealAdaptersA"] = {
			publisherId = "com.cabagomez",
			supportedPlatforms = {
				android= true
			}
			
		},
		["plugin.appodealAdaptersB"] = {
			publisherId = "com.cabagomez",
			supportedPlatforms = {
				android= true
			}
			
		},
		["plugin.notifications.v2"] =
        {
            publisherId = "com.coronalabs"
        },
		["plugin.firebaseAnalytics"] =
		{
		  publisherId="tech.scotth",
		  marketplaceId = "xxxxx",
		},