黒毛和牛モモバラ切り落し100g298円

iPhoneアプリを作ってます。リリースノートとか用ブログです。

iPhone XS 等を含む iPhoneX 系列か否かの判定

ラノベルで iPhoneX か否かで処理の分岐が結構あるのですが、iPhone XS 等の発売に合わせてメンテするのを忘れてまして、バグってたので以下のように修正しました。

// UIDevice+Model.h

#import <UIKit/UIKit.h>

@interface UIDevice (Model)

- (BOOL)isIPhoneX;

@end

以下で dispatch_once してるのは気分です。

// UIDevice+Model.m

#import "UIDevice+Model.h"
#import <sys/utsname.h>

static NSString *
modelID()
{
    // Pods に https://github.com/erichoracek/UIDevice-Hardware とかがあるんだけど、
    // シミュレータ対応してなかったので自前で
#if TARGET_IPHONE_SIMULATOR
    NSString *model = NSProcessInfo.processInfo.environment[@"SIMULATOR_MODEL_IDENTIFIER"];
#else
    struct utsname systemInfo;
    uname(&systemInfo);
    NSString *model = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
#endif
    return model;
}

@implementation UIDevice (Model)

- (BOOL)isIPhoneX
{
    static BOOL _isIPhoneX = NO;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        NSString *model = modelID();
        if (![model hasPrefix:@"iPhone"]) {
            _isIPhoneX = NO;
            return;
        }
        NSString *s = [model substringFromIndex:6];
        NSInteger version = [s integerValue];
        if (version == 10) {
            // iPhone8 が iPhone10,4
            _isIPhoneX = [model isEqualToString:@"iPhone10,3"] || [model isEqualToString:@"iPhone10,6"];
        } else if (version > 10) {
            _isIPhoneX = YES;
        } else {
            _isIPhoneX = NO;
        }
    });
    return _isIPhoneX;
}

@end

ラノベル-1.2.3 をリリースしました

iPhone X 対応版をリリースしました。
iPhone X を買ってないのでシミュレータでしか動作確認できていません。問題がありましたらご連絡頂ければと思います。

またTXTファイル一括ダウンロード時に、未取得の挿絵があれば再ダウンロードする修正もしています。
iTunes からバックアップする際に画像をバックアップ対象から外す修正を以前したのですが(挿絵が大量にあるとバックアップサイズが大きすぎて保存できないというご連絡を受けたため)、その影響でリストアした際にTXTファイルがダウンロード済みの話の挿絵が復元されず、画像を再取得するには一旦小説を削除しないといけない問題があり、その対応として未取得の画像のみ一括ダウンロード時に再取得するようにしています。
普通に小説を表示する際は再取得したと思いますのでそちらは手を入れてませんが…記憶に自信が無いので後で確認して問題があれば再修正します。

他の修正箇所については AppStore のリリースノートをご覧ください。

ラノベル-1.2.0 をリリースしました

なろうHTTPS化に伴いラノベルの小説ダウンロードができなくなっていた問題の対応版をリリースしました。
リリース後、SSLエラーが出る、一括ダウンロードで更新されない、画像が含まれる小説をダウンロードすると1001ページまで空ページが表示されるという問題をご報告頂いております。
SSLエラーと一括ダウンロードについては、日中発生していたようですが夜になって再現しなくなっている模様ですので、よろしければ一度再実行してみてください。
画像で1001ページまで小説される場合は、小説詳細画面(小説画面からダブルタップで開きます)の個別リロード(話の部分を右にスライド)で強制的に再読み込みできこちらで直ると思いますのでお試しください。

Twitter、ブログ等でトラブルのご連絡を多数頂きありがとうございました。結構大量にご連絡を頂いたため、個別に返信できず申し訳ありません。また問題がありましたらご連絡頂ければと思います。

ラノベル-1.1.23 をリリースしました

小説更新時にダウンロード済みの話が消えるバグの対応を行いました。
ここ一週間ほどご迷惑をおかけしておりましたが直ってると思います…前バージョンも直ってると思ってリリースしましたので、また何か見落としが無ければ良いなーという感じなのですが。

ラノベルの一括ダウンロードに関する不具合の続報

今朝ほどブログに書いた通り、既存のバグで一括ダウンロードが完了しない場合があるようです。 現在まで分かっている経緯は以下の通りです。

  • 2/8: 小説詳細画面の日付がおかしいと連絡を受ける(バージョン 1.1.20)
  • 2/9: 上記問題の修正版をリリース(バージョン 1.1.21)
  • 2/10: 一括ダウンロードができないと連絡を受け現象を確認

バージョン 1.1.20 以下については、2/8 以降小説詳細画面の日付がおかしくなる問題をかかえており、小説の表示等に問題があります。

一括ダウンロードに関する問題を修正したバージョンは現在 AppStore の審査待ちです。 問題が無ければ今日(2/11)か明日には公開されると思います。一括ダウンロードはバージョンアップしてからして頂いた方が無難です。

小説一覧の更新タブで 2/8 以降に更新されているものについては日付がおかしくなっており、その影響でダウンロード済み小説が消えています。最終ダウンロード日時が古い小説については影響はありません。 (未ダウンロードの話をダウンロードする仕様になっており、次に小説を開いた際に読み込むため、話単位で小説の更新を検出するとダウンロード済みの話を消す挙動になっています。) 申し訳ありませんが、必要な小説についてはバージョンアップ後に再度一括ダウンロードしてください。