iOS 앱 개발을 위한 인앱 디버거 제작

4631 단어 iOS디버깅Swift

만든 것



CocoaPods



@noppefoxwolf 의 코드를 상당히 참고로 만들었습니다.

용도



iOS 앱을 만들고 있고, 현재의 UserDefaults 상태를 보거나, 접속처의 서버 바꾸거나, DB내의 데이터를 보거나 하고 싶은 일이 있다고 생각합니다.
그런 때 사용하기 쉬운 디버거 만들었습니다.
디버거라고 해도, 요컨대 언제라도 누를 수 있어 어디에서나 움직일 수 있는, 디버거를 여는 버튼을 간단하게 만드는 녀석입니다.
그리고 그 안에 표시하는 것을 플러그인으로 만들 수 있도록 했습니다.

사용법



Example과 Recommended Plugins를 보는 것이 빠르다고 생각합니다.

초기화



AppDelegate에서 싱글 톤에 대한 초기화 메서드를 호출하면됩니다.
인수에 사용하고 싶은 디버거의 클래스를 건네줍니다.

덧붙여서 다른 인수에서는, 초기화 위치의 지정, 메뉴의 정렬의 유무, 디버거의 바닥글에 내는 view의 지정을 할 수 있습니다.

AppDelegate.swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
  DebugHead.sharedInstance.prepare(menuClasses: [DebugMenuExit.self, DebugMenuHideDebugHead.self, DebugMenuFooViewController.self])
    return true
}

플러그인을 만드는 방법



프로토콜에 준거한 클래스를 만들어 초기화 메소드에 건네줄 뿐입니다.

DebugMenu
public class DebugMenuFoo: DebugMenu {
  // tableViewで表示される名前。
  public static let debugMenuTitle = "Title"
  // そのメニューの危険性。メニューの表示色がかわる。sortがtrueだと危険性順にソートされる。
  public static let debugMenuDangerLevel = DebugMenuDangerLevel.[None or Low or High or Extreme] 
  // メニューのところのアクセサリー。
  public static let debugMenuAccessoryType = UITableViewCellAccessoryType.None
  // メニューが選択された時の動作。UIViewControllerのインスタンスを返すと、それが表示される。
  public static func debugMenuSelected(debugHead: UIView, debugMenuTableViewController: UITableViewController) -> UIViewController? {
    // Do something
    return nil
  }
}

이상!
꼭 플러그인 만들어 공개해 주세요! (CoreData 브라우저라든지 Realm 브라우저라든지… 원한다)

좋은 웹페이지 즐겨찾기