起動画像がiOSアプリに表示されない


149

Xcode 6.0.1を使用して構築された、アプリに表示する簡単な起動画面を取得したいのですが。

起動画面を2つの方法で追加しました。XIB(デフォルト名はLaunchScreen.xib)として、およびxcassets内の起動画像セットとして。

「Launch Screen File」がLaunchScreen.xibに設定されていることを確認しました。

私は利用可能なすべてのデバイスをシミュレートしました(たとえば、「iPhone5 iOS8」/「iPhone5s iOS8」/「iPhone6 iOS8」。iOS8のみがシミュレーター内で利用可能であることに注意してください)。


起動画面で使用される画像は、Images.xcassetsに含めないでください。それらをバンドルに入れて、xcassetsに含まれていないテスト画像で試し、.xib自体に別の背景色を設定して確認してください。 .xibをロードしている場合
Juan Boero

@JuanBoeroバンドルに含まれる理由 ランタイムではなく、ビルド時に使用されます。
ルドルフアダムコビッチ

回答:


239

だから、これは些細なことであるはずのもののためにかなり苦痛でした。これが私がしたことです:

xcassetsを使用する

起動には.xcassetsと.xibを使用することにしました。.xibを削除しました。プロジェクトにimages.xcassetsがすでにある場合はすばらしいですが、そうでない場合は、[ファイル]> [新規]> [ファイル]から追加できます。

AddNewASsetCatalog

起動画像セットを作成する

ナビゲーター領域を右クリックして、少なくとも.xcassetsファイルにlaunchimageセットとアイコンセットを作成します。

新しい起動画像とアプリアイコンを追加する

アプリのアイコンと起動画像の設定を更新する

次に、ターゲットの「アプリアイコンと画像セット」が次のようになっていることを確認しました。

非常に重要:「Launch screen file」設定が空白であることを確認してください。

アプリのアイコンと画像セット

画像を追加

最後に重要なことですが、Appleがデバイスの選択に使用している用語は紛らわしいものです。最初は、iOS8のみ(iPhoneポートレート)に展開しているので、これを実行でき、iPhone 6およびiPhone 6+の起動イメージを配置するだけだと思っていました。

デバイス

これがうまく機能していないことにすぐに気づき、「iOS 7.0以降のiPhone Retina(4インチ)起動イメージが必要です」という警告を受けていました。

そのため、iOS 7.0以降でiPhoneを選択し、iPhone 5sの画像を追加する必要がありました。

したがって、右側にあるチェックボックスを見つけるには、質問をしないでください。iOSとデバイスおよびデバイスの最小の向きは何ですか?

私の最小iOSをサポートできるデバイスは何ですか?これらのデバイスでサポートされている最小iOSは何ですか?そして、これらのチェックボックスをすべてオンにしてください。したがって、私はiPhone 5s、6、6 Plusを8.0でターゲットにしていますが、iPhone 5sは7.0でも存在できるため、7.0のボックスもオンにして画像のプレースホルダーを表示する必要があります。つまり、右側の(iOS)チェックボックスには、そのデバイスで利用可能な最小のiOSバージョンが表示されます。このiOSバージョンで展開するかどうかに関係なく、クリックしてイメージのプレースホルダーを表示し、イメージを配置する必要があります。 。

これが誰かを助けることを願っています。

すべてのデバイスを追加する

ここに画像の説明を入力してください


1
起動画面なしでキーボードのサイズが異なっているどのように解決するために、任意のアイデアそのscreencast.com/t/Vk18vuhSqZv
souvickcse

2
このようなものはとても迷惑です。
ReduxDJ 2015

5
あなたはサー、インターネットに勝ちました。
OhadM 2015

46
これは機能しましたが、変更は、アプリがデバイスから削除されて再インストールされたときにのみ表示されました。キャッシュを消去して派生データを削除した後でも、古い起動画面が保持されているように見えました。
Francis Jervis

