MobileGestalt no access to InverseDeviceID - ios

This happens with every app when I try to use OpenGLES on my iPhone7+ with iOS10.3. But it works without any problems on my iPhone7 iOS10.1.
This is the message I get:
libMobileGestalt MobileGestaltSupport.m:153: pid 304 (OpenGLES_Ch4_1) does not have sandbox access for ... and IS NOT appropriately entitled
libMobileGestalt MobileGestalt.c:549: no access to InverseDeviceID
Does anyone have an idea about these messages?
I wonder if it is bugs or something else in iOS10.3? Because when I run the app on iPhone5s iOS10.2, those messages did not shown on the screen. While I upgraded the phone to iOS10.3.1, the massages shown again.
The reason why I ask this question is that some animation effects perform quite stuck on my iPhone7+, but it is completely smooth on iPhone5s. But now it seems it is no relationship between the message above and the stuck, and I have to check my iPhone7+...

I had the same issue. It turns out to be multiple thread accessing the same OpenGLES related resource, EAGLContext to be specific. I guess it is possible that OpenGLES related codes are not thread-safe, and it behaves differently in different OS versions / iPhone 7 / 7+, sometimes it messes up the memory.
After making sure data accesses are synchronised across threads, the problem is gone.

For those of you who are maybe using Ionic and getting this error, please just make sure that in case you've cloned a new fresh copy of the project from your repository that you did both npm install and bower install.
I was missing bower install and this was torturing me for like two days, so hope this helps someone. Sad thing is that I'm by all means not a beginner with Ionic (top #3 answerer on SO) but was still able to miss this fact so I hope that in case someone else runs into this problem it will help you.

Google Map display and functionality works fine with this warning
Check my answer here:
https://stackoverflow.com/a/44970665/3378076

I can see where the setting up of a sandbox account might do the trick, but if the device you are using is also connected to your normal icloud account, you can't create a sandbox with the same AppleID.
You then have to log out of your existing icloud account, and log in with the new icloud (sandbox) useid. Which screws up your existing icloud device settings.
So you are unable to use your Developer ID, only your Sandbox ID.

This worked for me:
Create a new sandbox user in iTunesConnect. YES, you have to create a new iCloud user with a new email.
Log OUT your current iCloud user on your mac AND on the device you are testing on.
Log IN with your new iCloud user on your mac AND on the device you are testing on.
Run your app on your device again. This time it should work.
Hopefully Apple will come around and simplify this issue since this is a real pain in the ...

I had the same issue, and this point me in the right direction:
I've managed to solve the same problem for MKMapView. Apparently, that happens when your app's current permissions state doesn't correspond to entitled (declared in Info.plist) one. That effecively means that you need to call APIs to gather user's permissions explicitly and preemptively. (E.g. LocationManager.requestWhenInUseAuthorization before displaying a map with user location on it)
Source: rdar://problem/11744455

I had same issue. My rendering program was written to support 3 version of openglES(1, 2 and 3). On my case I was accidentally supplying EAGLRenderingAPI.openGLES1 or kEAGLRenderingAPIOpenGLES1 to my renderer class based on openGLES2.

I just had this issue when trying to use in-app-purchases.
Not sure if yours is the same issue, but I realised that you HAVE to create a Sandbox User in iTunes Connect, then log into iCloud on an iOS device with that user to enable the app to work.

I got this console warning message because of issues with multiple Apple Developer accounts. Evidently you cannot have a sandbox account with an existing Apple Developer account. I didn't try to create a sandbox account but it seems to check my default account, which is also an old Apple Developer account that I don't use and hence is no longer entitled. This issue has been reported to Apple many times by other people and I have not yet seen a solution.
My workaround to suppress this warning was to set the OS_ACTIVITY_MODE environment variable to disable in my scheme settings. You can click on the app name and then click Edit Scheme... or from the top menu you can click Product->Scheme->Edit Scheme... :
Then you edit the "Run" settings and add the environment variable OS_ACTIVITY_MODE and set it to disable:
NOTE: Be sure to set this environment variable to enable before you submit your app so that you can see if there are other warnings. There may be other warnings you should fix before you submit your app to the App Store.

Related

Why does my Internal Test Track opt-in URL not work?

