Jump to content

[TOPIC: topicViewTemplate]
[GLOBAL: userSmallPhoto]
Photo

Unable to Build iOS w/Appodeal - BUILD ERROR: There was a problem linking the app.
Started by ddubya82 Nov 11 2019 03:43 PM

22 replies to this topic
appodeal ios
[TOPIC CONTROLS]
[/TOPIC CONTROLS]
[modOptionsDropdown]
[/modOptionsDropdown]
[reputationFilter]
[TOPIC: post.html]
#1

ddubya82

[GLOBAL: userInfoPane.html]
ddubya82
  • Enthusiast

  • 51 posts
  • Corona SDK

Hi all,

 

Currently unable to build my iOS app with the Appodeal plugin, though i CAN build with the Appodeal Beta plugin.  I'm using 2019.3548.

 

Build fails with:

BUILD ERROR: There was a problem linking the app.

Build Settings: https://pastebin.com/tKHdLM8Q

 

Build output: https://pastebin.com/j2UcEgkf

 

Any assistance is appreciated.



[TOPIC: post.html]
#2

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 26,687 posts
  • Enterprise

Is there a reason you're having to exclude all those files? I don't think that's the cause of your issue, but it certainly makes looking at your login and build.settings.

 

It would be really helpful if your build.settings was formatted properly, without indents it's really hard to follow and I don't know what the block of code around Fyber, and CrashAnalytics is about. I'm not familiar with that being added to the iphone.plist table. Can you point to where that code came from?

 

Rob



[TOPIC: post.html]
#3

ddubya82

[GLOBAL: userInfoPane.html]
ddubya82
  • Enthusiast

  • 51 posts
  • Corona SDK

Hey Rob,

 

Formatted Build.settings: https://pastebin.com/ysKYy3bW

 

I'm excluding all those files because they're included in a remote asset bundling solution I developed.  Need them to be included in Simulator but excluded on device. 

 

The Fabric and Crashlytics were leftovers from using the Crashlytics plugin in the marketplace, either way, I removed it and just got the same build result.

 

Filled with duplicate symbol errors like this one:

duplicate symbol '_zipOpen2_64' in:
                        /Users/user916368/Desktop/Builds/Beta/Remember LITE.app/.build/plugin.appodeal.Flurry/FlurrySDK.framework/FlurrySDK(libExternalSDKs.a-armv7-master.o)

Oddly enough these look like the same errors I was getting when trying to build with Scott H's Firebase plugin. Even though I removed the Firebase plugin the errors continue.

https://forums.coronalabs.com/topic/76483-the-plugin-firebaseanalytics-does-not-work-with-appodeal-admob-on-ios/#entry403866

 

I'm using MacInCloud, could my cloud mac be caching something perhaps?



[TOPIC: post.html]
#4

vlads

[GLOBAL: userInfoPane.html]
vlads
  • Corona Geek

  • 1,051 posts
  • Corona Staff

It seems like some networks have collisions with zip plugin. Such issues are very hard to mitigate...



[TOPIC: post.html]
#5

ddubya82

[GLOBAL: userInfoPane.html]
ddubya82
  • Enthusiast

  • 51 posts
  • Corona SDK

Hi Vlad,

 

Confirmed.  I removed "plugin.zip" block from my build.settings and it built perfectly fine.

 

I was going to launch this weekend but I 100% need the zip plugin to go live.  Can anything be done?

 

Note, building Appodeal w/zip plugin on Android works.



[TOPIC: post.html]
#6

ddubya82

[GLOBAL: userInfoPane.html]
ddubya82
  • Enthusiast

  • 51 posts
  • Corona SDK

I was able to build successfully using Appodeal Beta plugin instead.



[TOPIC: post.html]
#7

vlads

[GLOBAL: userInfoPane.html]
vlads
  • Corona Geek

  • 1,051 posts
  • Corona Staff

This should be fixed in live version now. Also, I'm working on updating Appodeal plugin, should be up soon.



[TOPIC: post.html]
#8

ddubya82

[GLOBAL: userInfoPane.html]
ddubya82
  • Enthusiast

  • 51 posts
  • Corona SDK

Great. Thanks for the follow up. Are updates to plugins published anywhere?

Any plans to get Appodeal working with Amazon?

[TOPIC: post.html]
#9

vlads

[GLOBAL: userInfoPane.html]
vlads
  • Corona Geek

  • 1,051 posts
  • Corona Staff

Yes. It is harder than it seems. Working on both right now.