15
ああ、変更を有効にするには電話からアプリを削除する必要がありました。多くの時間を無駄にしました:」(
Phil Hudson

31

LaunchScreen.xib情報値はLaunch screen interface file base name、プロジェクトの作成時に作成されている私の経験から、両方のプレースホルダです。Images.xcassets起動画面専用に使用したい場合は、LaunchScreen.xibinfo.plistアイテムの両方を削除してください。

あなたがinfo.plist設定を提供する場合、あなたのアプリはxibあなたではなくを使用しますImages.xcassets


1
わかりやすいソリューション。
Travis M.15年

2
「arcady bob」ソリューションがうまくいきました。「info.plist」を開き、「Launch screen interface file base name」という要素を削除し、アプリを実行すると、ようやく起動イメージがそこにありました。
ホセマヌエルアバルカロドリゲス2015

これは古いですが、これで修正されました。
マーティン

20

Xcode 8:

LaunchScreen.xibで使用される画像は.xcassetsにあるべきではありません。バンドルにドロップしてみてください。

.xibが読み込まれるまでに、.xcassetsのイメージはまだ使用できません。

編集:いくつかのローカライズを追加した後の不透明な理由により、起動画面が機能しなくなりましたが、アセットの画像で動作し、非常に奇妙です。


2
回答に追加するには...最近、「Launch Screen.storyboard」ファイルでカスタムフォントを使用しようとしました。このSOの回答ともう少し研究/テストを読んだ後、私が明確にできなかった理由。画像についても同じです... Xcodeは、アプリの起動画面の縦向きと横向きのスナップショットを準備し、(現在)ここに保存します。/Library/Caches/Snapshots/<<app_bundle>>/カスタムフォントやアセットカタログなど、サポートファイルが読み込まれる前に完了します。
andrewbuilder 2016

3
.xcassetからロードしたときに、大きな画像(> 512px)がLaunchScreenに表示されないのに、小さな画像が表示されることに気付きました。あなたの解決策に言及してくれてありがとう!
auco

おかげで、この問題のデバッグに3時間近く費やしました。.xcasstesが原因であることが判明
セルゲイグリシオフ2017

ここでも同じですが、xibで使用されている画像ファイルを1024x1024から512px未満の解像度に変更して修正しました。
Eike

1
@JuanBoeroバンドル内?ランタイムではなく、ビルド時に使用されます。
ルドルフアダムコビッチ

17

私の解決策は、すべての起動イメージを作成することでした。 ここに画像の説明を入力してください

次に、起動画像ソースをLaunchImageアセットに設定し、起動画面ファイルを空白のままにします。

最後に、プロジェクトにLaunch Screen.xibがない場合は、そのファイルを追加してそのままにします。 ここに画像の説明を入力してください


4
多くの画像を追加します。IPAサイズを増やします。XIB Launchはそのためのソリューションです。たとえば、プレーンな背景と単に中央にロゴがある場合、XIBを使用することをお勧めします。背景色を設定し、中央にUIImageを追加するだけです。しかし、再びその選択
Jasmeet 2015

それを使用せずにLaunch Sceen.xibを追加すると、実際には私にとってはトリックでした。ありがとう!
ジャッコ2015年

Xcode 6は「画像ソースの起動」を変更することを許可しませんが、変更が許可されていないこのテキスト(「アセットカタログを使用」)を維持します-そして、それはボタンのように動作します。起動画像をアセットカタログに移行するオプションを取得します...ここからどこに進むべきかわからない 他の誰かがこれに遭遇しましたか?さまざまなサイズの既製の起動画像のフォルダー全体をLaunchImageアセットカタログにインポートしました。エラーメッセージは表示されませんが、上記の手順に従ってコンピューターを再構築、再起動した後も、起動イメージまたはアプリイメージが表示されません...
晴れ

12

私にとっては、アプリをアンインストールしてからシミュレーターを再起動したときに機能しました。再度インストールすると、起動イメージが期待どおりに表示されました。これは実際のデバイスでも機能しました。


アプリをアンインストールした後、デバイスを再起動する必要もありました。さらに、Xcodeキャッシュをクリアし、Xcodeを再起動しました。
lenooh 2018年

11

を使用している人にとってはAsset Catalog's Launch Image、これを最も難しい方法で学んだため、最初にjpgファイルを渡され、次にファイルをに変換するように依頼するというシナリオがありましたPNG

起動画像が表示されない理由について最初にインターネットを精査し、すべての解決策が役に立たなかったので、私はそれらを十分に信頼しました、そして私は古い起動画像を元に戻し、うまく機能していました正しいPNGファイルではありません。

TL; DR: 名前が変更された拡張子を持つファイルではなく、適切なPNGファイルを実際に使用していることを確認してください。


1
ファイル拡張子に大文字を使用する場合は注意してください。デバイスはファイルを適切に検索しますが、シミュレータは検索しない場合があります。
ファンボエロ16

10

Info.plistファイルから "Launch screen interface file base name"を削除し、 "Launch Screen.xib"をトラッシュするとうまくいきました。


これで私の問題は解決しました。しかし、Appleは、9つの異なる画像を生成するよりも、他の人がxibファイルを使用する方が良いことを示唆していると思います。
TypingPanda 2015

7

アプリを削除して再インストールするだけでうまくいきました:

  • シミュレーターでのテスト

    1. シミュレーターでアプリを削除します。
    2. シミュレータを終了して再起動します。
    3. Xcodeでプロジェクトを再度実行します。

  • デバイスでのテスト

    1. デバイスからアプリを削除します。
    2. Xcodeでプロジェクトを再度実行します。

2
デバイスの場合、削除して再インストールしただけではうまくいきませんでした。私の場合、電話(デバイス)の再起動が解決策でした
Kutay Demireren 2018年

6

受け入れられた回答の問題は、起動画面ファイルを設定しない場合、アプリケーションがiPhone 6や6+などのデバイスでアップスケーリングモードになることです=>ぼやけたレンダリング。

以下は、すべてのデバイスで完全に機能するソリューション(私はiOS 7.1をターゲットとし、Xcode 8を使用しています)を作成するために行ったものです(本当に、私はこのアップスケーリングの問題に夢中になりました)。

1. .xcassetsを準備する

簡単にするために、ベクターの.PDFファイルを使用しています。これは非常に便利で、各解像度(1x、2x、3x ...)に対して複数の画像を作成することを避けます。また、xcassetsをすでに作成していると仮定します。

  • 起動画面イメージ(またはベクターファイル)をプロジェクトに追加する
  • .xcassetsに移動し、新しいイメージセットを作成します。画像の属性ウィンドウで、スケール->単一スケールを選択します。
  • ベクターファイルを画像セットにドラッグアンドドロップします。

.xcassetsのイメージセットを作成する

2.起動画面ファイルを作成します

起動画面ファイルを作成する

3.起動画面ファイルに画像を追加します

  • 画像表示オブジェクトを起動画面ファイルに追加します(自動的に作成されたラベルを削除します)。このイメージビューは、以前の.xcassetsイメージセットを参照する必要があります。名前属性から参照できます。この段階で、画像ビューに起動画面の画像が正しく表示されます。
  • この画像ビューに制約を追加して、画面解像度に応じてアスペクト比を維持します。

起動画面ファイルにスプラッシュ画面の画像を追加します

4.起動画面ファイルをターゲットに追加します

最後に、ターゲットの一般プロパティで、起動画面ファイルを参照します。 ターゲットのプロパティと起動画面

アプリを起動すると、スプラッシュ画面が表示されます。iPhone6とiPhone6 +でも試してみてください。アプリケーションはアップスケールなしで正しく表示されるはずです(起動画面ファイルはこれを行うことを目的としています)。


私はこれを試しましたが、うまくいきませんでした:stackoverflow.com/questions/43168145/…何か理由はありますか?どうもありがとう。
Vaddadi Kartick 2017

私はこれを理解しました。起動画像が表示されず、デバイス(iPhone 6、7以降)またはtestFlightで起動すると白い画面が表示されます。修正:「Landing_screen.png」の名前を「Landing_screen」に変更し、.pngパーツを削除。Xcodeの画像アイコンが白いアイコンに変わり、起動画面のストーリーボードで画像が疑問符として表示されるようになりました。起動画像が表示され、白い画面は表示されません。
ブライアン

同様の問題があります。ベクターグラフィックス(pdf)を使用すると、画像がランチスクリーンに表示されませんが、メイン(ランチスクリーンの後に表示される)と同じストーリーボードを使用すると、画像を表示できます。だから、私の推測では、ベクトルグラフィックスは昼食用の画面としては好まれません。
2017年

私はシミュレータを再起動することでこれをうまく機能させることができました。以前はアプリを削除してプロジェクトをクリーンアップしましたが、スプラッシュ画像がまだ表示されませんでした。
2017年

5

これに数時間イライラした後、私はこの方法を使用することにしました。iPhoneとiPadの両方で動作します(Xcode 6.1)

  1. ファイル>>新しいファイル>>ユーザーインターフェイス>>起動画面
  2. 新しいキー/値を作成:YourApp-Info.plistに「Launch screen interface file base name」/「Your Launch Screen Name」

1枚の写真は千語以上の価値があります。以下を見てください:

ファイル>>新規ファイル>>ユーザーインターフェイス>>起動画面

YourApp-Info.plistに新しいキー/値「Launch screen interface file base name」/「Your Launch Screen Name」を作成します


4

Xcode 6で横向きのみのアプリが起動画像を表示できないというバグについて読みました。

Images.xcassets内で画像と向きを設定してみます。

Images.xcassetsのXcodeスクリーンショット


1
スクリーンショットで正確に何を伝えようとしているのですか?
NikkyD 2014年

2
属性インスペクタで方向を確認します。
carlodurso 2014年

2

アセットファイルに保存されているXcode 6起動画像により、iOS7 / iOS8のiPhoneランドスケープのみのアプリで黒い起動画像が表示されるバグがあります。iPadは正常に動作します。

http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=10868

解決策:ios8 +以降の新しいLaunchscreen.xibを使用します。(はるかに良いです)

iOS7デバイスを機能させるには、起動画像のソースをオフにして、plistで古い学校の起動画像のファイル名を使用します

iphone5 - Default-568h@2x.png 
iphone4s - Default@2x.png
ipad2 - Default-Landscape~ipad.png
ipad retina - Default-Landscape@2x~ipad.png

痛みを伴うが動作します。B
ここに画像の説明を入力してください


2

私はすべてを試しましたが、解決策は非常に簡単でした。LaunchScreen.storyboardで.pngの代わりに.jpgファイルを使用するだけです。iOSが起動画面で.pngファイルまたは比較的大きな画像サイズをレンダリングしないようです。


Xcodeでストーリーボードを作成すると完全に正常に表示される起動画面にpngがありましたが、実際に実際のデバイスでアプリを実行しようとすると、黒く表示されます。しばらく髪の毛を抜いた後、jpgに置き換えたところ、問題なく動作しました。ありがとう!
ティリテア2018

2

Spectravideo328が答えたことを行い、

アセットカタログでiOS 7以降のボックスをオフにし、iOS 6以前のボックスをオンにしてみてください。iOS 7の起動画像にバグがあるようです。(これらは320x480以外は同じ起動画像を持っています)

これがお役に立てば幸いです。


1

アセットカタログに「LaunchImage」を設定し、「Launch Screen」フィールドを空にしただけです。起動画像を出してもらい......


そのオプションを使用すると、アプリでレガシースケールを取得できます。
George Maisuradze 2014

@GeorgeMaysどのようにしてレガシースケールを取得せずに起動画像を使用できますか?
Crashalot、

1

一つの方法はまた、追加することです「起動画面」LaunchScreen.xib、)に画像を貼り付けUIImageViewた後、「に設定するコンテナで水平方向の中心」と「コンテナでの垂直方向の中央に」「合わせ」あなたは自動レイアウトを使用している場合。

