iPadで見たときに左右に黒い帯が入るって理由のリジェクトを速攻で直してみた
実はこのところ、アプリがリジェクト続きで、少々落ち込んでいました。
リジェクト、ようは審査落ちですね。iPhoneアプリを出すときは、Appleの審査があるんですよ。
(Androidは基本的に審査ないらしいです。iPhoneが1週間から10日くらいかかるのに対して、Androidは1時間とか)
んで、そのリジェクトの理由っていうのがこれ。
iPadで見たときに、左右に黒い帯が入ること
Appleからこのスクショが送られてきました。
ええ、確かにそうですね。てかSpriteKitでiPadへの対応をどうすればいいのか分からなかったんですよ。
アプリ作ってる人にしか分からない話になってしまいますが、ストーリーボード使えばさすがに大丈夫ですよ。
でも、SKSceneだとどうするのかが、イマイチ分かってませんでした。
ただ、
さすがにメールがヒドすぎる
英語でこんなのが来るんですよ。
Apple and our customers place a high value on simple, refined, creative, well thought through interfaces. They take more work but are worth it. Apple sets a high bar. If your user interface is complex or less than very good, it may be rejected
これを直訳するとこうなります。
Appleと当社の顧客は、単純に高い価値、洗練された、創造的な、よくインターフェイスを通じて考えを置きます。彼らはより多くの仕事を取るが、それだけの価値があります。 Appleは高いハードルを設定します。ユーザーインターフェイスが複雑なまたは非常に良い未満である場合、それは拒否されてもよいです
洗練されたとか言われると、無駄にヘコむんですよね。別に大したことじゃないのに。
しかもオール英語て。極東のイエローモンキーには、そのニュアンスが分からんわ。
☆☆☆
はい。どーでもいい前置きはおしまいです。
このiPad対応なんですが、比較的簡単に出来たので、ちょっと書いてみようと思います。
てか1行変えただけですよ。コードを1行変えればOKでした。
僕はこの本を見てSpriteKit始めたんで、基本的にレイアウトの調整はこの本を参考にしています。iPhoneのゲームアプリをつくろう。
だから、これから書くことは、同じようにこの本を読んでる初級者向けの内容ですね。
もっと高度は悩みの人には1ミリも参考にならないはずですw
まずこの本では、GameViewController.swiftの中をこんな風に変えます。
override func viewDidLoad() {
super.viewDidLoad()
let scene = TitleScene(size:CGSize(width: 750, height: 1334))
let skView = self.view as! SKView
scene.scaleMode = .AspectFit
skView.presentScene(scene)
}
一応このAspectFitで全てのレイアウトに対応しておくとか、なんかそんな言い回しだったんですが、ここを変えました。
AspectFit -> AspectFill
AspectFitをAspectFillに変えたってことですね。
僕の場合はこれだけでOKでしたよ。
iPhoneでもiPadでも、ちょうどいい感じになりました。
たしかAspectFitは比率そのままで画面一杯に広げるって感じで、AspectFillは画面いっぱいにする、とかでしたっけ。
その辺はよく分からないんですが、これだけで対応出来ちゃいました。んで審査も通ってます。
SKSceneのiPad対応で悩んでる人は一度試してみてください。