2016-10-05 14 views
0

AdHocデプロイ時にクラッシュするアプリケーションが1つありますが、Xcodeを通じてインストールされた場合は正常に動作します。私は自分のデバイス(iOSの10)からクラッシュログをsymbolicatedきたし、それらはすべて同じです。AdHoc中にアプリケーションがクラッシュするが、デバッグ中ではない

Thread 0 name: Dispatch queue: com.apple.main-thread 
Thread 0 Crashed: 
0 UIKit       0x0000000196507a4c __66-[UISectionRowData refreshWithSection:tableView:tableViewRowData:]_block_invoke + 424 
1 UIKit       0x00000001965079f0 __66-[UISectionRowData refreshWithSection:tableView:tableViewRowData:]_block_invoke + 332 
2 UIKit       0x00000001964c7368 -[UISectionRowData refreshWithSection:tableView:tableViewRowData:] + 2712 
3 UIKit       0x00000001964c67e4 -[UITableViewRowData rectForFooterInSection:heightCanBeGuessed:] + 536 
4 UIKit       0x00000001964c6570 -[UITableViewRowData heightForTable] + 60 

だから私の考えは、[OK]を、多分私は私のセクション数を見つけることだどのように問題がある、です。ここに私のクラスのコードはありますが、それはかなり簡単です。

class HeaderTableViewController: UITableViewController { 
 

 
    var nonDefaultTitle : String? 
 
    
 
    var data: [String: [String]] = [:] 
 
    
 
    var headers : [String]  = [] 
 
    var bodys : [[String]]  = [] 
 
    
 
    
 
    init(displayData: [String: [String]]) { 
 
     super.init(style: .Plain) 
 
     data = displayData 
 
    } 
 
    
 
    required init?(coder aDecoder: NSCoder) { 
 
     fatalError("init(coder:) has not been implemented") 
 
    } 
 
    
 
    private override init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!) { 
 
     super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) 
 
    } 
 
    
 
    override func viewDidLoad() { 
 
     super.viewDidLoad() 
 
     
 
     for key in data.keys { 
 
      headers.append(key) 
 
     } 
 
     
 
     for arr in data.values { 
 
      bodys.append(arr) 
 
     } 
 
    
 
     tableView.registerNib(UINib(nibName: "DefaultCustomCell", bundle: nil), forCellReuseIdentifier: "DefaultCustomCell") 
 
     tableView.estimatedRowHeight = 50 
 
     tableView.rowHeight = UITableViewAutomaticDimension 
 
     
 
     tableView.sectionHeaderHeight = UITableViewAutomaticDimension; 
 
     tableView.estimatedSectionHeaderHeight = 100; 
 
     
 
     let nib = UINib(nibName: "HeaderTableHeaderView", bundle: nil) 
 
     tableView.registerNib(nib, forHeaderFooterViewReuseIdentifier: "HeaderTableHeaderView") 
 
     
 
     if let ttle = nonDefaultTitle { 
 
      self.title = ttle 
 
     } 
 
     else { 
 
      self.title = "Talking Tips" 
 
     } 
 
    } 
 
} 
 

 
// 
 
// MARK: Helpers 
 
// 
 
extension HeaderTableViewController { 
 
    override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
 
     return headers.count 
 
    } 
 
    
 
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
 
     return bodys[section].count 
 
    } 
 
    
 
    override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
 
     let cell = self.tableView.dequeueReusableHeaderFooterViewWithIdentifier("HeaderTableHeaderView") 
 
     let header = cell as? HeaderTableHeaderView 
 
     header!.titleLabel.text = headers[section] 
 

 
     return cell 
 
    } 
 
    
 
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
 
     let cell = tableView.dequeueReusableCellWithIdentifier("DefaultCustomCell", forIndexPath: indexPath) as! DefaultCustomCell 
 
     
 
     cell.titleLabel.text = bodys[indexPath.section][indexPath.row] 
 
     cell.selectionStyle = .None 
 
     return cell 
 
    } 
 
    
 
    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { } 
 
} 
 

 
// 
 
// MARK: The table headers 
 
// 
 
class HeaderTableHeaderView: UITableViewHeaderFooterView { 
 
    @IBOutlet weak var titleLabel: UILabel! 
 
}

私はそれがreallllyまっすぐ進むのです意味します。繰り返しますが、xcodeからインストールするとアプリはうまく動作します。私がインストールしても、アプリを殺してから、もう一度開くと、すべてうまく動作します。

私はAdHoc(Diawiを使用して)をインストールしようとするたびに、このクラスでは愚かなことがクラッシュします。

+1

奇妙なこと:

とにかく、あなたはviewDidLoad()に設定する必要はありません、あなたがする必要があるすべては、これを持っているrectForFooterInSection、まだあなたはフッターを使って何をやっていません。おそらく、sectionFooterHeightを0に設定しようとしますか? – svarrall

答えて

0

私の問題はこれで終わった。

tableView.sectionHeaderHeight = UITableViewAutomaticDimension; 

viewDidLoad()では、xcodeからインストールしたときにクラッシュすることはありません。 OTAをインストールするとそれが行われます。通常、私は "リリース"のビルド設定を複製するので、多分何かが違うと思った。私は "デバッグ"を複製する新しい設定を作成し、同じクラッシュが発生しました。これがアップル側のバグかどうかわかりません。これがある

override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
    return UITableViewAutomaticDimension 
} 
関連する問題