画面:http : //i.stack.imgur.com/CfnHT.png

LaunchScreen.xib「起動画面ファイル」に入れることを忘れないでください。


1

Xcode 6.1の使用を開始し、ランチャーイメージを変更した後も、同じ問題が発生しました。すべての画像をアセットカタログに入れました。予想される静止画像ではなく、黒い画面しか表示されません。多くのことを試みた後、私は問題がアセットカタログのFileInspectorビューでプロジェクトの「ターゲットメンバーシップ」がチェックされていることに気づきました。ONにチェックマークを付けると魔法がかかり、アプリの起動時に画像が表示されるようになりました。


1
  • アップルのガイドラインに従って、画像のサイズが正確であることを確認してください。
  • 必ず、起動画面ファイルまたは起動画像ソースのいずれか1つのオプションのみを選択してください。これらの2つのオプションは、プロジェクトのビルド設定->一般にあります。

あなたへの私の提案は、Launch Image SourceをImage.Assetsとして選択することです。Image.assestsフォルダーにスプラッシュ画像アセットを作成します。

正しい構成の参照画像: ここに画像の説明を入力してください


0

新しいプロジェクトを開いて、起動画面の設定と同じ手順を試しました。

デフォルトでは、.xibは「Launch Screen File」として設定されており、ラベルが付いた白い画面がシミュレータで0.5秒間表示されました。

