IOS 6.1および7用のiPhoneアプリを開発しています(Xcode 5を使用)。 iPadの起動画像に問題があります。
IPad 7.0および7.0.2では、起動画像が表示されません(6.1で動作します!):アプリの読み込み中に黒い画面が表示されます。
IPadとiPad Retina(ランドスケープとポートレート)に必要なすべての起動画像を設定し、アセットカタログを使用していますが、iPhone 6.1と7.0.2ではこの問題に直面していません。
私は何が欠けていますか?
Appleサポートをリクエストしましたが、それはバグであることが判明しました。彼らはそれを報告するように頼みました。
最近、iPhone専用に設計されたアプリで同じ問題に直面しました、iPadで起動画像が表示されないという問題が発生しました(iPad ios> = 7.0.xでは起動画像が表示されず、アプリの読み込み中に黒い画面が表示されます(iPad ios <7.0.xでは正常に動作します))。
すべてのiOSバージョンで、iPhoneでの起動画像の問題はうまくいきませんでした。
ソリューション:アプリの画像を管理し、iOS 6およびそれ以前のみを対象とするために、アセットカタログに更新します。
手順:
ステップ1:
ステップ2:
ステップ3:右上の[属性インスペクター]アイコンをクリックします。ここで、起動イメージのターゲットOSを設定できます。
IPhoneのiOS 7チェックボックスのチェックを外すと、iOS> = 7.0.xでiPadの起動画像が表示されるはずです。
私のような同じ状況がある場合、それは解決策です:
私のアプリは横長のみ、iOs7のみ、ipad\iphone(XCode 5)です。
問題: iPhone(およびシミュレーター)での黒起動、iPadでの通常起動。
ソリューション:Images.xcassetsに移動-イメージを起動-選択します。右 "iOs7以降"ボックスのチェックを外します。 "iOs6 and previous"ボックスをチェックし、空のスペースを画像で埋めます。
奇妙ですが、動作します。
Appleのドキュメント( link );空のiPad固有のストーリーボードが答えかもしれません。また、ストーリーボード内で初期View Controllerが設定されていないと黒い画面が表示される問題も見ました。この問題の変形は、アプリのplistの設定が間違っている可能性があります。
テクニカルQ&A QA1780アプリがiPadで黒い画面で起動するのはなぜですか?
Q:iPadでアプリが黒い画面で起動するのはなぜですか?
A:iPhone専用に設計されたアプリは、iPadで実行すると空白の画面で起動する場合があります。これは、アプリのバンドルに空のiPad固有のストーリーボードが存在することと、アプリの情報プロパティリスト(Info.plist)ファイルにiPad固有のUIMainStoryboardFileキーが存在することが原因です。ユニバーサルオプションが選択されている場合、両方がさまざまなXcodeテンプレートプロジェクトによって自動的に作成されます。
...
Xcodeで
ファイルナビゲータでMainStoryboard_iPad.storyboardという名前のファイルを探します。このファイルが存在する場合は、プロジェクトから削除します。
アプリの情報プロパティリスト
メインストーリーボードファイルベース名(iPad)またはUIMainStoryboardFile〜ipadという名前のキーを探します。このキーが存在する場合、削除します。 (iPad)または〜ipadの接尾辞が付いた他のキーも削除する必要があります。
最後に、iPadまたはiPadシミュレーターでアプリをテストし、期待どおりに動作することを確認します。
画像を再度設定してみて、スプラッシュ画面の解像度がiOS 7ガイドラインに従っていることを確認してください
ここで見つかったいくつかの解決策を試した後、iPhoneが横向きで起動しようとしていたため、対応する起動画像が見つからなかったのではないかと考えました。確かに、私が理解していなかった理由で、シミュレーターはランドスケープで起動していました。
最後に、Appleドキュメンテーションを読んだ後、info.plistファイルの「サポートされているインターフェイスの向き」のキーの順序が適切でないことがわかりました。ポートレートが最後のアイテムでした。これは最初のアイテムで、アプリはポートレートモードで起動し、画像を見つけます。
これは馬鹿げているように聞こえます。 jpg拡張子のpsd形式でファイルを保存すると、そのようなバグがありました。起動画像の保存中に1回クリックするだけです。
以前にインストールしたアプリをデバイスまたはシミュレーターから削除し、クリーン後にアプリを再起動します。
IOS 7では、iPhone(3.5または4インチ)で起動画像が表示されないという問題がありましたが、iOS 7ではiPadに問題はありませんでした。
簡単に言えば、ローンチ画像のみのアセットカタログを無効にしました。だから、私は昔ながらの方法で打ち上げ画像を追加しています。これで問題は解決したようです。
明日はさらにテストを行う必要がありますが、問題は解決されたようです(少なくとも私の場合)。
これはiOS 8のアップデートです。
IOS 8アプリにLaunchImage
を追加しようとしたときに同じ問題が発生しました。
Appleは、開発者がデフォルトの名前がLaunchScreen.xib
であるxibを使用して、iOS 8の起動ビューをレンダリングできるようにします。開発者はLaunchImage
またはLaunchScreen.xib
のいずれかを使用できます。残念ながら、LaunchScreen.xib
が導入された後のLaunchImage
の処理方法を説明するドキュメントは見つかりませんでした。 LaunchImage
を起動ビューとして使用しようとすると、常に黒い画面が表示されました。
私の解決策は次のとおりです。
LaunchImage
について考えないでください。 LaunchScreen.xib
を使用します。 (ただし、アセットカタログには空のLaunchImage
を保持する必要があります。これはバグだと思います。)
UIImageView
をxibにドラッグし、UIImageView
を全画面にします。 サイズのクラスと制約を考慮することを忘れないでください。
IPhone 6プラスに十分な解像度の画像をUIImageView
に設定します。
私のアプリで機能するこの答えを見つけました(iPhoneのみ、iPadで使用): https://stackoverflow.com/a/19448782/1258419
その答えから要約するには:
どうやってするの。資産カタログに移動します。そして、右上隅にある「属性インスペクター」アイコンをクリックします。ここで、起動イメージのターゲットOSを設定できます。 iPhoneのiOS 7チェックボックスをオフにします。これで、これらのデバイスの起動画像を確認できるはずです。
in Xcode 5 , make sure thay you add all needed images mentioned in your app target.
ランドスケープでも同様の問題が発生しました。iOS6が表示されている間、iOS 7の起動画像は表示されませんでした。私が作ったのは、iPhone Retina 3.5インチのローンチ画像です。
私はこの問題を共有していない別のアプリをポートレートで使用しているため、2つのことを行いました。
Info.plistの「サポートされているインターフェイスの向き」の下に、2つのポートレートモードも追加し、次のようにランドスケープの前に配置しました。
Item 0: Portrait (top home button)
Item 1: Portrait (bottom home button)
Item 2: Landscape (right home button)
Item 3: Landscape (left home button)
View Controllerにこのメソッドを実装しました:
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscape;
}
これは、アセットカタログの有無にかかわらず機能します。
アセットカタログを使用している場合、Images.xcassetsターゲットメンバーシップが正しく追加されていることを確認していると想定しています。複数のターゲットがある場合、それらを手動で追加する必要があるように見えるので、これについて言及しています(そして、スクリーンショットを提供していないので確実です)。
プロジェクトのImages.xcassetsフォルダーの「LaunchImage」概要のスクリーンショットを実際に提供していないので、考えられる理由しか推測できません。 iPhone(6.1および7.0.2およびiPad(6.1)で起動イメージが正常に機能し、iPad(7.0以降)でのみ機能しないという事実を見ると、おそらく、 iPad PortraitおよびiPad Landscapeの画像はiOS7に適しています。具体的には、添付画像にあるような空の長方形ではなく、起動画像が表示されます。
これは、ステータスバー領域を除いて作成されたiOS7用のiPad起動画像がまだあるという事実が原因で発生する可能性があります。 iOS7より前は、iPadの起動画像はステータスバー領域を除外するために作成されましたが、iOS7ではすべての起動画像にステータスバー領域を含める必要があります。 Apple iOS7 UI移行ガイド( https://developer.Apple.com/library/ios/documentation/userexperience/ concept/TransitionGuide/TransitionGuide.pdf )。
次のスクリーンショットは、私が話していることを説明するものです。
例えばiOS6.1以前のiPad Landscape Retina画像の寸法は2048x1496(ステータスバーの40 pxを除く)ですが、iOS7.0以降の同じ画像の寸法は2048x1536(ステータスバーの40pxを含む) )。そのため、画像を適切に変更していない場合、iPad 7.0以降では画像の黒い画面が表示されます。 iPhoneでは、iOS 6.0およびiOS7.0であっても、iPhoneの起動画像は常にステータスバーを覆うため、この問題に直面することはありません。そのため、iPhone起動画像の新しいUI要件はすでに満たされています。
同じ問題がありました。私は回避策を講じなければなりませんでした:すべてのiOSバージョンにデフォルト画像を使用し、info.plistからUILaunchImageFileキーを削除しました。
IOS 7と以前のバージョンに異なる起動イメージを使用することはできないため、アプリの最初のビューを模倣するイメージ(代わりにApple =お勧めしますが、私は好む)が、少なくとも私はもう黒い画面を取得しません。
IOS 7の異なる起動イメージを使用できるUILaunchImageFileキーのように見えますが、以前のバージョンはiOS 7のRetina iPadで正しく機能していません。
警告:私はまだアプリをテストしているので、副作用があるかどうかわかりません。
私も同様の問題に直面しましたが、その解決策は簡単でした(私の場合)。
私がやったのは次のことです-
1.新しいファイルを追加します(追加していない場合)Launchscreen.storyboard
2. UIViewController
を取得し、Is Initial View Controller
としてマークしてから、UIImageView
を追加し、アプリの起動時に表示する画像を設定します。このUIImageView
必須制約を必ず指定してください。
3. [プロジェクト]-> [一般]-> [アプリケーションアイコン]に移動し、画像を起動し、[起動画面ファイル]として[Launchscreen.storyboard]を選択します(ドロップダウンがあります)。
すべての画像を確認し、アセットに適切に配置され、適切な名前とサイズになっていることを確認します。
また、許可している方向を確認し、それに応じて画像をアセットに追加します。