【Xcode】【iOS】ステータスバー(Status Bar)のカスタマイズ

ステータスバーの一括変更

・Info.plist(通常はSupporting Filesの中に入っています。ファイル名は「xxx-Info.plist」)に
「View controller-based status bar」という項目があります(ない場合には追加する必要があります)。
「View controller-based status bar」をNOに設定します。
・適切なところに(例えば、AppDelegate.mのapplication:didFinishLaunchingWithOptions ← はじめて起動時呼び出される処理)、
下記処理を書きます↓↓

//  UIStatusBarStyleDefault:デフォルト
//  UIStatusBarStyleLightContent:フォント白
//  UIStatusBarStyleBlackOpaque:黒
//  UIStatusBarStyleBlackTranslucent:透明
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

ViewController単位でのステータスバー変更

・Info.plistで「View controller-based status bar」をYESに設定します。
・対象ViewControllerに、下記のような処理を書きます↓↓

- (void)viewDidLoad {
    [super viewDidLoad];
    
    if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
        // ViewControllerでステータスバーの更新を宣言
        [self setNeedsStatusBarAppearanceUpdate];
    }
}

- (BOOL)prefersStatusBarHidden {
//  YES:ステータスバー非表示
//  NO:ステータスバー表示
    return NO;
}

- (UIStatusBarStyle)preferredStatusBarStyle {
//  UIStatusBarStyleDefault:デフォルト
//  UIStatusBarStyleLightContent:フォント白
//  UIStatusBarStyleBlackOpaque:黒
//  UIStatusBarStyleBlackTranslucent:透明
    return UIStatusBarStyleLightContent;
}

【Xcode】【AdMob】エラー「unrecognized selector sent to instance XXXXXX」について

Xcode 5.0.2で、AdMobのiOS版SDK(Version:6.7.0)を入れて実装しようとしているとき、

[[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner];
または
[[GADBannerView alloc] initWithFrame:CGRectMake(......)];

↑↑といったような処理でエラーになって落ちました。
大体のエラー内容:

unrecognized selector sent to instance XXXXXX
(詳細は省略)

サンプルコードとほぼ同じ実装ですがなぜかうまくいきませんでした。
色々悩んで調べた結果、
問題はソースではなく設定にありました:

TARGETSの
Build Setting → Linking → Other Linker Flags
↑↑の値が空白でした。
サンプルの設定にしたがって「-ObjC」にしたら一瞬で解決しました。
(下記画像を参照してください)

→ 結論、Other Linker Flagsに「-ObjC」か「-all_load」を設定することが必須のようです。

※参考サイト:
iPadな日記 : AdMob 6.1.4 実行時エラー

※Other Linker Flagの設定について
A-Liaison BLOG: -ObjC とか -all_load って何をやってるのか調べてみた
Technical Q&A QA1490: Building Objective-C static libraries with categories

【Xcode】【iPhone】【iOS】Icon specified in the Info.plist not found under the top level app wrapper: — Xcode4.3でアプリをアップロードする際に起きたエラー

Xcode4.3でビルドしたアプリをアップロード(オーガナイザー → Archive → Validate…)したら、下記のエラーで怒られました。

Icon specified in the Info.plist not found under the top level app wrapper:

↓↓下記の対策で解決しました↓↓
PROJECT(もしくはTARGET)の「Info」タブの中「Icon files」に、Item 0、Item 1、Item 2・・・のようにいくつかのアイコンがセットされていますが、空白であったものがありました。これを削除すれば問題解決です。
再度アップロードして無事に成功しました。