I'm developing an app and am ready to release it to a small group (5) of testers for internal testing, so I added their Gmail addresses to the list:
I sent one of the testers the link to the app and after opening email and selecting the link, they got this:
followed by this:
So far, so good. Now when I select the tester in question, instead of advancing to the next page, which is the start of a tutorial (as the app does when it's run from Android Studio), it returns to the previous screen. No error message or crash (I checked with Crashlytics). Anyone have any idea why this is happening?
UPDATE: I added Firebase event logging to my app and saw that no events are being logged from the LoginActivity (on the other hand, when I install the app via Android Studio, events DO get logged). Logcat shows a NameNotFoundException thrown by the PackageManager for for the app's package. Thinking the package manager doesn't like app bundles, I generated an APK instead, but got the same problem.
UPDATE #2: The next thing I tried was re-installing the app via Android Studio. When I simply let the app run, it exhibited the same problem, but if I ran it in Debug mode, it was fine. Not a solution, just a clue.
If I don't get this resolved by this weekend, I'll have to email my testers the APK. I wish someone in the Firebase group were monitoring this problem because emailing APKs as a workaround really sucks!
UPDATE #3: Getting closer to the cause of the problem. The reason that events weren't getting logged in LoginActivity was because I was using a reserved event name: user event names cannot start with "google". After fixing that, events did start getting logged, including an ApiException "10:" when trying to log into a Google account. So I googled around and I THINK the bottom line is that when I opted into Google App Signing I may have uploaded the wrong app signing key. If that's the case, how do I upload the correct one? I hope the answer isn't "create a new app with a different package name and start over".
After opting in to App Signing, I neglected to copy the SHA-1 fingerprint into my Firebase settings. Also, I needed to rebuild the app with the updated google-services.json. After doing all that and updating the release, the opt-in link worked fine.

iOS app doesn't show on iTunes Connect when trying to deploy on testflight

I've read a lot of tutorials and stackoverflow questions similar but I'm unable to figure out what's happening.
So I an an iPad application that I can successfully build in Xcode and on iTunes connect see the app version processing...
After a certain amount of time, it just disappears from the menu. As in it's no longer visible.
I've been following guides similar to: https://www.raywenderlich.com/133121/testflight-tutorial-ios-beta-testing
But the screenshots on internal testing show's a Select Version To Test option which I don't see:
Does anyone have any idea on how to debug this or what's going on? Because the Archive bundle looks like it's deploying it to the app store, I can see it on the iOS Builds activity but after processing I can't find it anywhere.
Recently we faced this issue couple of times. In iOS Builds section it shows Processing and after some time it disappears.
Reason is due to some errors/ issues with the ipa submitted to iTunesConnect.
Apple sends the error messages to people added in the Users and Roles section of iTunesConnect. You can check the people added in the the Users & Roles section and see the mails sent from Apple for any errors related to the app
Please add this key in info.plist
<key>ITSAppUsesNonExemptEncryption</key><false/>
Paste it before
</dict></plist>
This value means that the app uses no encryption, or only exempt encryption. If your app uses encryption and is not exempt, you must set this value to YES/true. Mine is not using encryption so I've set it to false.
It worked for me.
Apple is not going to any send any emails to any user regarding this issue.

Refresh Associated Domains iOS

I have universal links working in my app.
I enable the Associated Domains, upload the apple-app-site-association file, and run the app. All works as expected, the domains are registered (I'm watching via the OS log in Xcode), and I can use Open In from the Notes app to test the links.
HOWEVER. If I reboot the device (in my case iPad, iOS 10) it ceases to work. It appears to me as if the associated domains are getting un-registered/forgotten when the device shuts down.
Is there a way to refresh the associated domains on app launch?
I'm already using Branch.io, and this affects those links as well as straight universal links.
I'm guessing this is an Apple bug, and will file a radar with them. However, any workarounds would be appreciated.
We had not seen this issue at Branch when Alex wrote his comment above. We have since confirmed that this is indeed an Apple bug.
Current documentation states you need to uninstall the app every time you update Associated Domains list to apply the effect immediately.
https://developer.apple.com/documentation/safariservices/supporting_associated_domains_in_your_app

Detect if user has installed app previously even if deleted

I wonder if somebody can come up with a solution for the following problem.
I have created an iOS app of which for the first x amount of days the unknown user (guest) will have access to the full version of the app.
Then after the "trial" period i want to then put them on the free version of the app which will be ad supported if they don't want to pay a fee.
one issue i can for see is that the user could simply delete the app and reinstall to then restart the trial period.
One solution i can possibly imagine is that a file is uploaded to a "secure" section of the users iCloud account and check against that?
Has anybody come up against this issue before and what was the best solution you discovered without the need of a registration signup?
Thanks
Thomas
Your iCloud solution should work. You can also consider storing a similar flag in the device keychain as that isn't cleared when the app is deleted. Note that the user can still restore the device or disable iCloud integration on the device to 'work around' these things, but that's relatively uncommon.

iTunesConnect: cannot transfer app because of "You must turn off TestFlight beta testing for the app that you want to transfer"

Below you can see that testing for external testers are turned off:
same for internal testing:
but when I transfer app, one of the criterias are not met:
Why?
I had the exact same issue, resolved by removing all Tester and Build from the TestFlight as discussed above also (!important) remove everything fields at the App Information - Test Information.
For me it was localised test descriptions. Make sure you check that drop down list on the right and clear out info for all languages.
I just solved the transfer issue, you just need to expire your build from tester by following the steps below. and then app will available for transfer..
open your app and click on testflight then click on the icon of your app as shown in below screenshot.
The click on expire build.
Now you can transfer your app :)
I've search for a long time and to me this worked:
Clean all builds inside: My Apps --> App Name --> TestFlight
Go to: Itunes Connect --> Users and Roles --> Tab "TestFlight Beta Testers" and click in the name from another user that isn't you.
Save.
Go back to the App in Itunes Connect: "Itunes Connect --> App Name --> Transfer App" and attempt to transfer again by clicking in "Transfer App".
To me this works. Hope help someone.
i had the same issue i deleted (mark expired) all the versions of app testing version in App TestFlight section and done the trick for me ;) attach is the screen shot of activity.
Another possible reason:
When you delete all test information from TestFlight, make sure you delete it for every language.
In the testinformation page, select every localised language and check if the form is empty.
I struggled with this for an entire day, I tried everything and finally found another workaround:
1) Expire all the builds
2) Delete all testers
3) Clear all the informations in the Testflight tab
4) Delete all langages except the main one
And finally the step which fixed the Testflight criteria for us
5) Create a new app version (no need to submit or even edit it)
now you check transfer.
Good Luck.
I know it's an old question, but it still bugs people to this day.
So the solution here, after you have removed all the testers, and expired all builds, go to TestFlight > Test Information and clear all the fields.
Also make sure you delete any localization you might have there. Give it 5 minutes, after which transfering will be possible.
Not sure if this is going to help,
Check Users and Roles > TestFlight Beta Testers
Do you have a tester who is testing the app that you want to transfer?
I have the exact same issue and I'm currently getting from Apple "our engineering team is still working diligently to have this resolved for you". I have been supplied with a workaround:
Enable TestFlight by adding a tester to a build
Then deactivate the build, by turning off TestFlight beta testing
Attempt to transfer again
unfortunately, I still haven't been able to resolve the issue.
We found that in addition to the other answers here, logging out and logging back in to iTunesConnect allowed us to continue after it was saying TestFlight was still enabled.
I was facing the same issue, going inside tranferring app console multiple times automatically fixed the issue and started showing all criteria as met.
Do the same step as #Imran Iqbal answer, if your app is Sign-in Required, uncheck Sign-in Required also, like:
then, you can transfer app.
I've exactly the same problem and could not solve it. The good news: After contacting Apple, they have confirmed a bug and they're working on a solutions. Apple confirmed also, that many developers ran into this.
Got that workaround from the support (that did not work for me):
1. Enable TestFlight by adding a tester to a build
2. Then deactivate the build, by turning off TestFlight beta testing
3. Attempt to transfer again
It looks like this is being done on purpose for new apps.
Now, A newly created app CANNOT be transferred into an account, until 14 - 21 days have passed.
An expiration period.
First, You must remove all build and user from TestFlight of that app. After its looks like below.
If you still not match last criteria than Sign Out and login again.
Creating new app version did it for me! Thanks!
The tricky solution is to enable testing again, add some tester in. The visit the TestFlight and under test flight users, you will see old active test flight users. Simple delete them.

Resources