[TOPIC: post.html]
#10

bamazy

[GLOBAL: userInfoPane.html]
bamazy
  • Contributor

  • 146 posts
  • Corona SDK

Vlads, Appodeal plugin is updated but I still get linking errors. 



[TOPIC: post.html]
#11

vlads

[GLOBAL: userInfoPane.html]
vlads
  • Corona Geek

  • 1,051 posts
  • Corona Staff

This is very weird. What version of Corona are you using? Can you please share you build.settings and what error you're getting again (old links had expired)



[TOPIC: post.html]
#12

bamazy

[GLOBAL: userInfoPane.html]
bamazy
  • Contributor

  • 146 posts
  • Corona SDK

Vlads, I'm using the latest Corona. However, when first got this error, I was using older versions of Corona. 

 

This is my build.settings:

--
-- For more information on build.settings, see the Project Build Settings guide at:
-- https://docs.coronalabs.com/guide/distribution/buildSettings
--

settings =
{
	orientation =
	{
		-- Supported values for orientation:
		-- portrait, portraitUpsideDown, landscapeLeft, landscapeRight
		default = "portrait",
		supported = { "portrait", },
	},

	--
	-- Android section
	--
	android =
	{
		usesPermissions =
		{
			"android.permission.INTERNET",
			"android.permission.GET_ACCOUNTS",
			"android.permission.ACCESS_COARSE_LOCATION",
			"android.permission.ACCESS_FINE_LOCATION",
			"android.permission.RECEIVE_BOOT_COMPLETED",
			"android.permission.VIBRATE",
			"android.permission.WRITE_EXTERNAL_STORAGE"
		},
        applicationChildElements =
        {
            [[
                <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID"
                    android:value="ca-app-pub-000000-00000"/>
            ]],
			[[
				<meta-data android:name="com.google.firebase.messaging.default_notification_icon"
               android:resource="@drawable/corona_statusbar_icon_default"/>
			]],
        },
		strings =
		{

		    ["google_app_id"]= "1:0000:android:00000"
		},
		useGoogleServicesJson = true,
	},

	--
	-- iOS section
	--
	iphone =
	{
		xcassets = "Images.xcassets",
		plist =
		{
			GADApplicationIdentifier = "ca-app-pub-00000~0000",
			UIStatusBarHidden = false,
			UILaunchStoryboardName = "LaunchScreen",
			NSAppTransportSecurity = { NSAllowsArbitraryLoads=true },
            UIBackgroundModes = { "remote-notification" },
			FirebaseAppDelegateProxyEnabled = false,
            CFBundleDisplayName = "Permainan Peribahasa",
            CFBundleName = "mybundlename",
			NSLocationAlwaysUsageDescription = "Ads code requires location data to show more related ad",
			NSBluetoothAlwaysUsageDescription = "This app would like to access bluetooth.",
		},
	},

	--
	-- Plugins section
	--
	plugins =
	{
        ["plugin.utf8"] =
        {
            publisherId = "com.coronalabs"
    	},
        ["plugin.gpgs.v2"] = {
            publisherId = "com.coronalabs",
            supportedPlatforms = { ["android"] = true, }
        },
        ["plugin.notifications.v2"] =
        {
            publisherId = "com.coronalabs"
        },
		["plugin.firebaseAnalytics"] = {
			publisherId = "tech.scotth",
		},
       	["CoronaProvider.native.popup.social"] =
        {
            publisherId = "com.coronalabs"
        },
        ["CoronaProvider.native.popup.activity"] =
        {
            publisherId = "com.coronalabs",
			supportedPlatforms = { iphone=true }
        },
		['plugin.appodeal.base'] = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.AdColony'] = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.AmazonAds'] = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.AppLovin'] = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.Appnext'] = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.Chartboost'] = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.FacebookAudience'] = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.Flurry'] = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.GoogleAdMob'] = { 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.Ogury'] = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.StartApp'] = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.Smaato'] = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.Tapjoy'] = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.TwitterMoPub'] = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.Unity'] = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.Vungle'] = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.Yandex'] = { publisherId = 'com.coronalabs' },
	},

	--
	-- Project section
	--
	excludeFiles =
	{
		-- Exclude unnecessary files for each platform
		all = { "Icon.png", "Icon-*dpi.png", "Images.xcassets", },
		android = { "LaunchScreen.storyboardc", },
	},
}

