Tumbletail のクラッシュを収集するために Crashlytics を入れました。
apps.apple.comそうしたら、
- ブログ詳細画面が正常に表示されない
というバグ報告をいくつか頂きました。
いろいろ調べた結果、 NSStringFromClass()
で取得しているクラス名が変わっている場合があることがわかりました。
HogeClass
が fir_{UUIDぽい文字列}_ HogeClass
になる場合があります。全てのクラスではないのがまたわかりにくい…。
fir_
と prefix が付いているので、 Firebase かな?と思い Firebase を外してみたところ直ります。
まぁ Crashlytics は使いたいので、変更されていても元々のクラス名を取得できるようなユーティリティを書いて修正しました。
Firebase のソースを見ると、何か怪しいことをしていました。
- (instancetype)initWithObject:(id)object { self = [super init]; if (self) { __strong id swizzledObject = object; if (swizzledObject) { _swizzledObject = swizzledObject; _originalClass = object_getClass(object); NSString *newClassName = [NSString stringWithFormat:@"fir_%@_%@", [[NSUUID UUID] UUIDString], NSStringFromClass(_originalClass)]; _generatedClass = objc_allocateClassPair(_originalClass, newClassName.UTF8String, 0); NSAssert(_generatedClass, @"Wasn't able to allocate the class pair."); } else { return nil; } } return self; }