IOS MDM App Push Success/Failure? - ios

We built an MDM server using a Mac Mini. We successfully set everything up and pushed out 2 enterprise apps to about 50 iPads. All of the iPads where updated to the latest version of ios as of last Tuesday, all of the devices are at least an iPad 2.. All are connected to WIFI
The question is these 2 apps successfully pushed to 90% of the ipads but the remaining few ipads will not download the app? The device will receive the push but after a few minutes will say that the app can not be downloaded at this time? I haven't been able to get my hands on a unit that is doing this yet so I'm hoping that someone may have come across this problem before. Is there a setting on the pad that would stop an app from downloading?... I've ruled out the network because some of the ipads that are not working are connected to the same network that others have downloaded the app on.
I'll post console information here as soon as i get some but again hoping someone may have an idea that I can have them try remotely

We use an MDM service called AirWatch and we are having the same issue. I gave them a call thinking it was our server but from what he says (as of right now) Apple is having APN issues

Related

Install iOS App onto Multiple Devices with Free Developer Account

Fledgling iOS hobbyist here. I have a demo app I plan on presenting to a group of people in about a month. It is a simple app, and I am still on the free tier of the Apple Developer Program for now. For this presentation, I'm being provided loaner iPhones, iPads, and MacBooks to demo my app and its code on.
I do know that I am able to load my app onto at least two devices, but they are my own personal iPhone and iPad.
My question is this: With a free developer account, will I be able to 1) load my app onto multiple iPhones and iPads (that I do not own) to demo for the duration of this presentation; and 2) load the code into Xcode on multiple Macs (that I do not own) so that I can show the code to those present. Or will I have to take the plunge and purchase the full $99/year developer account.
This isn't a code question, I know - but the Apple Developer forums are not nearly as active, and I would like a clear answer on this.
Connect each iOS device to your dev machine and build your app on it. The device will ask you to trust the developer, which you can do in Settings. It's no different than debugging on your own device.
Are you showing the code or the finished app? If showing the code, make sure the other machine has Xcode, then transfer the code from your dev machine (by USB, network folder, GitHub, etc) and build on the new machine. If you are showing the finished app, make sure Gatekeeper is set to at least "Mac App Store and Identified Developer"
The quick workaround is you change the identifiers and install it on various phones. com.company.app1 and com.componay.app2 and install the same app on different device. Although with this push notifications and all services connected to identifier does not works.

Testing React Native via iPhone IOS

