Start a new topic

Wikitude SDK 5 issues

Wikitude SDK 5 issues


Hello Wikitude Developers,

there are some known issues on iOS 9 and the Wikitude SDK 5 and I would like to give you some insights about our plans to fix them.

 

Bugs:

* No OpenGL ES rendering after application pause/resumes (ApplicationDidBecomeInactive/Active)

We refactored our OpenGL setup a lot and overlook a case where the OpenGL ES context is not restored correctly. This issue might appear on different platforms (iOS native, Cordova, Titanium, Xamarin) in different behaviours.

 

* architect.js not loaded when loading the Architect World via HTTPS

iOS 9's security changes are causing some troubles when loading our JS API. Currently you can bypass this issue if you either load the Architect World from the application bundle or load it via HTTP (Disable App Transport Security in your application plist). Details find here

 

* Compass calibration screen shown in an infinite loop

When launching augmented reality experiences that use our Geo API, the compass calibration screen is shown continuously. This only seems to affect our extensions like Cordova & Titanium.

 

* Various crashes in our example application when launching different examples consecutively.

 

* Linker error when building for the iOS simulator. (Low priority)


 

Technical Note:

Please note that the Wikitude iOS SDKs are now more strict when it comes to memory handling. In case an application creates multiple instances of the SDK, the hosting application needs to make sure that the previously created instance is destroyed properly before the new one is created. Otherwise the application will crash with an stack trace like this mentioning InitGoogleLogging() twice:

 

Check failed: !IsGoogleLoggingInitialized() You called InitGoogleLogging() twice!

*** Check failure stack trace: ***

   @        0x1002444b8  google::LogMessage::Flush()

   @        0x1002452d8  google::LogMessageFatal::~LogMessageFatal()

   @        0x100244804  google::LogMessageFatal::~LogMessageFatal()

   @        0x100248954  google::glog_internal_namespace_::InitGoogleLoggingUtilities()

   @        0x100377714  wikitude::common_library::impl::iOSConsoleWriter::iOSConsoleWriter()

   @        0x10019eca8  -

   @        0x10019c0b4  -

   @        0x10019bfac  -

   @        0x100149a38  -

   @        0x188993610  <redacted>

   @        0x1889ab6ec  <redacted>

   @        0x188b3fd68  <redacted>

   @        0x188a4f430  <redacted>

   @        0x188a4f10c  <redacted>

   @        0x188a4f074  <redacted>

   @        0x18898eff0  <redacted>

   @        0x188195f14  <redacted>

   @        0x188190b20  <redacted>

   @        0x1881909e0  <redacted>

   @        0x18819007c  <redacted>

   @        0x18818fdd0  <redacted>

   @        0x1881894bc  <redacted>

   @        0x1833f3c30  <redacted>

   @        0x1833f19d4  <redacted>

   @        0x1833f1e04  <redacted>

   @        0x183320dc0  CFRunLoopRunSpecific

   @        0x18e474088  GSEventRunModal

   @        0x1889faf44  UIApplicationMain

   @        0x100142000  main

   @        0x19885e8b8  <redacted>

 

The reason oftentimes is a retain cycle because the WTArchitectView or WTWikitudeNativeSDK object is strongly referenced in a block. Simply create a weak pointer to your Wikitude SDK object and use this weak pointer inside the block.

 

