I recently built an app using the Trial License Key. Now that I am ready to go to production I have been granted a Startup License Key. The app works perfectly on both iOS and Android using the Trial license Key. However, when I switch to the Startup Key the app crashes when I attempt to use SMART Instant Tracking on a phone that has platform assisted (ARCore) supported. I am unable to get any logs because it kicks me out so fast. Everything works with the trial key is the key to this. Everything works with a phone that does not detect support to ARKit/ARCore is the other key.
Here are the details:
Using the trial key my app functions without any crashes. Once I switch to the license key that was generated for me the app crashes once I attempt to use SMART enabled InstantTracking. I believe there is an issue with the license key for the following reasons:
On my iOS device everything continues to work as expected. I believe this is because:
1) My iOS device is an iPhone5s and it never detects the AR Kit so does not use the SMART platform assisted system as far as I have been able to tell.
On my Android device:
1) Using my trial license key everything works perfectly
2) When I add in the key I generated for the startup license you granted me the world loads and I can do GeoObjects
3) When I attempt to initialize InstantTracking functions (that work fine with the trial key) the whole app immediately closes
4) I have the Wikitude key placed in Wikitude.js and when I load the world.
5) I have ar.core as optional in my AndroidManifest.xml and I also have inside arworldtour-build-extras gradle the dependency upon ARCore:
compile (name: 'wikitudesdk', ext:'aar')
6) I have Wikitude SDK 8.5 installed ("version": "8.5.0"). I am using the Cordova plugin. On old key it works, on new key it crashes.
7) My Android device is a Google Pixel 3a and it always detects the AR Core assisted (SMART) platform assisted tracking system.
Given that it all works on the trial key on both platforms, only crashes using the new license key and kicks me out the app immediately when I attempt to use platform assisted SMART InstantTracking which is only present on my Android, and this says I should be able to use the SMART system (AR Core assisted): https://www.wikitude.com/store/ - I believe there is an issue with my license key for the StartupSDK? Or perhaps a discrepancy somewhere with the Wikitude version and what my license says I can use for a version? Either way an issue with the newly generated key and what I use in my app.
The first functions that get called when I initialize is:
AR.hardware.smart.onPlatformAssistedTrackingAvailabilityChanged = this.instantTrackCheck;
Where instantTrackCheck is the functionality straight from your docs.
This leads me to believe that the key that was generated for me is causing the app to crash when it is detecting the SMART platform assisted tracking, detecting ARCore, on my Android device.
Do you have any idea why this is occurring? If you provide me with an email address I can send you the .apk file?
Weird twist to this occurrence:
If I initiate the InstantTracking on Android with the phone sitting on the desk, camera down, so the screen is black because the camera is covered by the desk, then the app doesn't crash immediately. Again, very weird considering it works perfectly with the trial license...
Thank you for the reply.
I think the fastest way for you to reproduce my issue would be to use my SDK Startup key on a platform assisted Android device. The issue is occurring when switching from the trial key to the startup key so the difference is there.
Can you try both my SDK keys and tell me if you experience the crash when you switch from my trial one to my startup one? Again, that is what is causing a crash. My application works perfectly on the trial key and crashes using the startup key.
I can also provide you with two apk. 1 with the trial key that works perfectly, and 1 with the startup key that crashes on InstantTracking.
I'm afraid I'm not going to be able to get much from an APK, I will need to run your code with a debugger attached to find out what's happening. Ideally, I'd be looking for the smallest amount of code that I can reproduce your issue with. The most important thing being that I can build and run whatever you provide without spending any time in setting things up, it should really work out of the box. Whatever you can provide that will fit this description would be fine.
You can send an e-mail to email@example.com and ask it to be forward to Daniel.
On another thought, have you tried using your key in the official Wikitude sample app by any chance?
No, I haven't tried using it on the sample app. I guess I was thinking the key was hard coded into the output of the sample app. Since it's not I can definitely try that when I get home from work. I have it installed on my iPhone5s but it's the platform assistance that's causing the crash. Both keys work fine on my old iPhone 5s because it doesn't detect any platform assistance, it's only when platform assistance comes into play. I'll install on my Google Pixel 3a when I'm home and check it out because that's the one that detects it.
Thank you for the help! I'll get you everything as soon as possible, at the latest tonight United States Central Time.
I tested my Startup License Key on your sample app and it crashes in the same way, actually worse, even when I try the "Basic Instant Tracking" example. I say worse because on the sample app I can't even get the weird instance where it works if the camera is covered. It just always crashes using my license key and Instant Tracking, and works fine when I use the trial key. I am testing on a brand new (2 weeks old) Google Pixel 3a only ever used for testing this app. Everything works except InstantTracking when platform assistance is detected, which is inline with everything I wrote previously. Same behavior.
I then tested using my trial key, and again, everything worked perfectly. This was all in your sample app, all on a Google Pixel 3a.
Since my sample app is rather large, I think it would be easiest if you test this using your sample app since the crash occurs there too.
I have sent my trial key and my startup key to the email address you provided and asked them to forward it to you. Sending what I have for keys along in case what I have differs from anything your end shows. Also so you can hopefully see the difference between it working with my trial and not with my startup.
Thank you again,
thanks for the additional investigation. I agree that sending your app is superfluous if this is reproducible in our sample app. Being able to reproduce it in the sample app is the best case scenario from a debugging perspective for me.
One more question though, have you tried this on any other device yet?
I have tested on my iPhone 5s which never recognizes any platform assistance and it works perfectly with both keys. This is why I think that the issue is InstantTracking but only when platform assistance is detected.
If it's of note, my Google Pixel 3a is running Android 9, and my iPhone 5s is running 12.3
Thanks for looking into this.
I'm happy to report that this issue has been fixed. The problem resulted from an unexpected side effect caused by input plugins being disallowed for startup licenses.
As this issue will not be included in the upcoming 8.6 release and the next release is several weeks away, I'm planning on creating a custom build for you to use in the meantime. I should be able to prepare that for you on Thursday.
Thanks for reporting this problem.
Awesome! Thank you!
Interesting. I haven't dove deep enough into the code other than the API so I'm not quite sure what the input plugins are, but I'm glad you figured it out!
So what you'll be send will be 8.5 with a patch? Or 8.6 with a patch? Will you be sending it through email? I have Github too if a private repo there is easier. Whatever you prefer.
I think there may be two email address attached to my account, you can find me at either one if you want to discuss those questions off the message board.
Thanks again for the support! Let me know if you need anything else from me.
I sent you a response to your support email with the link.
I mentioned here I am using Cordova SDK, and I think you sent me a fix only for Android SDK? I believe the issue occurs on any platform that detects platform assistance, so I would 1) need the Cordova plugin to have it fixed 2) for all supported platforms (especially iOS).
Please read the email I sent as a reply to the email you sent with the download link.
I believe this fix is unusable for me. Maybe I am mistaken in what you sent, but it is not what I am needing to have this error fixed.
I looked deeper into what was sent to me and what was sent to me is not usable for me. It is completely different than the Cordova plugin and SDK. It also doesn't provide a solution for iOS which is my main target using Cordova.
I think maybe the part where I said I use Cordova and that the problem exists on all devices with Platform Assisted InstantTracking was not taken into account when sending me a bug fix?
Are you please able to give me a fix for this Wikitude bug in the form of the Cordova plugin and for both iOS and Android? I am only waiting on this bug fix before releasing my app.
Hope to hear from you soon,
I have the same issue when i build app with unity. When release the next version?8.6?
The 8.6 version of the SDK will be released shortly, but it will not include this fix yet. It will be contained in the next release following 8.6, which is several weeks away. If you require a fix before that I will need to create a custom package for you as well.