Xcode5でのデバッグ / CI | iOS 7エンジニア勉強会

30,641 views
30,620 views

Published on

0 Comments
21 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
30,641
On SlideShare
0
From Embeds
0
Number of Embeds
22,661
Actions
Shares
0
Downloads
55
Comments
0
Likes
21
Embeds 0
No embeds

No notes for slide

Xcode5でのデバッグ / CI | iOS 7エンジニア勉強会

  1. 1. XCode5での デバッグ / CI メディアサービスカンパニー 田村孝文 13年10月8日火曜日
  2. 2. 今日のメニュー •XCode5新機能をピックアップして紹介 •XCode5でのUnitTestとCI(Bots)の紹介 13年10月8日火曜日
  3. 3. XCode5新機能 ピックアップ •AppleID連携 •画像管理 •ソースコード管理 •デバッグで使える機能 •小ネタ 13年10月8日火曜日
  4. 4. AppleID連携(1):Automatic Configuration • AppleIDに対応した設定(証明書やプロファイル)を自動で XCode5に取り込む機能 • AppleIDの設定は、 Preferrence → Accounts 13年10月8日火曜日
  5. 5. AppleID連携(2):Provisioning Profile • AppleIDの設定画面から Provisioning Profileの取り込み • AppleIDの View Details.. 13年10月8日火曜日
  6. 6. AppleID連携(3):Provisioning Profile • 取り込んだProvisioning Profileは、各プロジェクトの 中のBuildSettingsで指定 • Code Signing Identity の下に項目が追加されている 13年10月8日火曜日
  7. 7. AppleID連携(4):Capabilities • Capabilities: Apple提供の各種サービスの設定を行う • 各種設定のON/OFFをスイッチでコントロール • アカウントの設定、Frameworkの追加が自動化 13年10月8日火曜日
  8. 8. 画像管理(1):Asset Catalog • いろいろなサイズの画像パーツやアイコンをセットで管理 • XCode4までの方法(∼@2x)と共存可能 13年10月8日火曜日
  9. 9. 画像管理(2):Asset Catalog • すでにある画像からAssetCatalogを作れる • New File → iOS Resource → Asset Cagalog • AssetCatalogを選んで→ Edit → Import from project 13年10月8日火曜日
  10. 10. ソースコード管理(1):Source Control • 上部メニューに Source Control が追加 • Gitの一通りの操作が可能 • Pull Push Commit Branch ... • SVNに対応 13年10月8日火曜日
  11. 11. ソースコード管理(2):Source Control • コミット時に、 Push to Remote が可能 • 地味だけど便利機能 13年10月8日火曜日
  12. 12. ソースコード管理(3):Blame • Blame ソースコードに対応したコミットを見る • カーソル→ Editor → Show Blame for Line 13年10月8日火曜日
  13. 13. ソースコード管理(4):Blame • AssistantEditorの横の Comparison を長押し →Blame表示 • Blame ソースコー ドの部分に対応した コミットを表示 • 誰が何時のコミット で修正したのかが分 かる • 長押しの後 Log で コミットログ 13年10月8日火曜日
  14. 14. デバッグ(1):デバッグゲージ • デバッグ開始で、CPUのいろいろな情報が見えます。 13年10月8日火曜日
  15. 15. デバッグ(2):デバッグゲージ • デバッグ開始で、メモリのいろいろな情報が見えます。 13年10月8日火曜日
  16. 16. デバッグ(3):DataTips • 色々なオブジェクトの内容を見るための DataTips • 変数をマウスオーバー→吹き出しの中の 目 アイコン をクリック 13年10月8日火曜日
  17. 17. デバッグ(4):DataTips •オブジェクトの種類で見え方が違う 13年10月8日火曜日
  18. 18. デバッグ(5):DataTips • 標準的なオブジェクト • NSData (16進数表示)、NSString、NSNumber等 • 図形に関するオブジェクト • NSPoint、NSSize、CGSize、Path、UIColor等 • 画像に関するオブジェクト • UIImage,NSImage、CGImageRef等 • ブラウザのような表示(URL) • 地図表示(CLLocation) *MacOSX10.9以降 13年10月8日火曜日
  19. 19. デバッグ(6):BreakPointのon/off •debugツールバーで全てのBreakPointの オンオフをコントロール 13年10月8日火曜日
  20. 20. デバッグ(7):Viewの階層構造 • lldbデバッガでViewの階層構造を見る事が出来ます。 • (lldb) po [view recursiveDescription] 13年10月8日火曜日
  21. 21. 小ネタ(1) • Storyboardで画面プレビュー • Storyboard→ Assistant Editor → Preview • 縦長や横長表示、iOS6まで/7以降の切り替えが可能 13年10月8日火曜日
  22. 22. 小ネタ(2) • JavaDocのようなコメントが可能で、QuickHelp(Option+メソッ ド)の吹き出しにコメント内容が表示される • /*! ディスクリプション param パラメータ return 戻り値 等 • AppleDoc/doxygenのようなジェネレート作業は不要 13年10月8日火曜日
  23. 23. 情報源 • WWDC2013の400番台 • https://developer.apple.com/wwdc/videos/ • 400 What s New in XCode 5 ★ • 407 Debugging with XCode • PDFよりもVideoが分かりやすいです。 • 英語は分からないけど、デモのXCodeの操作 なら分かるのでお勧めします。 13年10月8日火曜日
  24. 24. 13年10月8日火曜日
  25. 25. UnitTestとCI(Bots)の紹介 •UnitTest •追加されたTest Navigator •追加されたXCTest.framework •CI(Bots)の概要 13年10月8日火曜日
  26. 26. UnitTest(1):Test Navigator •XCode4までのUnitTest:コンソール出力のみ •→成功/失敗がわかりにくく使いにくい •XCode5からのUnitTest : Test Navigator 13年10月8日火曜日
  27. 27. UnitTest(2): Test Navigator • UnitTestのファイルと、その中 のテストメソッドが表示される • ここからテストメソッドをリト ライ出来る。 • 1つだけのリトライも可能 • TestClassの追加 • 失敗テストのみ表示 13年10月8日火曜日
  28. 28. UnitTest(3):TestFailureBreakpoint • テストで失敗したときに停止するブレークポイント • BreakpointNavigatorで             Add Test Failure Breakpoint 13年10月8日火曜日
  29. 29. UnitTest(4):XCTest •XCode4まで: SenTestingKit.framework •XCode5から: ↑とXCTest.framework •SenTestingKit は XCode5(TestNavigator)でも使えます 13年10月8日火曜日
  30. 30. UnitTest(5):XCTest •SenTestingKit からの変換 • Edit → Refac tor → Convert to XCTest 13年10月8日火曜日
  31. 31. UnitTest(6):XCTest SenTest XCTest STFail STAssertNil STAssertNotNil STAssertTrue STAssertFalse STAssertEquals STAssertEqualObjects STAssertEqualsWithAccuracy STAssertThrows STAssertThrowsSpecific STAssertThrowsSpecificNamed STAssertNoThrow STAssertNoThrowSpecific STAssertNoThrowSpecificNamed STAssertTrueNoThrow STAssertFalseNoThrow XCTFail XCTAssert XCTAssertNil, XCTAssertNotNil, XCTAssertTrue XCTAssertFalse XCTAssertEqual XCTAssertNotEqual XCTAssertEqualObjects XCTAssertNotEqualObjects XCTAssertEqualWithAccuracy XCTAssertNotEqualWithAccuracy XCTAssertThrows XCTAssertThrowsSpecific XCTAssertThrowsSpecificNamed XCTAssertNoThrow XCTAssertNoThrowSpecific XCTAssertNoThrowSpecificNamed •SenTestingKit との違いはほぼ無い •STAssert∼ →XCTAssert∼ •マクロは、AssertNotXXXが多少増えている程度。 •SenTestingKitとXCTestを混ぜては使えない 13年10月8日火曜日
  32. 32. Continuous Integration(CI) • CI=継続的インテグレーション • XCode5からこのCIを行うための仕組み Bots が組み込まれた • Bots = XCode専用のJenkinsのようなもの • XCode5にBots用の設定画面がビルドイン • Bots本体はMacOSX 10.9 Serverで動作 • Serverに複数のiOS端末をUSB接続していると、その端末それぞ れでUnitTestが実行されます • MacOSX 10.9(Mavericks)のServerが必要 • ↑まだリリースされていませんが、概要だけでもご紹介 13年10月8日火曜日
  33. 33. CI(Bots)の流れ XCode (開発機) Bots (MacOSX 10.9 Server) 検証機1 検証機2 リポジトリ (Git、SVN)①コミット ②チェックアウト ③ビルドとテスト ④結果 https://developer.apple.com/jp/technologies/tools/whats-new.html 検証機3 13年10月8日火曜日
  34. 34. Botsのメリット • 複数の実機に対してUnitTestが可能 • iPhone5s+iOS7 と iPodTouch+iOS6 とiPad + iOS5 と iPhone3GS + iOS4.3 等 • 複数のデバイスやユニバーサルバイナリでの検証に有利 • warning/errorをXCodeで確認出来る • そのままコード修正→コミット→次のイテレーション • XCodeからBotsの作成や設定変更が可能 13年10月8日火曜日
  35. 35. 情報源 • WWDC2013の 409 Testing in Xcode 5 • https://developer.apple.com/wwdc/videos/ • ドキュメント Xcode Continuous Integration Guide • https://developer.apple.com/library/ios/ documentation/IDEs/Conceptual/xcode_guide- continuous_integration/000- About_Continuous_Integration/ about_continuous_integration.html • XCode bots で検索 13年10月8日火曜日
  36. 36. まとめ: いろいろ増えた機能を使って、 iOS開発でラクしましょう。 13年10月8日火曜日
  37. 37. ご静聴ありがとう ございました。 13年10月8日火曜日

×