アプリ作ったのに
タイトル通り、リリースビルドで落ちました。
全swiftでTodoアプリを作ったんですが、なんと2件目のタスクを入れると落ちるという非常に仕事をさせてくれないタイプのアプリとなってしましました。
苦労してリジェクトの波を乗り越え初のswiftアプリリリースとなろうものが、まさかのリリースビルドだけで落ちる状態に・・・
いったいなにが原因なのか?
##とりあえずどこが原因か?
挙動的に以下のメソッドで落ちる・・・
@IBAction func finish()
{
// task for me
let task: Task = self.editTask
task.content = self.contentTextView.text
task.date = NSDate()
if !(task.venueName != nil) {
task.venueName = "" }
if (task.lat == nil){
task.lat = 0}
if (task.lng == nil){
task.lng = 0}
task.check = 0
task.notif_flag = false
task.distFromNow = 100000
task.t_id = NSString(format: "%f", NSDate().timeIntervalSince1970)
task.managedObjectContext?.MR_saveWithOptions(MRSaveContextOptions(1),
completion:
{(success:Bool, error:NSError!) -> Void in
self.dismissViewControllerAnimated(true, completion: nil)
})
GAI.sharedInstance().defaultTracker.send(GAIDictionaryBuilder.createEventWithCategory("AddTask", action: "tap", label: "finish", value: 0).build())
}
やっていることはMagicalRecordでcoredataに情報を追加しているってだけ。
え?コードが汚い?それは言っちゃダメだ///
試しにTestFlight経由でアプリを突っ込んでみた・・・▷落ちる。
暫定的な対策
リリースビルドといえばOptimazation Levelが違うとか・・・
具体的に何が違うのかまで知らない。
でも外人もstack overflowで「Optimizationじゃね?」って言ってるし。
以下のように変更して再度TestFlight経由で送る。
すると・・・▷落ちない!!
つまり結論として
swiftのリリースビルドで落ちるのは、swiftのComplilerがリリースビルドではなんや悪さしている。
ということで。
今回のコードの中ではMagicalRecordを使っていて、Bridge経由でこれを使っている。
問題が特定しにくい、とりあえずCrashlyticsを仕込んでみた。
原因は調査中です、今回はここまで。
TestFlightで新しいビルドが出ない!
なかなか待っても新しいビルドがテストフライトに表示されない・・・
そんな時は