AviaryがAdobeに買収されて、Aviary SDKがAdobe Creative SDKに統合されました。
で、そのmigrationを行ったところ、実機でアプリが落ちるようになってしまいました。新規インストールでも落ちないためちょっと厄介です。
どうやら、AVYContentManager内で、AFPermissionContainerをデシリアライズしようとして落ちる模様です。おそらく古いSDKでこのオブジェクトを保存しちゃうとダメなんでしょう。
年末にAdobeにreport済みですが、特に反応なし。現在回避策を検討中。
クラッシュを発生させるNSKeyedUnarchiverの入力をダンプして、再現コード生成に成功。Adobeに報告済み。
あとは彼らが修正してくれるのを祈るか。。。
使用しているSDK
CreativeSDK-iOS-v0.7.2072
クラッシュ確認した端末
iPhone5s iOS8.1.1
回避案1 NSKeyedUnarchiverで対応
スタックトレースからNSKeyedUnarchiverの、unarchiveObjectWithData呼び出しのなかで、AFPermissionContainerがデコードできずに落ちていることは間違いないようです。
method swizzlingによりunarchiveObjectWithDataをnil返す実装に入れ替えることで、とりあえず落ちない状態に持っていくことはできました。もちろん、AVYContentManager初期化後にすぐに実装は元に戻しています。
追記
CreativeSDK-iOS-v0.8.2074.zipでも修正されていない模様。
100%クラッシュを再現するコード付きでレポート済みなのですが、優先度あげてもらえてないのかなぁ。