Require at least 4" display - objective-c

I'm building an Xcode app, and realized that it won't work on any devices that have a 3.5" screen, due to some interface elements I'd rather not change.
Is there any way I can register this requirement with iTunes Connect or some other way to prevent users from downloading the app on a 3.5" device?
I could check the screen size on load and just display a message to the user instead of loading my app, but I'd rather not have people disappointed when they download my app.
Thank you!

No, you can't do that. You may even get rejected if you don't make your app accessible to users with a 3.5" screen.

Related

React Native - Detect Physically Broken Screen

Im trying to develop an app in react native that can detect if the screen of the user is physically broken. It's for an insurance company that wants to check if someone's phone isn't already broken when they insure it.
Obviously I can just ask the user to take a picture of the phone pointing at a mirror and validate it my self.
But instead, i've been wondering if even such technology exists or maybe there is work around for the matter. Probably painting the entire screen to detect pixel by pixel if any is broken but I don't know how to do that or what to use.
If anyone knows if a way exists I would be very grateful.
TL;DR- No.
Not only in react native, even in native android or ios api there is no such thing to check screen damage.
As far as your app is concerned, user involvement is necessary to detect screen or touch damage.
Just display different colors on screen and ask user to check for any discoloration or “dead” pixels.
And for touch, ask user to tap different parts of screen or drag finger accross and check for touch misses or bad areas.
There are some good touch testing apps available on the play store, give them a shot.

Xcode added Default-568#2x.png

About a week ago xcode showed me some error and when I clicked to solve the problem, xcode added this picture:
My questions are: What is it good for? Why do I need it?
Thank you.
Yes you must include one.
From Apple's Interface Guidelines
To enhance the user’s experience at app launch, you must provide at least one launch image. A launch image looks very similar to the first screen your app displays. iOS displays this image instantly when the user starts your app and until the app is fully ready to use. As soon as your app is ready for use, your app displays its first screen, replacing the launch placeholder image.
Without this default image (or a LaunchScreen storyboard), your app would not take all the available screen space on iPhones with 4" displays (iPhone 5, 5s, SE). This is the default image that those iPhones would use.
Of course you can (should!) change it with the one you designed.
Runtime, leading to the top and bottom of applications were empty out a lot , because the application is based on a 320x480 size to run.

No longer receiving iAd revenue or requests?

I have a few applications on the App Store that have iAd banners. One of my applications no longer displays iAd banners anymore. I have not updated the application or anything. Fill rate, requests etc. are all displaying 0. I do have the Live Ads status for the application.
Any ideas as to why this is happening and how I could solve this issue?
Are these applications older applications? I read somewhere recently, going to try to find it, that applications that use static launch images, only support a few older screen dimensions (iPhone3/4/5), and are required to be stretched to meet the newer screen dimensions (iPhone6/6+) will not receive iAd banners. Implementing Auto Layout, and using a LaunchScreen.storyboard in your application should fix these issues.
I have not tested this extensively but all of my older applications that fit the example I've given have stopped receiving iAd banners. My newer applications that implement Auto Layout, use a LaunchScreen.storyboard, and are universal receive iAd banner advertisements just fine.

geofencing no longer relaunch app from terminated state in ios7?

I'm developing an app which uses ibeacon to determine if the user entered a specific region.
Now I'm using the CoreLocation framework to implement this geofencing-based feature.
I've read the document below.
https://developer.apple.com/library/mac/documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html
in which the Apple is saying that:
"In iOS, the regions you register with the location manager persist between launches of your application. If a region crossing occurs while your iOS app is not running, the system automatically wakes it up (or relaunches it) in the background so that it can process the event. When relaunched, all of the regions you configured previously are made available in the monitoredRegions property of any location manager objects you create. "
I discovered that it's true just before the ios 7.
From ios 7, An app will be waken-up from background but it will actually no longer could be re-launched from terminated-state (slided out from the task manager which displayed by double-clicking the home button).
If it's due to the Apple's policies, why does Apple not update the above official document?
So I'm thinking of an ios7's bug because the Reminder App (a built-in app) is also not relaunched in ios7 even though it's relaunched in ios6.
Is this issue due to Apple's policies? or an ios7's bugs?
It takes me more than 2 days to google for a solution.
Any ideas for this issue?
The documentation is simply out of date. This is intended behavior in iOS7. Apple produced a video explicitly discussing this change. The idea is that if the user explicitly terminates the app, the user does not want it running. See this thread.
Is this such a big deal? How often will users really do this? Remember, if users are annoyed by you app, they can always uninstall it, too. This was true in iOS6.
iOS 7.1 reversed this policy. That is even if the user kills your app the iOS still launches your app upon crossing the region.

Display App in 3.5" Resolution on iPhone 5 for Development/Debugging

Does anyone know if there is a way to force an app you're developing to run in a 3.5" screen size mode if you're on an iPhone 5, just for dev/debug purposes? Something such as what might look like a toggle in the Development section of Settings or something. In other words, run the app such that it LOOKS like it's running on a non-5 iPhone (black bars on top/bottom), that way I can test certain UI functions.
For clarification, I'm NOT saying "I don't want to support iPhone 5" - I most certainly do. Also, I'm aware that I can do the 'old' retina display in the simulator, but I do not want to use the iOS Simulator as the app includes libraries that do not support i386 architecture, uses push notifications, and heavily relies on GPS to function correctly. I'm just looking for a way to test both aspect ratios on the same device to save money/time.
Thank you!
It appears that by removing the app from device, deleting the Default-568h#2x.png launch image, cleaning the project, and re-running app, I can get the functionality I'm looking for, although not as nicely as a toggle switch.
Letter box in iPhone5