Bug 23268 - [iOS]FlurryAppCircle monotouch-binding gives build error while building with mono3.10.0
Summary: [iOS]FlurryAppCircle monotouch-binding gives build error while building wit...
Alias: None
Product: iOS
Classification: Xamarin
Component: Samples ()
Version: XI 8.2.0
Hardware: PC Mac OS
: Normal normal
Target Milestone: Untriaged
Assignee: Bugzilla
Depends on:
Reported: 2014-09-22 17:47 UTC by GouriKumari
Modified: 2015-03-06 12:43 UTC (History)
8 users (show)

Is this bug a regression?: ---
Last known good build:

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.

Please create a new report on Developer Community or GitHub with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:

Description GouriKumari 2014-09-22 17:47:19 UTC
Steps to reproduce:
Install Xamarin.iOS 3b73f2a461e54490e79591dadb8060331346d0c2 
Build FlurryAppCircle monotouch-binding from mono/monotouch-bindings

Actual behaviour:
FlurryAppCircle generates build error. 
Build log: https://gist.github.com/GouriKumari/9cf242e9327562ba3129

Supplemental Info:
This binding did build successfully with 8.0.0. 
Build Log: https://gist.github.com/GouriKumari/f1aa46c5855211b67f8c

Test Env:
Xamarin.iOS 3b73f2a461e54490e79591dadb8060331346d0c2 
FlurryAppCircle monotouch-binding from mono/monotouch-bindings
Comment 1 Rolf Bjarne Kvinge [MSFT] 2014-09-23 08:20:07 UTC
I can only reproduce these errors if I don't build the binding library first. Are you sure you built the binding library first?
Comment 2 GouriKumari 2014-09-23 12:39:22 UTC
The 20 build error that I mentioned in Comment#0 occurred because FlurryAppCircle bindings library  was not build and linked to the project.

The actual build error that was occuring is : /Users/xamarinqa/GitRepo/monotouch-bindings/FlurryAppCircle/samples/FlurryAppCircleSample/FlurryAppCircleSample/Main.cs(22,35) : error CS0012: The type `MonoTouch.Foundation.NSObject' is defined in an assembly that is not referenced. Consider adding a reference to assembly `monotouch, Version=, Culture=neutral, PublicKeyToken=null'

Build Log: https://gist.github.com/GouriKumari/621e8f3978f757251c12

This build error occurs even after rebuilding FlurryAppCircle and FlurryAnalytics bindings library and linking it to project.
Comment 3 Alex Soto [MSFT] 2014-09-24 00:31:45 UTC
Hello Gouri

I have tried to repro the issue with both X.I 8.3 (master) and X.I 8.2 (latest revision) but have been unable to repro your issue.

X.I 8.3 Build log https://gist.github.com/dalexsoto/e18de152da67e0c7cc80

X.I 8.2 Build log https://gist.github.com/dalexsoto/89241f78ca940866d656

One thing to note is that in order to build this binding you must have https://github.com/xamarin/monotouch-bindings-externals checked out side by side with monotouch-bindings repo

IOW in your filesystem you must have at the same directory level.

Comment 4 GouriKumari 2014-09-24 12:53:14 UTC
> IOW in your filesystem you must have at the same directory level.

> /monotouch-bindings-externals
> /monotouch-bindings

I have all the directories checked out at the same directory level. 

Supplemental Info:
FlurryAppCircle will throw build error, if you build the bindings-with mono 3.10.0 and Xamarin.iOS 8.0 or 8.2.0

Build Error Log: https://gist.github.com/GouriKumari/6070f217e4d63d0ecf89

With mono 3.8.0, binding builds successfully: https://gist.github.com/GouriKumari/cf05255e933a7b12e20f