次に、「画像ソースを起動」して、プロジェクトに追加した背景画像で生成されたImages.xcassetsに設定します。(これまでのところすべて良い)

シミュレータを再実行すると、起動画像が表示されません...

指定された「起動画面ファイル」とクリーンを削除した後:製品->クリーン、トップメニューから、最終的に起動画像が表示されます。

多分それは役立つでしょうか?


テレンス-シミュレーターをもう一度実行してみましたか?私が尋ねる理由は、このテクニックが私が最初に実行したときに機能するためです。しかし、シミュレータを再実行すると、元の状態に戻ります。
Eddie Hartman

私がコメントしたとき、私は二度目に挑戦しませんでした。今、私は同じ問題を見ます。
Terrence Giggy 2014年

0

「LaunchScreen.xib」というファイルがプロジェクトに自動的に追加されます。これを削除すると、xCodeがImages.xcassetsのデフォルトイメージを使用するようにシフトされます

アプリアイコンと起動画像に移動を追加するために編集された起動画面ファイルは空白/空である必要があります


0

非常に奇妙なバグがありました。どうやら私の起動イメージソースはデバッグ構成用にのみ設定され、リリース用ではありません。これにより、デバッグ構成の実行時に起動画面が表示されましたが、リリースに変更すると黒い画面が表示されました。