I'm including the last few lines of the log:

    /Users/ielmar/Desktop/Permainan Peribahasa.app/.build/plugin.firebaseAnalytics/libGoogleAppMeasurement.a(encoder_common_101f61bd209c1aca3aef10f6a9a8beb0.o)
                    duplicate symbol '_nano_encode_repeated_bytes' in:
                        /Users/ielmar/Desktop/Permainan Peribahasa.app/.build/plugin.appodeal.GoogleAdMob/GoogleAppMeasurement.framework/GoogleAppMeasurement(encoder_common_9b74fb4ee71a984d5435e89f7dbe85e7.o)
                        /Users/ielmar/Desktop/Permainan Peribahasa.app/.build/plugin.firebaseAnalytics/libGoogleAppMeasurement.a(encoder_common_101f61bd209c1aca3aef10f6a9a8beb0.o)
                    duplicate symbol '_nano_encode_string' in:
                        /Users/ielmar/Desktop/Permainan Peribahasa.app/.build/plugin.appodeal.GoogleAdMob/GoogleAppMeasurement.framework/GoogleAppMeasurement(encoder_common_9b74fb4ee71a984d5435e89f7dbe85e7.o)
                        /Users/ielmar/Desktop/Permainan Peribahasa.app/.build/plugin.firebaseAnalytics/libGoogleAppMeasurement.a(encoder_common_101f61bd209c1aca3aef10f6a9a8beb0.o)
                    duplicate symbol '_nano_encode_repeated_string' in:
                        /Users/ielmar/Desktop/Permainan Peribahasa.app/.build/plugin.appodeal.GoogleAdMob/GoogleAppMeasurement.framework/GoogleAppMeasurement(encoder_common_9b74fb4ee71a984d5435e89f7dbe85e7.o)
                        /Users/ielmar/Desktop/Permainan Peribahasa.app/.build/plugin.firebaseAnalytics/libGoogleAppMeasurement.a(encoder_common_101f61bd209c1aca3aef10f6a9a8beb0.o)
                    duplicate symbol '_nano_two_pass_encoding' in:
                        /Users/ielmar/Desktop/Permainan Peribahasa.app/.build/plugin.appodeal.GoogleAdMob/GoogleAppMeasurement.framework/GoogleAppMeasurement(encoder_common_9b74fb4ee71a984d5435e89f7dbe85e7.o)
                        /Users/ielmar/Desktop/Permainan Peribahasa.app/.build/plugin.firebaseAnalytics/libGoogleAppMeasurement.a(encoder_common_101f61bd209c1aca3aef10f6a9a8beb0.o)
                    duplicate symbol '_nano_encode_repeated_uint64' in:
                        /Users/ielmar/Desktop/Permainan Peribahasa.app/.build/plugin.appodeal.GoogleAdMob/GoogleAppMeasurement.framework/GoogleAppMeasurement(encoder_common_9b74fb4ee71a984d5435e89f7dbe85e7.o)
                        /Users/ielmar/Desktop/Permainan Peribahasa.app/.build/plugin.firebaseAnalytics/libGoogleAppMeasurement.a(encoder_common_101f61bd209c1aca3aef10f6a9a8beb0.o)
                    ld: 964 duplicate symbols for architecture armv7
                    clang: error: linker command failed with exit code 1 (use -v to see invocation)
Nov 26 07:59:01.961 BUILD ERROR: There was a problem linking the app.
                    
                    Check the console for more information.
Nov 26 07:59:01.962 
Nov 26 07:59:02.015 iOS build failed (12) after 816 seconds
Nov 26 07:59:02.127 ERROR: Build Failed: There was a problem linking the app.
                    
                    Check the console for more information.
Nov 26 07:59:02.128 


[TOPIC: post.html]
#13

vlads

[GLOBAL: userInfoPane.html]
vlads
  • Corona Geek

  • 1,051 posts
  • Corona Staff

Disable firebase analytics for now.

[TOPIC: post.html]
#14

bamazy

[GLOBAL: userInfoPane.html]
bamazy
  • Contributor

  • 146 posts
  • Corona SDK

When I disable firebase analytics, I get the same error for Notification plugin. When I disable it, I get errors when launching the app. So for now the solution is to disable GoogleAdmob. 

 

Scott wrote on the other thread that he emailed you to ask about information about the build process so that he can adapt his plugins to it. It seems he hasn't found a solution to the problem. 



[TOPIC: post.html]
#15

bamazy

[GLOBAL: userInfoPane.html]
bamazy
  • Contributor

  • 146 posts
  • Corona SDK