Hi Everyone,
We created a new pre-release version for our Wikitude Cordova Plugin on GitHub. You can either use the Cordova CLI (don't forget to use the correct tag!) to update your plugin or simply download the branch as a .zip and replace the files in your project.

If you have any feedback, don't hesitate to reply to this message.

Best regards

Andreas

Hi, Thanks for Updating Cordova plugin,

but I've still been in another trouble that screen gets dark and camera view doesn't come back after closing webview or HTML drawable.

Is it because of Version of Cordova CLI or something?

This time I built sample app with Cordiva 5.3.3 and Xcode7 and MacbookPro early2013.

Do I need to take older version?

Thanks

@Andreas Schacherbauer

Can you upload a working example using Weakreference or show a way of creating it?Im trying to implement but without success

Greetings.

We are using WIkitude 5 with Xamarin component and when we try to run an architectView is shown correctly but only at the first time. At the second it crashes and the user has to reopen the application to show the architectView again.

Is there a fix for this? This happens ONLY in iOS (Android works correctly) and the error is


Check failed: !IsGoogleLoggingInitialized() You called InitGoogleLogging() twice!


Thank you for your time!! :

Hi,

Does this help:

Please note that the Wikitude iOS SDKs are now more strict when it comes to memory handling. In case an application creates multiple instances of the SDK, the hosting application needs to make sure that the previously created instance is destroyed properly before the new one is created. Otherwise the application will crash with an stack trace like this mentioning InitGoogleLogging() twice:

 

Check failed: !IsGoogleLoggingInitialized() You called InitGoogleLogging() twice!

*** Check failure stack trace: ***

   @        0x1002444b8  google::LogMessage::Flush()

   @        0x1002452d8  google::LogMessageFatal::~LogMessageFatal()

   @        0x100244804  google::LogMessageFatal::~LogMessageFatal()

   @        0x100248954  google::glog_internal_namespace_::InitGoogleLoggingUtilities()

   @        0x100377714  wikitude::common_library::impl::iOSConsoleWriter::iOSConsoleWriter()

   @        0x10019eca8  -

   @        0x10019c0b4  -

   @        0x10019bfac  -

   @        0x100149a38  -

   @        0x188993610  <redacted>

   @        0x1889ab6ec  <redacted>

   @        0x188b3fd68  <redacted>

   @        0x188a4f430  <redacted>

   @        0x188a4f10c  <redacted>

   @        0x188a4f074  <redacted>

   @        0x18898eff0  <redacted>

   @        0x188195f14  <redacted>

   @        0x188190b20  <redacted>

   @        0x1881909e0  <redacted>

   @        0x18819007c  <redacted>

   @        0x18818fdd0  <redacted>

   @        0x1881894bc  <redacted>

   @        0x1833f3c30  <redacted>

   @        0x1833f19d4  <redacted>

   @        0x1833f1e04  <redacted>

   @        0x183320dc0  CFRunLoopRunSpecific

   @        0x18e474088  GSEventRunModal

   @        0x1889faf44  UIApplicationMain

   @        0x100142000  main

   @        0x19885e8b8  <redacted>

 

The reason oftentimes is a retain cycle because the WTArchitectView or WTWikitudeNativeSDK object is strongly referenced in a block. Simply create a weak pointer to your Wikitude SDK object and use this weak pointer inside the block.

Greetings

Nicola

Greetings!

You're talking about the line  Simply create a weak pointer to your Wikitude SDK object and use this weak pointer inside the block , right?

Yes, I saw that but I didn't get what I had to do to be honest....

I am working with Wikitude component for Xamarin so I am writing in C#.

Thank you for your quick answer! 

Any news about that?

I haven't understand how to show the ArchitectView without crashing on the second loading on iOS with Wikitude component for Xamarin. On the first load it loads successfully.

I have purchased the Wikitude SDK commercial version for iOS and have been occassionally encountering the infinite compass calibration issue.

I wanted to see if there is a current fix for iOS or a way to suppress this?

Can I use the iOS files from the Cordova repo on Github or will I need a different solution? 

Hi James,
We recently released our Cordova plugin which includes our latest SDK 5.1.1 release. With this release you can suppress the compass calibration view and instead implement your own using the new calibration callback(setHeadingCalibrationHandler) from the Wikitude Plugin (WikitudePlugin.js).

You can use the master branch from our GitHub page. Simply refer to our example app and it's app generation script.

Best regards

Andreas

Hi Andreas,

I am not using Cordova - I am using straight up IOS. From what I can see there are multiple references to cordova in the WikitudePlugin.js, so this wont work for me.

What can I do to get it running on IOS without the compass issue?

Hi James,
If you develop for iOS, why do you want to use our SDK from the Wikitude Cordova Plugin GitHub page? Simply download it from our main website.

You can use the `shouldUseSystemHeadingCalibrationDisplay` property which is defined in WTStartupConfiguration.h and implement the WTArchitectViewDelegate method -architectViewNeedsHeadingCalibration:. This method will be called if you set the previously mentioned property to `NO` and the system requires a compass calibration.

Best regards

Andreas

 

PS: The file WikitudePlugin.js is only part of our Wikitude Cordova Plugin and has nothing to do with our iOS SDK.

 

done like above post in iOS sdk examples.

 

but the delegate architectViewNeedsHeadingCalibration never gets called !

 

- (void)architectViewNeedsHeadingCalibration:(WTArchitectView *)architectView{
   
    NSLog(@"here camera..");
    
}

 

if ( ! )
    {
       

Hi Farhan,
I guess you also set the WTArchitectView delegate somewhere in your code?!

You can also have a look at this post. Maybe adapting your application code works for you as well to get rid of the compass calibration screen (I suppose that's the reason why you want to use your own calibration).

Best regards

Andreas
Login or Signup to post a comment