locked
"Building Xamarin.Mac Legacy projects requires Business edition or higher." RRS feed

  • Question

  • User11167 posted

    Greetings! This is popping up with tonight's alpha channel updates. Anyone have a clear explanation? The release notes did not indicate anything, unless I missed it.

    As an Indie subscriber with a valid subscription, am I to:

    • Regenerate existing projects somehow in order to not be whatever "legacy" means.
    • ...other?

    (Anyone know what legacy vs. not means in this context?)

    Thanks a bunch!

    Thursday, August 14, 2014 2:41 AM

All replies

  • User11167 posted

    Found it. Hints are in the release notes --- but for the last version (1.10.0). Note the Projects -> Migrate to... selection to do the project conversion. Then you'll likely have to do at least some minor work to put Humpty back together again.

    Thanks, all.

    Thursday, August 14, 2014 3:03 AM
  • User35201 posted

    So the migratation will convert you to the new unified API. This may not be what you want. It gets you a slimmer profile, 64-bit support, and makes it easier to share code between iOS and Mac, however we do not guarantee API/ABI stability right now.

    If you have a valid subscription to Xamarin.Mac that is below business, please contact support and explain the situation. You need to be special cased to fix your license. If they are unaware of the solution, have them contact me, Chris Hamons and I'll help get it fixed.

    Thursday, August 14, 2014 4:50 PM
  • User11167 posted

    Thanks for info on the distinctions, Chris.

    I'm fine with exploring the unified API so long as it actually runs / doesn't block basic local development as the Xamarin team dots the i's and crosses the t's with it on its way to stable.

    Note that to me it seems a bit iffy, though, that a change in licensing that takes away something advertised (and therefore purchased for a year assuming it would be available) would require any "special case" licensing fixes. It's a bit bait-and-switch, really, and it is probably a good idea that you ask the licensing team have something implicit in place to grandfather anyone with licenses that predate the change.

    I personally am not going to get bent out of shape about it (unless the new stuff doesn't adequately support development---already blocked locally by #22116 without mutating project structure to dodge it). But just sayin' --- IANAL, but this smells like a little bit of a legal gray area here. :)

    (FWIW, when do you expect (roughly) to be able to guarantee API/ABI stability? Thinking mainly about when I can count on this being in stable, good to go for shipping product.)

    Again, many thanks for the reply!

    Thursday, August 14, 2014 5:28 PM
  • User12211 posted

    @chamons,

    Ok. Let me get this straight. The new Xamarin.Mac warns you that the new Unified API is unstable and lets you choose not to migrate if you don't want to deal with the breaking changes. But then it won't let you compile your non-migrated Classic API project without a Business or higher license. But you can use the new API with an Indie license. Access to the new features with any license, but access to existing features only with a Business or higher license.

    I'm sorry, but that makes no sense at all.

    Thursday, August 14, 2014 6:06 PM
  • User13 posted

    Hello Plynkus,

    Yes, the intention was to grandfather everyone that had that license, we dropped the ball on that one. We are working on it.

    As for API/ABI stability: we are basically doing very few cosmetic changes, the only thing that we are missing now is that we are going to turn the return values that return classes that implement a protocol into an interface, so changes like this:

    NSTableViewSource DataSource { get; set; }
    

    Will become:

    INSTableViewSource DataSource { get; set; }
    

    And of course, NSTableViewSource will implement INSTableViewSource, so in general, this should not break existing code in the vast majority of cases, but will break this particular scenario:

    NSTableViewSource mySource = foo.DataSource;

    Because the return is only guaranteed to be an INSTableViewSource, not the concrete implementation of NSTableViewSource.

    This came to be as we introduced Protocol support last year, but since we did not want to break the API, we were not able to fully realize the Protocol vision. With this, you would be able to implement protocols in many cases without having to subclass one of our concrete implementations. A common idiom you see in Objective-C would also be usable in C# now.

    A common idiom in Objective-C can now be used in C#:

     public MyTableView () 
     {
          DataSource = this;
     }
     /* here you implement the INSTableViewSource methods */
    

    Other than that, we do not really anticipate any major changes.

    Miguel

    Thursday, August 14, 2014 6:48 PM
  • User11167 posted

    Thanks for the words, Miguel.

    The API changes all sound reasonable---I do not expect problems (aside from a few bumps and bruises on the build front). I'll keep pushing on the new stuff for now (and will file bug reports as needed), but I am pleased to know that rolling back will be an option if I end up truly---if only temporarily---blocked.

    Cheers.

    Thursday, August 14, 2014 7:10 PM
  • User69303 posted

    Ahhh ... so this explains why the update I just did broke / restricted building for my application (I have an Indie sub purchased on the 15th of August). I do NOT want to be forced to build with an unstable API, and cannot find a support contact email or details either.

    So ... I upgraded my project to the new Unified API and now get this error: "Info.plist: error : The name 'Info.plist' is reserved and cannot be used."

    I guess I'm going to have to put in a support request via your contact form and hope to get a reply ASAP. Meanwhile all development on a time-critical application will grind to a halt. Good job, Xamarin.

    Thursday, September 4, 2014 5:56 AM
  • User69303 posted

    Look I should have done to begin with, I've reverted to the previous version for now.

    Thursday, September 4, 2014 9:54 AM
  • User26078 posted

    @MichaelBoth?

    You probably have a library project which you have migrated. A info.plist file was added automatically to that project. If that is the case, just delete it to solve the problem

    Thursday, September 4, 2014 12:15 PM
  • User35230 posted

    This is also broken for me after running some tests with the update. When I try to build even a brand new clean project (no migration), I get what looks to be an invalid compile error: "Building from the command-line requires a Business license." when I am in fact compiling with the Unified API.

    Anyone else get that error? Or am I alone there.

    Thursday, September 4, 2014 6:30 PM
  • User71371 posted

    I'm getting this error also. I currently have an evaluation license if that makes a difference.

    Thursday, September 4, 2014 7:40 PM
  • User69303 posted

    Thanks, Radu, but it's not a library project that I upgraded. And the main problem is that I don't want to be 'forced' to use anything unstable.

    I did get a reply from support quite speedily - thanks! - and they said that they've identified an issue with the 1.10 version of Xamarin Mac, and the recommendation for now is to downgrade to the 1.8 version, which is what I've done.

    Thursday, September 4, 2014 8:20 PM
  • User69303 posted

    Link to the recommended version: http://download.xamarin.com/XamarinforMac/Mac/xamarin.mac-1.8.1.6.pkg

    Thursday, September 4, 2014 8:25 PM
  • User13824 posted

    Note that you'll also need to downgrade Xamarin Studio to version 5.2.1.1 for compatibility with Xamarin.Mac 1.8.

    Here's the download link for Xamarin Studio 5.2.1.1:
    http://download.xamarin.com/studio/Mac/XamarinStudio-5.2.1.1-0.dmg

    Or if you'd like to migrate to the Unified API

    If you'd like to migrate to the Unified API, you can instead use Xamarin.Mac 1.10, and then install Xamarin Studio 5.3.0.427 (or earlier).

    Here's a link to Xamarin Studio 5.3.0.427:
    http://download.xamarin.com/studio/Mac/XamarinStudio-5.3.0.427.-0.dmg

    Unfortunately, as noted by @AndrewWitte, there's a bug in the current stable version of Xamarin Studio 5.3.0.440 that will prevent building Unified API projects on an Indie license. That bug has been fixed, and a new repaired version of Xamarin Studio should be available soon. But for now, using Xamarin Studio version 5.3.0.427 or earlier is the best bet.

    Friday, September 5, 2014 12:33 AM
  • User46031 posted

    yikes. Same issue for me this morning. Upgraded to Xamarin.Mac 1.10.0.10, chose not to migrate to unified API but unable to compile existing project (I have indie license), get the following:

    Building Xamarin.Mac Legacy projects requires Business edition or higher.

    So I migrated, refactored to compile, then got

    Building from the command-line requires a Business license. (MM9008) (HiiLite.Mac)

    downgraded to Xamarin.mac 1.8.1.6 as per above link, reverted code, now get

    Error: The Unknown Edition of Xamarin.Mac does not support building outside of Xamarin Studio. Please go to https://store.xamarin.com to upgrade to the Business Edition. (HiiLite.Mac)

    any suggestions please? This is crippling me with a tight timeline.

    thanks.

    Friday, September 5, 2014 12:37 AM
  • User13824 posted

    @VinnieVivace?, you'll need to downgrade Xamarin Studio to version 5.2.1.1 for compatibility with Xamarin.Mac 1.8.1.6.

    Friday, September 5, 2014 12:41 AM
  • User46031 posted

    thanks @BrendanZagaeski?

    I have gone with workoutaround 2, now running Xamarin Studio 5.3 (build 427) and Xamain.Mac 1.10.0.10 and have migrated to unified api.

    I now get an "application has not been built" message, and the following warnings:

    MMPTASK: Warning MM2006: Native library 'libfam.so.0.dylib' was referenced but could not be found. MMPTASK: Warning MM2006: Native library 'libgamin-1.so.0.dylib' was referenced but could not be found. MMPTASK: Warning MM2006: Native library 'libsqlite3.dylib' was referenced but could not be found.

    Friday, September 5, 2014 1:17 AM
  • User46031 posted

    No response on this one?

    Had to give up and downgrade. Have to admit to feeling a bit disappointed.

    Sunday, September 7, 2014 10:09 PM
  • User13824 posted

    Hi, apologies for leaving the follow-up question up in the air. I was hoping I'd have a chance to investigate it a bit myself to look for a solution before writing back, but I've gotten tied up with other issues.

    This bug appears to be the same issue ("Native library ... was referenced but could not be found"): https://bugzilla.xamarin.com/show_bug.cgi?id=22088. So that will be the best place to watch for updates about how to resolve the error.

    I'll take a look at that bug when I get a chance, and make sure the developers have a way to reproduce it.

    Monday, September 8, 2014 2:12 PM
  • User59797 posted

    @MigueldeIcaza, @chamons

    You mention that you intend to grandfather in those who had the Indie license; are you still executing on that and would that happen automatically? I mean, with Indie license we don't have any support address offered to us that could be used for asking to be special-cased?

    As it is, I did try to convert our legacy API project to unified API and now have the stupid "Building from the command-line requires a Business license." error instead. And downgrading XS causes the "Native library..." issue outlined above. So regardless whatever action I happen to take, I'm sitting dead in the water with my recently bought XS subscription...

    Tuesday, September 9, 2014 5:32 AM
  • User13824 posted

    @ksaunamaki?, you can write to Xamarin support via contact@xamarin.com.

    Just to get moving again as quickly as possible, you could downgrade to Xamarin.Mac 1.8 + Xamarin Studio 5.2.1.1 (see earlier in the thread).

    If you like, you could also continue to experiment with the Unified API using an Indie license by using Xamarin.Mac 1.10 with Xamarin Studio 5.3.0.427 (confusingly, as mentioned earlier in the thread, this is and old beta version of Xamarin Studio, not the current stable version). Unfortunately, based on Vinnie's results, it sounds like there are still some packaging problems related to native libraries when using the Unified API with an Indie license, so downgrading to Xamarin.Mac 1.8 + Xamarin Studio 5.2.1.1 is probably easier in the end.

    Tuesday, September 9, 2014 5:55 AM
  • User41437 posted

    @chamons - I have an indie license. I wrote to support (hello at xamarin....) as you suggested (to ask to be special-cased to fix my license) last Friday, and explained the situation, and mentioned this thread and you and what you wrote .... However I didn't receive any reply from them.

    I did the reverting-to-an-older-Xamarin-version solution for now, however I would love to not be stuck on this old version forever.

    Tuesday, September 9, 2014 6:33 AM
  • User35230 posted

    FYI, after updating to Xamarin Studio 5.3(build 441) I still have the same error. Not sure if the bug is in the IDE or the SDK, so just am putting it out there.

    Tuesday, September 9, 2014 11:00 PM
  • User35201 posted

    @MichaelBevin - Did you hear from support yet? (I was on vacation last week and am digging through my e-mails / forum posts)

    Wednesday, September 10, 2014 1:31 PM
  • User41437 posted

    @chamons I didn't hear from them still.

    Wednesday, September 10, 2014 2:35 PM
  • User35201 posted

    @MichaelBevin?

    I'm going to figure out what is going on and get you a reply. Apologies for the delay.

    Wednesday, September 10, 2014 2:38 PM
  • User57282 posted

    Chris Hamons say to contact support and explain the situation, but your http://xamarin.com/support page say that only Business can contact support, Indie can only write in forums.

    So as requested i write here my situation.

    I buy in may 2014 a 250$ Xamarin.Mac license. I develop my application successfully.

    Today i need to build a new version, urgently, for a bugfix. but i unconsciously do a Xamarin Upgrade and after i see the message "Building Xamarin.Mac Legacy projects requires Business edition or higher.".

    If i convert to Unified API, i have thousand of compilation error, about NS* classes and also "Type type or namespace name 'MonoMac' could not be found" and other kind of problems. There is a guide about the migration?

    Why you ask this additional effort without explain it during the Xamarin upgrade?

    Also my previous application was very stable, and you force me to upgrade to an instabile 'Preview Only' version?

    Now i need to decide to try a downgrade or try to correct thousand errors, and i need to do urgently because my customers need a new version of my application quickly.

    Very, very, very disappointed.

    Any suggestion? Thanks.

    Wednesday, September 10, 2014 7:52 PM
  • User13824 posted

    @PaoloBrini?, as discussed earlier in the thread, you can write to Xamarin support via contact@xamarin.com, or downgrade to Xamarin.Mac 1.8 + Xamarin Studio 5.2.1.1.

    Hopefully we can get you back up and running quickly!

    Wednesday, September 10, 2014 8:06 PM
  • User41437 posted

    @chamons I heard back from support and got the business license. Thanks for the help.

    Thursday, September 11, 2014 3:23 PM
  • User35201 posted

    @MichaelBevin? Glad it got sorted out for you. Sorry for the trouble.

    Thursday, September 11, 2014 3:25 PM
  • User46031 posted

    just giving this a bump as I emailed support on the 5th of September, and have not yet got a response (just sent followup).

    as for:

    This bug appears to be the same issue ("Native library ... was referenced but could not be found"): https://bugzilla.xamarin.com/show_bug.cgi?id=22088. So that will be the best place to watch for updates about how to resolve the error.

    no resolutions offered yet, so still stuck on an old version of Xamarin Studios.

    Monday, September 15, 2014 10:48 PM
  • User69303 posted

    There appears to be new versions of Xamarin Studio and Xamarin for Mac out on the stable channel, however after last time I'm not game enough to upgrade until I see the results of someone else doing it first. :)

    Tuesday, September 16, 2014 8:01 PM
  • User35201 posted

    @VinnieVivace - I poked support, have you heard back yet?

    @MichaelBoth - The newer version that were just hotfixed out fix an issue with Indie licenses and Unified builds. I am working on your guys fix, but i'll be a bit. That version acts just as the version for in your guys case.

    Tuesday, September 16, 2014 8:15 PM
  • User46031 posted

    @chamons? yeah, i have. Been told I will not get the grandfathered license, despite others (@MichaelBevin for one) being issued one. Really REALLY unhappy with the current situation.

    Tuesday, September 16, 2014 9:34 PM
  • User9 posted

    @VinnieVivace? Sorry about the mix up on this, I'll have a team member reach out to you and get grandfathered, set up and running with the classic API until we get this resolved fully on our side.

    Tuesday, September 16, 2014 10:55 PM
  • User46031 posted

    Hi @chrisntr. Thanks. Not what support is telling me though. When can I expect this to be actioned?

    Wednesday, September 17, 2014 6:47 AM
  • User9 posted

    @VinnieVivace? You should have got a response on this earlier this morning, sorry for the delay on the response.

    Wednesday, September 17, 2014 7:07 PM
  • User46031 posted

    thank you @chrisntr. been a saga, appreciate your help.

    Wednesday, September 17, 2014 9:42 PM
  • User13824 posted

    A new version Xamarin.Mac (1.10.0.18) has just been released to the Beta channel. This version should allow Indie users to build both Classic API and Unified API Xamarin.Mac apps with their current licenses.

    If any Indie users still have trouble with the "requires Business edition or higher" error after updating to Xamarin.Mac 1.10.0.18, be sure to let us know (either here on the forums or via an email to contact@xamarin.com). Thanks!

    Wednesday, October 1, 2014 8:33 PM