Test Env:
Xamarin Studio
Version 5.4 (build 238)
Installation UUID: 5ed3a124-4b77-4c6f-beb9-c830fd815e2a
	Mono 3.10.0 ((detached/ac51002)
	GTK+ 2.24.23 (Raleigh theme)

	Package version: 310000016

Apple Developer Tools
Xcode 6.0 (6299)
Build 6A313

Version: (Enterprise Edition)
Hash: 58b46df

Version: (Enterprise Edition)
Hash: 8fa9cf3
Comment 5 GouriKumari 2014-09-24 13:48:04 UTC
This bug is a regression in mono 3.10.0.  So, changing importance to "High blocker".
Comment 6 Alex Soto [MSFT] 2014-09-24 16:00:27 UTC
Yes I can now repro using mono 3.10
Comment 7 Rodrigo Kumpera 2014-09-29 11:42:41 UTC
Comment 8 Marek Safar 2014-09-29 11:58:10 UTC
Without investigation this looks quite suspicious to me. The error says

Main.cs(22,35): error CS0012: The type `MonoTouch.Foundation.NSObject' is defined in an assembly that is not referenced. Consider adding a reference to assembly `monotouch, Version=, Culture=neutral, PublicKeyToken=null'
/Users/gourikumari/GitRepo/monotouch-bindings/FlurryAppCircle/samples/FlurryAppCircleSample/FlurryAnalytics.dll (Location of the symbol related to previous error)

The error points to FlurryAnalytics.dll which references monotouch WITHOUT public key, which is very old and I am not sure even supported version. You need to get updated  FlurryAnalytics.dll with publickeytoken =84e04ff9cfb79065
Comment 9 GouriKumari 2014-09-29 16:43:16 UTC
@AlexSoto: Can you let me know how to get FlurryAnalytics.dll with publickeytoken =84e04ff9cfb79065?
Comment 10 Alex Soto [MSFT] 2014-09-30 08:48:17 UTC
Not sure how to do that since we never signed bound assemblies.

Comment 11 Marek Safar 2014-09-30 08:50:33 UTC
Alex, this is not about FlurryAnalytics.dll but FlurryAnalytics.dll using unsigned version of monotouch.dll. I don't know who builds FlurryAnalytics.dll.
Comment 12 Rolf Bjarne Kvinge [MSFT] 2014-09-30 09:00:19 UTC
@Alex, it looks like you committed a binary to the repo a while ago:

> git log FlurryAppCircle/samples/FlurryAppCircleSample/FlurryAnalytics.dll 
commit 932892d687e4abe37fd5e2b4fedd72270b8de182
Author: Alex Soto <alex@alexsoto.me>
Date:   Wed Oct 30 00:06:23 2013 -0600

    [FlurryAppCircle] Smarter script, renamed sample to samples, added sample builder Makefile
Comment 13 Alex Soto [MSFT] 2014-09-30 09:56:18 UTC
@Marek we do it from the command line 


If you want to give a try yourself you need to clone mono/monotouch-bindings and xamarin/monotouch-bindings-externals side by side. As Gouri mentioned we can't repro this issue with mono < 3.10.

@Rolf I see, I did not commit it :) I deleted it from the repo, It seems Anuj was the original commiter of that dll. In any case old versions of that dll can be found here

Comment 14 Alex Soto [MSFT] 2014-09-30 10:42:45 UTC
Having a second look I think I made some sense out of this issue

FlurryAnalytics.dll was introduced here ->https://github.com/mono/monotouch-bindings/blob/009bfe5adb4b078543ec26b75e974a80b42a1bc4/FlurryAnalytics/binding/FlurryAnalytics.dll

and we do have a binding for it, but the binding for FlurryAnalytics.dll we have != from the one committed there so the sample did not run I noticed that and just brought back old FlurryAnalytics.dll in place
in the samples directory but that dll predates our signed mono touch dll and thats why we are getting this issue

Funny it did compile with mono < 3.10
Comment 15 Marek Safar 2014-09-30 11:01:20 UTC
Fixed the sample to use correct version of FlurryAnalytics but it's now failing in native linking, which is probably expected as it was not tested before.
Comment 16 GouriKumari 2014-09-30 11:16:00 UTC
@AlexSoto :
Can you take a look at this Native linking error?

Build Error Log: https://gist.github.com/GouriKumari/6dff9efec3777f1afbc2

Test Env:
Xamarin Studio
Version 5.4 (build 238)
Installation UUID: 5ed3a124-4b77-4c6f-beb9-c830fd815e2a
	Mono 3.10.0 ((detached/ac51002)
	GTK+ 2.24.23 (Raleigh theme)

	Package version: 310000016

Apple Developer Tools
Xcode 6.0.1 (6528)
Build 6A317

Version: (Enterprise Edition)
Hash: e934614

Supplemental Info: I am also lowering the importance, since it was a binding sample issue.
Comment 17 GouriKumari 2014-09-30 11:39:01 UTC
Updates to Comment#16:
Since the issue is related to monotouch-binding sample issue and since it is not a regression, I am taking it off the 8.2.0 target milestone.
Comment 18 Alex Soto [MSFT] 2014-10-15 13:50:15 UTC
@Gouri I had to remove it from the build script since the native library contains unsolvable symbols that are being surfaced and I have no access to a new native library to update it. Even using SmartLink they won't go away, it seems that FlurryAnalytics is surfacing them but they are not available.
Comment 19 Rustam Zaitov 2015-03-06 09:39:36 UTC
Here a few updates on Flurry:

First of all we have old Flurry libs on monotouch-bindings-externals (1 year ago). Then there is no more libFlurryAppCircle.a at all.
Now flurry provides libFlurry.a and libFlurryAds.a (ver 6.2.0). So I am not sure that we should fix this issue with current libs.

Any thoughts?
Comment 20 Oleg Demchenko 2015-03-06 12:43:18 UTC
Moving this bug to github issues of monotouch-bindings repo: https://github.com/mono/monotouch-bindings/issues/241