ThinkGeo.com    |     Documentation    |     Premium Support

IOS Unified API suppoert in Mapsuite

Dear ,

In Mapsuite IOS smaples you are using monotouch dll which is old, Xamarin launch Xamarin.IOS dll to support 64 and 32 bit 

will you support it?

Thanks

Xamarin Unified Api




Hi Kassem,



Thanks for your information. We reviewed the Unified API few weeks ago; and the good part is that we could support it very easily. But on the other hand, it brings some issues as well. 



1. It is still in beta, and we found some bugs in it (already reported to Xamarin).



2. Our existing sample projects and our customer’s projects needs to upgrade to the Unified API as well. Or else, they could not make it compile. Here is a quote from Xamarin:
developer.xamarin.com/guides…pps/ 

iOS apps using the Unified API cannot currently reference most Components or NuGet packages. You should only update existing iOS apps to the Unified API if you do not require any unsupported Components, or have access to the source of any components you reference so that you can recompile them yourself for the Unified API.




3. We might need to release another build of iOSEdition that includes iOSEditionForClassicAPI.dll and iOSEditionForUnifiedAPI.dll (or just iOSEdition.dll)



Hope it makes sense. Unified API is a direction for iOS in Xamarin, we are surely will support it in the near future. We will talk to our manager to make a schedule for it.



Thanks,
Howard




Thanks

Hi Kassem,



Thanks for your focus on iOS edition and if any other questions, don’t hesitate to let us know.



Troy

May I know if iOS Unified API is still not supported by ThinkGeo?

Hi Zeeshan,  
  
 The Unified API is already available in the development branch since 8.0.269.0. Please download the latest build from product center. We already tested that the app support to build to 64 bit app. There might be some minor changes according to Xamarin’s changes. I’m sure you will figure that out once you see it.  
  
 Thanks and feel free to let us know if you have any questions, 
 Howard

I started using your dll’s for iOS for the first time; I am having the following error building app; can u tell me what could be  the issue;

 note that my app is migrated to Unified API already and was building on iPhone and publishing to AppStore well previously: 



Error MT5309: Native linking error: don’t know how to convert instruction  

ecdc26a0 referencing _mono_create_corlib_exception_1.island.2 to thumb in ‘_ThinkGeo_MapSuite_Core_FeatureSource_GetFeaturesWithinDistanceOf_ThinkGeo_MapSuite_Core_BaseShape_ThinkGeo_MapSuite_Core_GeographyUnit_ThinkGeo_MapSuite_Core_DistanceUnit_double_System_Collections_Generic_IEnumerable_1_string’ from /Users/Agtrix/Documents/Xamarin/Agtrix/Agtrix.iOS/obj/iPhone/Debug/mtouch-cache/MapSuitePortableCore.dll.armv7.o for architecture armv7 (MT5309)






Hi Zeeshan, 



I think I need more information on this issue. Could you send the project to forumsupport@thinkgeo.com and forward to me. We will analyze it. 

Please refer to a relate post on Xamarin Forum and see if it help: forums.xamarin.com/discussion/19764/mt5309-linking-error-on-exception-no-supported-architectures  



Thanks, 

Howard

As per your provided link, I have not tried enabling the linker for all assemblies. but as soon as I started using TG dll’s, I am getting this error. 

maybe adding TG dll’s can increase output size? and fail build?

Zeeshan,



The build size from Classic to Unified API doesn’t increase too much. See the following screenshot. You could build a new project or run our samples to see how it works. We already published an app with Unified API on iOS store, so I think our build size is not out of limit. Please send me the project, we will see what is the reason. It might have several possibilities.




Thanks,
Howard

ok. I will soon send you sample project to reproduce the issue.

Zeeshan, 
  
 Looking forward your sample.  
  
 Thanks,  
 Howard

Howard / Zeeshan,
I’m having exactly the same issues, and I’m using the latest development build as at 17-Apr-2015.
Attached is my initial ‘HelloWorld’ iOS sample app.

I’m very keen to get a fix for this, as I have a prod release due out, and need to test on real devices prior to deploy - so please let me know if there is another mechanism I need to use to get it escalated.

Thanks,

Ian

HelloWorld_iOS.unified.zip (1.59 MB)

Hi Lan,



We recreated this issue when we upgrade to the latest Xamarin and Xcode (It works fine with our code projects, I think it should be some difference on the plist file). Not sure whether Xamarin or Apple changed something. We will contact them to see if there is any tricky.



On the other hand, we played various settings with this project, and found if we set the linker to “Link All Assemblies”, it works. 



Another issue in your code is that, the parameter you passed in ShapeFileFeatureLayer.BuildIndexFile method is a private path. This folder is not writable. In this case, it is failed building index here and the code below won’t process. I have built the index and include in the attached sample. Please try this one and let you know when we have an update from Xamarin Supports.



Thanks,
Howard

004_003_002_001_HelloWorld.zip (1.59 MB)

Howard, 
  
 Thanks for the tip with the ‘BuildIndexFile’. 
  
 I’ve done a bit of research in the last few days on the linker settings, and found :- 
 forums.xamarin.com/discussion/12125/exact-behaviour-of-the-linker-in-xamarin-studio 
 It doesn’t really answer the problem, as a lot of people seem pretty confused by its functionality. 
  
 The problem I’ve found is that it ‘removes’ what it thinks are unused functions from the Raygun (Raygun.io) error logging tool that I’m using, as well as some attributes in the JSON.Newton library - and this kills the app within a few lines of execution. 
 It seems that the linker is far to aggressive in removing what it thinks are unused functions :( 
  
 Regards, 
 Ian

Hi Lan,  
  
 I totally agree with you.  
  
 This issue is caused when we upgrade to Xamarin’s latest version recently. We have some old projects still runs fine. While if we create a new project and work with some 3rd part dlls, we must use “Link All Assemblies” to make it work on our devices. I hope Xamarin could fix this issue very soon. Let’s see their feedback then. 
  
 Thanks, 
 Howard