Xcode9's Augmented Reality App template sandbox error - sandbox

Apple introduced its ARKit at WWDC 17 and they also added a new project template to Xcode 9 called "Augmented Reality App" which is basically supposed to be the demo app during WWDC keynote or something like that.
However, the original template itself returns a critical error during runtime, which is the following:
libMobileGestalt MobileGestaltSupport.m:153: pid 701 ({Your app's name}) does
not have sandbox access for frZQaeyWLUvLjeuEK43hmg and IS NOT
appropriately entitled
What I tried so far:
I tried all 3 different template projects: SpriteKit, SceneKit and Metal. The error stays.
I created entitlements file and set "App sandbox" to true. No luck.
Googled the error and saw that this error is actually older (and arguably less popular) than ARKit. Sadly, nobody has found a solution yet.
Lastly, I do not think that could be relevant but I tried to run it on my iPhone 6. Has anyone managed to run AR app template? If so, how? Or anyone has any bit of information on libMobileGestalt?

According to Apple documentation, only devices powered by A9 and higher can use ARKit.
ARKit runs on the Apple A9 and A10 processors
On iOS devices with an A9 processor or later, the
ARWorldTrackingSessionConfiguration
subclass provides high-precision motion tracking and enables features to help you place virtual content in relation to real-world surfaces.
On other devices supported by ARKit, the
ARSessionConfiguration
base class provides basic motion tracking that permits slightly less immersive AR experiences.
The iPhone 6s and 6s plus have A9 chips, so those and all devices after that can run ARKit. Found it here.

Following iOS devices (with iOS 11 installed) are supporting ARKit:
iPhone 6S and 6S Plus
iPhone 7 and 7 Plus
iPhone SE
iPad Pro (9.7, 10.5 or 12.9)
iPad (2017)
Here are some reference links related to ARKit Support & iOS device configurations:
ARKit runs on the Apple A9 and A10 processors.
iPhone Models - (Chip)
iPad Models - (Chip)

Related

Setting AL_GAIN to 0 works on iPhone6, not iPad PRO?

To silence my game when returning to the menu, I call this code:
alListenerf( AL_GAIN, gain );
This works just fine on Linux: the game goes silent.
When I run on iPad PRO, the sounds are still played, and volume is not affected at all.
Is AL_GAIN optionally implemented in the spec or something?
Using OpenAL device 'Default Audio Device'
Using ALUT 1.1
AL_VENDOR Apple Inc.
AL_RENDERER Software
AL_VERSION 1.1
This is on the latest iPad PRO model, by the way.
Whoa! the plot thickens... setting gain on iPhone6 works, on iPad PRO it does not. The same binary.
It is probably an iOS version thing. The iPad is on iOS 11.4 and the phone is on iOS 10.3.3
in linux and other platforms setting the volume to 0 works but for the ios13 bug as in the iPad pro change the volume to 0.001f and it should bypass Apple's bug.

Do app center email installs work on 32 bit devices specifically iPhone 5c?

Installing app from the "There's a new version..." notification email works fine on iPhone 5s but fails on iPhone 5c with error stating "Unable to Download App. App could not be downloaded at this time".
In App Center under the Distribution Groups > Devices tab the status column for both phones show as "provisioned".
Just want to ensure that App Center email installs should work for 32-bit devices such as the iPhone 5c.
Distribute should not have that constraint, it's most likely the way your application was built that probably does not have 32bits support, it should be a setting in your XCode project like armv7 in Build Settings Valid Architectures.

Enable bitcode in Xamarin iOS

I've developed a cross platform for iOS and android using Xamarin Forms. My app uses several screens and some tjird party dependencies such as Facebook, google maps and firebase.
Everything works good until I went to compile it in release mode. Assuming I want to support both armv7 and arm64, these are the app size:
* without linking and optimization: 103mb.
* with full optimization (link all + LLVM): 73mv.
With the optimization and without armv7 I'm getting 40mb - that's my desired result size.
To solve this issue I thought that I should enable bitcode compilation. However, even with the alpha tools, including visual studio for mac and mono v5 I'm getting "platform not supported: iOS" when enabling this feature. On the other hand, I dogged at the source code and saw that mono does allow it, and besides they allows watch and tv apps, which requires bitcode...
Does anybody knows how to enable it for iOS? I'll be huge (!) assistance for me!
Thanks!
So I couldn't find any solution and had to submit my app w/o bitcode support.
However, for everyone who may tackle this issue in the future and wish to use bitcode because of app size - I want to clarify this: Bitcode, as part of iOS 9 App Thining, is only relevant to future architecture releases, i.e. Apple will auto-slice your arm7+arm64 app when you'll upload it to the App Store, without any action from your side (besides linking your code ("Link All") and supporting both architectures).
You can check the estimated app size, but you shouldn't do it in Xamarin Studio since it shows the universal app version, and not the device-specific thinned one. To check what the size will be for device X, you should:
Create Ad-Hoc Distribution profile Apple Developer Site.
Create an archive at Xamarin Studio.
Open Xcode (if it was previously opened - close an re-open).
Open the Organizer.
Click on Export, then on "Ad Hoc".
You should see a dialog asking if you want universal ipa or device specific ipa. Universal IPA is a generic IPA containing the data for every device, so you can send it to everyone. The size of this ipa will be the size you saw in Xamarin Studio (before compression). A device-specific ipa is an ipa for specific device, after performing Thining. This is the ipa your users will download. So - select the device you wish to check.
Now you'll be able to get a device-specific ipa which matches the size for this specific device. Note that the same information will appear in iTunes Connect after you'll upload your build.
See:
So to summarize it: Currently you can't use bitcode in Xamarin apps (iOS and Forms, obviously). The option does exists in mono, but not included (it was explicitly disabled in the shipped mono runtime). However, that doesn't mean that the estimated app size that's being displayed in Xamarin Studio will be your users app size, since it varies on iOS 9+ App Thining feature, which doesn't need bitcode to be activated.

Copyright not available Nokia Location API (OVI Maps)

I have made a simple J2ME application using Location API to show maps on my application, when I run it on Nokia Mobile it is working fine but When I try to run it on Samsung mobile I got that error
Copyright not available
could anyone please help in that
I'm using the code in this tutorial
http://www.developer.nokia.com/Community/Wiki/How_to_calculate_and_show_a_route_with_Java_ME_Location_API
it is working fine in Nokia C2 but it is not working for any Samsung mobile and produce the previous error
The Nokia Maps API for Java has been designed to work on any Java ME device, without making it specific to Nokia phones. Given the wide range of Java ME phones out there it is likely you have come across some sort of unforseen compatibility issue. (Obviously the majority of testing has occurred on Nokia phones)
The "Copyright not available" message states in full that:
An error occurred while trying to download the copyrights.Please check
your internet settings.
The downloading of copyright information via http is the very first thing to be done when initialising a MapCanvas, since Nokia itself is obliged to display the copyrights on its maps where the map data has been bought in from third parties.
My guess is that either the Samsung device you are testing with is not correctly configured to connect to the Internet (maybe there is no SIM card?) or alternatively the Samsung firmware is misinterpreting the URL for downloading the copyrights as invalid.
The misinterpreted URL issue has also been observed using the Sun WTK, and the workaround (shown below) is to use the Map servers hosted in China for non-compliant SDKs as the URLs are formatted slightly differently and the devices are generally more forgiving.
// Due to an issue with the hostnames that are used it is not possible to use
// international maps at this stage on the WTK emulators. Most devices and the
// Nokia emulators do not suffer from this limitation.
if ("SunMicrosystems_wtk".equals(
System.getProperty("microedition.platform"))) {
ApplicationContext.getInstance().setChina(true);
}
Obviously you''l need to use the correct values for System.getProperty("microedition.platform") to get this to work.

Apps slower to start on iPhone 4, iOS 5.1 compiled with Xcode 4.3.1?

I am keeping a close eye on the start time of my app in development. In main I store the start time using CFAbsoluteTimeGetCurrent() and log elapsed time when didFinishLaunchingWithOptions gets called, as well as during the initialization and painting of my StopWatchView and finally in the viewDidAppear of the main view controller. This served me very well in figuring out where my start time goes and keeping it in check. My startup performance tests on actual devices were done on iPhone 3G (iOS 4.2.1) and iPhone 4.
Since upgrading the device to iOS 5.1 I was forced to upgrade the Xcode to the version 4.3.1, too. I have immediately noticed that the start times on iPhone 4 changed dramatically. All measurements were performed with Xcode attached for debugging, reading the elapsed times from logs in console. Now I've also added debugging label that displays elapsed time to be able to measure without debugger attached.
To eliminate the possibility that the change was caused by something in my code, I've created new Utility Application and confirmed the slowdown. The iPhone 4 used to be ~3x faster than iPhone 3G, now it starts slower(!!!) than 3G. The startup time has also become highly volatile (+- 0.3s), where it used to be +-0.05s. The volatility disappears in Airplane Mode, so I suspect it's caused by some background process related to iCloud. However I'm very puzzled by 3x slower startup time on iPhone 4 before and after the upgrade.
Here are the average startup times, first during debugging in Xcode (then without Xcode):
Debug No-debug
iPhone 3G: 1.23s (0.67s)
iPhone 4: 0.43s (-----) [iOS 5.0.1, Xcode 4.3]
iPhone 4: 1.53s (1.18s) [iOS 5.1, Xcode 4.3.1]
iPad 2: 0.41s (0.22s) [iOS 5.1, Xcode 4.3.1]
I don't know if this is caused by iOS 5.1 or Xcode 4.3.1 or if this is iPhone 4 specific problem. Does anybody see similar slowdown?
On further investigation, I have noticed during profiling (after watching WWDC 2012 Session 235 "iOS App Performance - Responsiveness") that the time difference I have noticed is attributable to the call to _UIAccessibilityInitialize.
I have been testing the accessibility of my app and have enabled Settings > Accessibility > Tripple-click Home > Ask. This coincided with the release of the 5.1 update and I have erroneously attributed the problem to the new version. I guess that the OS has to initialize the accessibility machinery, so that you can turn on the VoiceOver anytime, without it needing to restart all open apps.
The performance impact of enabling accessibility is not clearly documented, as far as I know. So, to save other performance and accessibility conscious developers this surprise, know that even with Tripple-click Home set to Ask, you pay the cost of _UIAccessibilityInitialize.
I'm also about to devise a scheme to do my custom accessibilityLabels lazily, as they too, are having non-negligable impact on the responsiveness of my app in normal use. I guess there is no free lunch after all ;-)

Resources