This may be a bit of a silly question but i haven't found a solid answer.
I have created a React Native app which includes making http requests to an external server (https://example.com).
When i plug my iPhone in, connect to wifi and deploy to device it works great. (All certificate signing etc is fine).
Should this app still work on my phone once I have disconnected it from my macbook and/or disconnected it from the same wifi.
It worked initially but then eventually kept crashing on load.
As soon as i plugged it back in and tested it works. Is there a way to keep this app on my device permanently?
No, it won't work. While you're testing it, the application on your phone is loading your React Native JS code bundle from a server running on your computer, normally on http://localhost:8081.
Once the phone loses access to that server, the app on the phone will lose access to that JS bundle and it will crash.
You have to install the app on your phone by creating an IPA (which requires an Apple Developer account), so that the app can be used anytime.

ios - failing app store ipv6 but can't re-produce

I have an app that is developed in React Native and uses an API to handle all of the data. The app has already been approved with no problems and no crashing.
I have (after WWDC) recently done some updates to the app and tested everything locally as well on a real device. The app works fine with no crashing at all.
Apple have come back with the following response:
"Performance - 2.1 Your app crashed on iPad and iPhone running iOS
10.2 connected to an IPv6 network when we: 1. Launched app 2. Tapped"
The issue is that I cannot replicate the issue happening on my local machine (we use ipv4 at our offices) and the server is not IPv6.
I did some research and as of WWDC (2015), apps cannot be released into the store unless their APIS are on IPv6 server. However, I'm struggling to understand why this would cause the app to crash as it does work fine on my machine and on my device.
Is there a way that I can replicate the issue that apple are having? And could the issue that Apple are having be because of the IPv6 issue?
Had the same problem. Then figured out that my app did not handle the scenario when the push notification permissions were rejected by the user. So it is best to check if you are prompting users for any permission (when app initially start) and see if the app behaves as expected when these permission are Rejected. (My guess is that testers at apple usually declines these permission when they are testing)

Enterprise App Distribution from Iphone to Iphone via WIFI (No Web server, no local network)

I have noticed that there are walkie-talkie apps that communicate between 2 Iphones via WIFI.
Each Iphone searches for an available Iphone with the Walkie-talkie App. If this works then there must be a way to distribute an Enterprise App within the reach of the Sending Iphones WIFI to a second Iphone with its WIFI turn on and no app on board.
How it could happen:
Step 1 - First Iphone searches for Iphone within WIFI range.
Step 2 - Push Notification of Available App.
Step 3 - Second Iphone responds affirmative to request, asking for App.
Step 4 - First Iphone pushes .plist and .ipa files to second Iphone with install prompt.
Step 5 - Second Iphone installs app.
There of course could other features.
Can this be done?
Sometimes you have an App on your phone and meet someone who wants your app but they cant download it at that moment because the WIFI and Cellular networks are too slow where you are located. Many times the app is never downloaded by this person and the opportunity is lost. I have experienced this many times. Wouldnt this App above be a good solution for this problem. You could also add a feature in the downloaded app to in the future download the App Store version which is available.
If you know how to do this would you give your input? Thanks for your help, James Vernon
At least for an enterprise app this seems feasible. While there's no mechanism available to push a .ipa onto a device there are over the air installs which have been in use for years. (For example I used them to distribute as hoc builds from a continuous integration server: http://blog.carbonfive.com/2011/05/04/automated-ad-hoc-builds-using-xcode-4/)
If the host device can run a web server to serve te .ipa and a .plist then the client device just needs to visit the appropriate URL to fetch the app.
Of course this assumes that you are willing to allow enterprise app distribution out of your control. I'm not sure if that complies with the enterprise license agreements. It also depends on the wifi network in use allowing peer to peer traffic which is not always the case.
I don't know that the end result is useful to anyone but some parts of what you describe seem feasible.

"This code is for an app that is not compatible with this device."

We have an app in the Apple App Store that we can't seem to get installed on a Verizon iPhone (from the App Store, not Xcode). This may have nothing to do with the fact that it's a Verizon device, but that is the main difference I see between it and the devices I can get to run it.
We are attempting to install the app using a promotional code, but we receive an error when hitting Redeem, as seen in this picture: (promo code blocked out)
ERROR: This code is for an app that is not compatible with this device. You can redeem it on your desktop computer or a compatible device.
The error device is an iPhone 4 (Verizon) running iOS 4.2.8. This error was received when the app was built for 3.x and the assumption was that Verizon devices would not accept apps not built with at least SDK 4.
However, the app was recently updated (yesterday) to use the 4.3 SDK. The app has its deployment target set to iOS 3.1 and has been successfully installed and tested on a device (iPhone 3G AT&T) running this version. This latest version has also been successfully retrieved and tested on an iPhone 4 (AT&T) running 4.3. We were under the impression that every version in-between (3.1 - 4.3) would then be compatible, perhaps this is not the case?
Unfortunately, the Verizon device is not available for Xcode deployment nor ad hoc distribution.
Now for the actual development question:
Is there a build setting that can explain this behavior? Failing that, I would like to determine if the error is limited to the specific device or all devices either running 4.2.8 or Verizon specific hardware.
I would be willing to share a promotional code or two to people running 4.2.8 (or later) on a Verizon device (This is not a bribe. You are welcome to keep the app of course, but I am offering this only for installation testing purposes, not for promotional reasons). If you think you can help, please indicate your interest in the comments. I have not mentioned the app here, because I don't want to unnecessarily spam my product if the answer can be determined without it, but I have no problem sharing that information if required.
Update:
I followed lxt's suggestion and waited to see if it was a caching issue with the App Store servers. Unfortunately, 40 hours after I was informed the update was ready for sale, we are still receiving the same error.
I have found the following threads in the Apple Developer forums confirming this problem is not limited to our app: (A login may be required)
Promo-code redeemer getting "this code is for an app that is not c...
Promo codes broken on Verizon iPhones ?
I have submitted a bug report to Apple (ID 9905790) concerning the issue. At this time, I am unsure if this issue is related to Verizon devices or iOS 4.2.8. Once I receive a definitive answer I will post it. For now, a workaround that appears to be working for others which we have not yet tried, is to redeem and install through iTunes.
Since this appears to only affect Promo Code redemption and NOT store purchases, the issue has lost much of its urgency. However, if anyone is able to provide more information or a solution, it is still very much appreciated.
Update:
I can confirm that redeeming the codes through iTunes and then installing to a Verizon device works fine. This means the problem is not with the app or the build settings, but with the Verizon device App Store redemption.
I have received one reply from Apple in response to my bug report asking me to verify if this occurs on 5.0b5. Unfortunately, as previously mentioned, we do not have developer access to the Verizon device (which is the entire reason for using a promotional code in this instance). I have asked them to confirm if this is a Verizon/iOS specific issue and will update this issue when I have more information.
According to the Apple documentation, it's just a matter of setting the deployment target:
You have indicated that your binary requires iOS 4.3 or later. Apps that require iOS 4.3 or later will not be available to Verizon iPhone users. If your app could be compatible with earlier iOS versions, you may want to reject your binary and upload a new one that indicates the earliest compatible iOS.
That's the message that's normally appended to App Store emails when you have an app waiting for review.
So in theory it should 'just work'.
However, what would be interesting to know would be:
Did you produce the promotional code before updating the app?
If so, do you get the same results with a promo code generated after updating the app (you never know with the App Store / iTunes Connect...)
After 24 hours are you still seeing the same issue? (24 hours being the normal App Store 'refresh period')
Sorry, I could not provide you with more concrete answers. At times it does feel like the App Store is held together with string, so it wouldn't be completely surprising if it was some value being kept around that should have been knocked back when you updated the app.
That said, it's a little strange that your app wouldn't work on the Verizon phone when you built it for 3.x. Why is the Verizon device not available for Xcode deployment? Is it because you don't have one to hand (understandable), or is it something else? There's no reason why it shouldn't be able to have ad-hocs thrown on it.
This is pure speculation:
Since there's a different build of iOS for the Verizon phone, maybe under the hood all apps on the appstore are available twice - one time signed for use on the AT&T version of iOS and one time signed for the Verizon version. The Appstore would deliver the appropriate version depending on your device.
If this would be the case and since redemption codes existed before the Verizon line of phones, it may be that redemption codes point to one version of the app only, leading the appstore to believe it is incompatible when redeemed on the "wrong" phone.
End of speculation.
I'd suggest instructing your friend to buy the app (if it's not too costly) and paying him the money back. If this works, then cleary what we're dealing with is a bug in Apples gift code system and you should be filing a bug report about this.
Btw: you're not alone with this problem. Although they didn't resolve it, the guys on this forum mention the exact same situation.

Resources