Any progress? 



[TOPIC: post.html]
#16

vlads

[GLOBAL: userInfoPane.html]
vlads
  • Corona Geek

  • 1,051 posts
  • Corona Staff

Hey. We're working on it, but this is more complicated than it seems. For now I would recommend to use notification-v1 plugin for iOS, it does same, if you're not using Firebase for notifications.

    plugins =
    {
        ["plugin.notifications.v2"] =
        {
            publisherId = "com.coronalabs",
            supportedPlatforms = { android=true ,iphone=false, ["iphone-sim"]=false },
        },  
        ["plugin.notifications"] =
        {
            publisherId = "com.coronalabs",
            supportedPlatforms = { android=false ,iphone=true, ["iphone-sim"]=true },
        },
    },


[TOPIC: post.html]
#17

anna.krepchenko

[GLOBAL: userInfoPane.html]
anna.krepchenko
  • Observer

  • 9 posts
  • Corona SDK

Waiting for fix for AdMob to use it with firebaseAnalytics
How it's going?



[TOPIC: post.html]
#18

bamazy

[GLOBAL: userInfoPane.html]
bamazy
  • Contributor

  • 146 posts
  • Corona SDK

Vlads, this option didn't work for me. I got the below errors which are similar to the previous ones: 

libNotificationsV2Plugin.a(IPhoneNotificationEvent.o)
                    duplicate symbol 'IPhoneRemoteNotificationEvent::IPhoneRemoteNotificationEvent(NSDictionary*, NotificationEvent::_ApplicationState)' in:
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.notifications/libnotifications.a(IPhoneNotificationEvent.o)
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.notifications.v2/libNotificationsV2Plugin.a(IPhoneNotificationEvent.o)
                    duplicate symbol 'IPhoneRemoteNotificationEvent::IPhoneRemoteNotificationEvent(NSDictionary*, NotificationEvent::_ApplicationState)' in:
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.notifications/libnotifications.a(IPhoneNotificationEvent.o)
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.notifications.v2/libNotificationsV2Plugin.a(IPhoneNotificationEvent.o)
                    duplicate symbol 'IPhoneLocalNotificationEvent::IPhoneLocalNotificationEvent(UILocalNotification*, NotificationEvent::_ApplicationState)' in:
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.notifications/libnotifications.a(IPhoneNotificationEvent.o)
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.notifications.v2/libNotificationsV2Plugin.a(IPhoneNotificationEvent.o)
                    duplicate symbol 'IPhoneLocalNotificationEvent::IPhoneLocalNotificationEvent(UILocalNotification*, NotificationEvent::_ApplicationState)' in:
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.notifications/libnotifications.a(IPhoneNotificationEvent.o)
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.notifications.v2/libNotificationsV2Plugin.a(IPhoneNotificationEvent.o)
                    ld: 1009 duplicate symbols for architecture armv7
                    clang: error: linker command failed with exit code 1 (use -v to see invocation)


[TOPIC: post.html]
#19

vlads

[GLOBAL: userInfoPane.html]
vlads
  • Corona Geek

  • 1,051 posts
  • Corona Staff

It seems like it is trying to bolt link v1 and v2 plugin on iOS.

[TOPIC: post.html]
#20

bamazy

[GLOBAL: userInfoPane.html]
bamazy
  • Contributor

  • 146 posts
  • Corona SDK

Yeah, I also thought of it. I think it happens during the built process. So it doesn't ignore plugin.notifications.v2 even if we use "iphone=false" for the plugin. 



[TOPIC: post.html]
#21

vlads

[GLOBAL: userInfoPane.html]
vlads
  • Corona Geek

  • 1,051 posts
  • Corona Staff

So, I tried, and

    plugins =
    {
        ["plugin.notifications.v2"] =
        {
            publisherId = "com.coronalabs",
            supportedPlatforms = { android=true },
        },  
        ["plugin.notifications"] =
        {
            publisherId = "com.coronalabs",
            supportedPlatforms = { iphone=true, ["iphone-sim"]=true },
        },
    },    

worked for me.

 

Also note that you would need to require 'plugin.notifications' in your main code.



[TOPIC: post.html]
#22

bamazy

[GLOBAL: userInfoPane.html]
bamazy
  • Contributor

  • 146 posts
  • Corona SDK