ビルド構成を変更して[Launch Image Source]ボタンがリリースされたときにこれを修正し、[Use Asset Catalog]を再度選択する必要がありました。

好奇心が強い人にとって、これは私のproject.pbxprojがどのように見えるかです。

...
...
...
XXXXXXXXXXXXXXXXXXXXXXXX /* Release */ = {
            isa = XCBuildConfiguration;
            buildSettings = {
                ALWAYS_SEARCH_USER_PATHS = NO;
                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
                ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; <---THIS LINE WAS MISSING
...
...
...

0

何らかの理由で、これを機能させるには、アセットカタログの場所を「プロジェクトに対して」に変更する必要がありました。

私も携帯電話からアプリを削除して再インストールしましたが、それを行ったのはおそらく「プロジェクトに関連する」ものでした。


0

*(Xcode 7.2 /デプロイメントターゲット7.0 /横向きのみ)*

私は古い質問であることを知っていますが、Xcode 7.2ではまだメッセージが表示され、これで修正しました。

1)PORTRAITと両方のランドスケープを選択します。「画像ソースの起動」と「画面ファイルの起動」を追加

ここに画像の説明を入力してください

2)起動イメージで、iPhone "8.0以降"および "7.0以降"を選択します。

ここに画像の説明を入力してください

3)appDelegateにこのコードを追加します。

#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000
- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}
#else
- (UIInterfaceOrientationMask)application:(UIApplication *)application     supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    return (UIInterfaceOrientationMaskLandscape);
}
#endif

4)これをViewControllerに追加します

#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000
- (NSUInteger)supportedInterfaceOrientations
#else
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
#endif
{
     return UIInterfaceOrientationMaskLandscape;
}

他の誰かの助けを願っています。


私は同様のことを試みましたが、うまくいきませんでした:stackoverflow.com/questions/43168145/…なぜだと思いますか?どうもありがとう。
Vaddadi Kartick 2017

1
これは、Xcode開発で最も厄介な小さなFUの1つになるはずです。設定するものは(明らかに)非常に少ないのですが、私がこの1つの小さな獣を作成するすべてのプロジェクトは、時間がかかりすぎます。私がそれを解決するたびに、それはランダムに見えます、そしてそれがうまくいったら、私は誤ってそのファイル/プロセスに誤って再度触れないようにします。新しいプロジェクトです。起動画面の真ん中に単純なグラフィックが表示されない理由を理解する必要があります。ストーリーボードは表示されません。すべての設定は要件ごとですが、おそらくムーンフェイズは間違っていますか?
..描いた

0

これは私のために働いています。LaunchScreen.storyboardをクリックし、右側のパネルで「Is Initial View Controller」チェックボックスを選択できます。

LaunchScreen.storyboard-> Is Initial View Controller


0

私はこれを理解しました。起動画像が表示されず、デバイス(iPhone 6、7以降)またはtestFlightで起動すると白い画面が表示されます。修正:「Landing_screen.png」の名前を「Landing_screen」に変更し、.pngパーツを削除。Xcodeの画像アイコンが白いアイコンに変わり、起動画面のストーリーボードで画像が疑問符として表示されるようになりました。起動画像が表示され、白い画面は表示されません。私の設定:Xcode 8.3.1でSwift 3.1を使用しています。LaunchScreen.storyboardに、単純な画像ビューを追加し、ビューコントローラーに合わせて画像を拡大しました。自動レイアウト制約の上部/下部/先頭/末尾スペースをスーパービューに0に設定します。


0

起動イメージを前のイメージから変更した場合は、以下を確認してください。

  • アプリが以前にインストールされていたデバイス/シミュレーターは以前のイメージを表示し、新しいイメージの表示を拒否します(アプリのアンインストールと再インストールは役に立ちません)
  • アプリが以前にインストールされていなかったデバイス/シミュレーター、新しい起動イメージを表示します

iOSによって実行された起動イメージのキャッシュが原因である可能性があります。デバイスを再起動すると、問題が解決するはずです。


0

このバグは、横向き専用アプリでも発生しました。以下のカルロドゥルソの解決策は機能します:

  1. 「横」ボックスにチェックを入れます
  2. 画像をその場所にドラッグアンドドロップします。

-2

私にとっては、それを削除LaunchScreen.xibしてストーリーボードファイルに変更すると機能しますLaunchScreen.storyboard

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.