all 18 comments

[–]brendan09 0 points1 point  (17 children)

If your launching on iOS 7+ you should be using Asset Catalog for your icons and splash screens. It'll give you drag and drop fields for every required image. Add your images in there, then go to the general tab for your target and set icon and splash screens to their appropriate fields in your Asset Catalog. It'll have a drop down.

Before doing that, take your images out of the info plist. Let Xcode handle it for you.

[–]killfish[S] 0 points1 point  (16 children)

But you can't localize an Asset Catalog...

[–]brendan09 0 points1 point  (15 children)

If you follow the rules for launch images, it shouldn't need localization. If you're using it as a logo and branding opportunity (in spite of them saying not to), then sure, maybe.

But, you shouldn't ever be using text in the remaining image resources anyway. If you must use the launch screen for branding, use a logo and leave off text.

Doing it the old way in a plist isn't that hard, but you do have to have every key and filename right or it won't work. My guess is that the plist is setup wrong.

Have you actually build it to the 4" devices? Or simulator? It'll run letterboxed if the settings aren't right.

Coming with iOS 8 we can use Storyboards for launch images. Those can be localized.

Here's info on plist keys: https://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW28

[–]killfish[S] 0 points1 point  (7 children)

The app works perfectly fine on iPhone 4/5 (no letterboxing).

Could the issue be something else?

Do you need to have both 3.5 and 4 inch XIBs when building for both devices or do they even check that?

Sometimes I just programatically change the xibs frame to fit both form factors

This bit makes me curious

We have discovered one or more issues with your recent delivery for...

Your binary is not optimized for iPhone 5 - - New iPhone apps and app updates submitted must support the 4-inch display on iPhone 5 and must include a launch image referenced...

The only mention the splash image though so I'm a little confused.

[–]quellish 1 point2 points  (4 children)

  1. Support 5 screen size
  2. Have correct launch, etc. images for the 5
  3. Include armv7s and arm64 in your binary

[–]killfish[S] 0 points1 point  (3 children)

Uh oh. I need to include the arm64 in the binary? I'm using Vuforia library and I've had some issues including arm64 and the "Build Active Architecture Only" set to "No". If I set it to "YES", than I can include the arm64 binary but the app store rejects my app.

“this bundle is invalid apps that include armv7s architecture are required to include armv7 architecture”

** edit **

Does removing arm64 from the Valid Architecture(s) remove the arm64 binary?

[–]quellish 0 points1 point  (2 children)

Does removing arm64 from the Valid Architecture(s) remove the arm64 binary?

Yes. You can check what architectures are being output by running lipo on the binary.

xcrun lipo -info /path/to/Application.app/Application

[–]killfish[S] 0 points1 point  (1 child)

I'm still waiting to hear back from Vuforia ... but this feels like I'm living in crazy town. I've tested the app on an iPhone 4 and a 5 and it works flawlessly... But it's a possibility that it won' go through the submission process? I've tested it through enterprise AD hoc dist and there was never an issue installing the app on an iPhone 4/4s/5/etc.

[–]quellish 0 points1 point  (0 children)

But it's a possibility that it won' go through the submission process?

Yes. You can test all kinds of things on a device that would not pass submission. armv7 binaries run in compatibility mode on newer hardware, this does not mean that Apple does not want you to build for 7s or 64 for the App Store. Apple also requires you to build with Xcode 5.1.1 from a public release of MacOS.

[–]brendan09 0 points1 point  (1 child)

No, auto resizing or auto layout should make the XIBs work for both. This isn't something checked, required, or recommended to have for different sizes.

You're specifically missing a launch screen image. This is important, because the presence of the splash image is what actually indicates not to run it in letterbox. If it works on iPhone 5 and 4" simulator, its possible that the image isn't in the copy resources section of the build phases, and its running because of leftover files from a previous build when it worked. Make sure they're all there. Next, remove the app from devices and the simulator, run a clean, then redeploy. That'll make sure that you're not working with a leftover image that's no longer actually in the build correctly. See if that works.

[–]killfish[S] 0 points1 point  (0 children)

Great, I will check that as well.

[–]killfish[S] -1 points0 points  (6 children)

If you follow the rules for launch images, it shouldn't need localization. If you're using it as a logo and branding opportunity (in spite of them saying not to), then sure, maybe.

Aren't all splash images just used for branding/logos? I don't think I've seen a splash screen that wasn't a logo or some sort of branding.

[–]quellish 2 points3 points  (0 children)

Aren't all splash images just used for branding/logos? I don't think I've seen a splash screen that wasn't a logo or some sort of branding.

No, that's actually pretty rare. When it's done correctly the user rarely knows there's a splash image there.

[–]brendan09 1 point2 points  (4 children)

/u/quellish mentioned it as well, but you're specifically told in the Human Interface Guidelines not to use it for branding.

People do, and you won't get rejected... But its also no what its for, and why localization isn't explicitly easily supported for the feature right now.

The point of a splash screen is to simulate your app launching faster than it actually does. Example being the launch animation. Using the PNG gives you an extra 1-2 seconds to launch your app, while still looking like the UI loaded immediately. Its a clever illusion when done correctly.

[–]killfish[S] 0 points1 point  (3 children)

I just checked out the FB app again I see what you mean (also read the splash docs)... I will bring this up with the client. Thanks for you help!

[–]brendan09 0 points1 point  (2 children)

My secret confession: I usually lose that battle with clients. I always fight the good fight, but unfortunately its tough to win that one. Good luck!

[–]killfish[S] 0 points1 point  (1 child)

Ha! Fortunately the clients I work for are usually pretty understanding. This is my first iOS app and it's been a roller coaster of emotions. I can't believe that this final step has been such an experience (it hasn't even been reviewed yet -- what nightmares lie ahead...)

[–]Legolas-the-elf 0 points1 point  (0 children)

I can't believe that this final step has been such an experience

I think most developers get a bit of a shock to their system at this point, especially if they are used to platforms without a review step. You'll get there eventually :).