This also didn't work for me. This time I got the below error: 

    /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.firebaseAnalytics/libGoogleAppMeasurement.a(encoder_common_101f61bd209c1aca3aef10f6a9a8beb0.o)
                    duplicate symbol '_nano_encode_repeated_bytes' in:
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.appodeal.GoogleAdMob/GoogleAppMeasurement.framework/GoogleAppMeasurement(encoder_common_9b74fb4ee71a984d5435e89f7dbe85e7.o)
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.firebaseAnalytics/libGoogleAppMeasurement.a(encoder_common_101f61bd209c1aca3aef10f6a9a8beb0.o)
                    duplicate symbol '_nano_encode_string' in:
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.appodeal.GoogleAdMob/GoogleAppMeasurement.framework/GoogleAppMeasurement(encoder_common_9b74fb4ee71a984d5435e89f7dbe85e7.o)
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.firebaseAnalytics/libGoogleAppMeasurement.a(encoder_common_101f61bd209c1aca3aef10f6a9a8beb0.o)
                    duplicate symbol '_nano_encode_repeated_string' in:
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.appodeal.GoogleAdMob/GoogleAppMeasurement.framework/GoogleAppMeasurement(encoder_common_9b74fb4ee71a984d5435e89f7dbe85e7.o)
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.firebaseAnalytics/libGoogleAppMeasurement.a(encoder_common_101f61bd209c1aca3aef10f6a9a8beb0.o)
                    duplicate symbol '_nano_two_pass_encoding' in:
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.appodeal.GoogleAdMob/GoogleAppMeasurement.framework/GoogleAppMeasurement(encoder_common_9b74fb4ee71a984d5435e89f7dbe85e7.o)
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.firebaseAnalytics/libGoogleAppMeasurement.a(encoder_common_101f61bd209c1aca3aef10f6a9a8beb0.o)
                    duplicate symbol '_nano_encode_repeated_uint64' in:
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.appodeal.GoogleAdMob/GoogleAppMeasurement.framework/GoogleAppMeasurement(encoder_common_9b74fb4ee71a984d5435e89f7dbe85e7.o)
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.firebaseAnalytics/libGoogleAppMeasurement.a(encoder_common_101f61bd209c1aca3aef10f6a9a8beb0.o)
                    ld: 964 duplicate symbols for architecture armv7
                    clang: error: linker command failed with exit code 1 (use -v to see invocation)

I have included the notification plugins and the firebaseAnalytics plugins like below: 

if system.getInfo( 'environment' ) ~= 'simulator' then

    timer.performWithDelay( 1000, function ( )
        local notifications = nil
        local platform = system.getInfo("platform")
        if "android" == platform then
            notifications = require( "plugin.notifications.v2")
            notifications.registerForPushNotifications( { useFCM = true } )
        elseif "ios" == platform then
            notifications = require( "plugin.notifications" )
        end
    end )
    
    firebaseAnalytics = require("plugin.firebaseAnalytics")
    timer.performWithDelay( 200, function ( )
        firebaseAnalytics.init()
    end )
end


[TOPIC: post.html]
#23

bamazy

[GLOBAL: userInfoPane.html]
bamazy
  • Contributor

  • 146 posts
  • Corona SDK

I also commented all the notification plugins, and tried building, it didn't work. This time the conflict is between GoogleAdmob and firebaseAnalytics.

 

A few lines from the log:

    /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.firebaseAnalytics/libGoogleAppMeasurement.a(encoder_common_101f61bd209c1aca3aef10f6a9a8beb0.o)
                    duplicate symbol '_nano_two_pass_encoding' in:
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.appodeal.GoogleAdMob/GoogleAppMeasurement.framework/GoogleAppMeasurement(encoder_common_9b74fb4ee71a984d5435e89f7dbe85e7.o)
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.firebaseAnalytics/libGoogleAppMeasurement.a(encoder_common_101f61bd209c1aca3aef10f6a9a8beb0.o)
                    duplicate symbol '_nano_encode_repeated_uint64' in:
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.appodeal.GoogleAdMob/GoogleAppMeasurement.framework/GoogleAppMeasurement(encoder_common_9b74fb4ee71a984d5435e89f7dbe85e7.o)
                        /Users/ielmar/Desktop/BurclerCL.app/.build/plugin.firebaseAnalytics/libGoogleAppMeasurement.a(encoder_common_101f61bd209c1aca3aef10f6a9a8beb0.o)
                    ld: 964 duplicate symbols for architecture armv7
                    clang: error: linker command failed with exit code 1 (use -v to see invocation)



[topic_controls]
[/topic_controls]

Also tagged with one or more of these keywords: appodeal, ios