UILabel に背景色をつけたら上と右に影ができることがある

UILabel に背景色をつけた状態で、表示サイズを計算して幅と高さを指定すると、Label 上側と右側に影のような線が出る場合があることを発見しました。

設定する文字列によっては影のような線は出ないこともあります。

デザイン的には良くなく、この影(線)を出さないようにしたいので、原因を探っていたところ、どうやら幅と高さの数値に問題があるようでした。

幅や高さの数値が整数でない場合(小数点以下がある場合)に発生してしまうようでした。

おそらく、内部の処理で小数点以下がある場合はアンチエリアスみたいな形で処理をしてしまっているのではないかと思います。

Width と Height の数値を ceil 関数で 小数点以下をなくしたら消えてくれました。

ビルドをアップロードしようとしたらエラー

アプリのアップデートをAppStoreに申請しようと思い、XCode からビルドをアップロードしてみたら、以下のエラーが発生しました。

Unable to process lookupPurpleSoftwareVersions request at this time due to a general error.

 

2,3日前まではできていたので、Apple のサーバ側で何かトラブルかなと思い、数時間たってから再度挑戦してみたのですが、エラーが継続したままでアップロードできません。

それなら Application Loader を使ってやってみようと思い、試してみたのですが、ApplicationLoaderでも同じエラーでアップロードできません。

もしや、ツールのバージョン?

と思いバージョンを調べてみると、XCode は 5.1.1 ApplicationLoader は 2.7 でちょっと古いものでした。

XCode のバージョンを上げるといろいろとめんどくさそうなので、それは後にして、ApplicationLoaderを3.0に更新してみました。

アップロード完了!

できました。

バージョンが古かったのが原因でしょうか。

iTunes Connectの画面には XCode 5.1.1 以降でって書いてあるので5.1.1でも大丈夫だと思っていたのですが、、、

iTunes Conenct で「App アイコンを作成できませんでした」というエラーになる

iOS アプリのバージョンアップ申請をしようとしたら、iTunes Connect で

アイコン画像をアップしてください

というエラーになった。

前回のバージョンでもアップしているのに引き継がれないのかなと不思議に思いながら画像ファイルをアップロードして保存。

すると

App アイコンを作成できませんでした。

というエラーメッセージが発生。

サイズが大きすぎるのかと思い 512×512 のものを作成してアップしたら

App アイコンのサイズは 1024×1024 にする必要があります。

というエラー。

PNGファイルがいけないのかと思い、jpg ファイルにしてアップ

App アイコンを作成できませんでした。

RGB の設定とか、画像加工ソフトとか、いろいろ変えてみましたがエラーは変わりません。

もう打つ手がありません。。。

これは、時間が経つと直るパターンか、と思い1時間ぐらい何もせずに待ちました。

一時間後に再度同じファイルで挑戦

OK!

できました。

iTunes Connect はたまに原因不明のエラーが出ることがあります。

そして時間がたつと自然に直ることがあります。

わけのわからないエラーが出た場合は、しばらく待ってから試してみましょう。

 

iOS 8 で viewDidAppear が呼ばれなくなった

iOS アプリの開発をしていて、不思議な現象が発生しました。

iOS 7 以前のバージョンでは viewDidAppear が呼ばれるのに、同じコードで iOS 8 だと呼ばれないのです。

かなりハマりましたが、原因はコードの記述ミスでした。

スーパークラスで以下のような記述をしてしまっていました。

- (void)viewWillAppear:(BOOL)animated
{
    [super viewDidAppear:animated] ;
    // :
    // :
    // :
}

そう、viewWillAppear の中で super の viewDidAppear を呼んでしまっていました。

iOS 7 以前ではこんなことをしてもタマタマうまく動いていたと思われます。

iOS 8 になって、内部の処理がすこし変わって顕在化したものと思われます。

こんなミスはレアケースかと思いますが、一応共有ということで記載しました。