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

>100 Views

October 09, 13

スライド概要

profile-image

2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

XCode5での デバッグ / CI メディアサービスカンパニー 田村孝文 13年10月8日火曜日

2.

今日のメニュー • XCode5新機能をピックアップして紹介 • XCode5でのUnitTestとCI(Bots)の紹介 13年10月8日火曜日

3.

XCode5新機能 ピックアップ • AppleID連携 • 画像管理 • ソースコード管理 • デバッグで使える機能 • 小ネタ 13年10月8日火曜日

4.

AppleID連携(1):Automatic Configuration • AppleIDに対応した設定(証明書やプロファイル)を自動で XCode5に取り込む機能 • AppleIDの設定は、”Preferrence”→”Accounts” 13年10月8日火曜日

5.

AppleID連携(2):Provisioning Profile • AppleIDの設定画面から Provisioning Profileの取り込み • 13年10月8日火曜日 AppleIDの”View Details..”

6.

AppleID連携(3):Provisioning Profile • 取り込んだProvisioning Profileは、各プロジェクトの 中のBuildSettingsで指定 • “Code Signing Identity”の下に項目が追加されている 13年10月8日火曜日

7.

AppleID連携(4):Capabilities • Capabilities: Apple提供の各種サービスの設定を行う • 各種設定のON/OFFをスイッチでコントロール • アカウントの設定、Frameworkの追加が自動化 13年10月8日火曜日

8.

画像管理(1):Asset Catalog • いろいろなサイズの画像パーツやアイコンをセットで管理 • XCode4までの方法(〜@2x)と共存可能 13年10月8日火曜日

9.

画像管理(2):Asset Catalog • • • 13年10月8日火曜日 すでにある画像からAssetCatalogを作れる “New File” → ”iOS Resource” →”Asset Cagalog” AssetCatalogを選んで→”Edit”→ “Import from project”

10.

ソースコード管理(1):Source Control • • 上部メニューに”Source Control”が追加 Gitの一通りの操作が可能 • • 13年10月8日火曜日 Pull Push Commit Branch ... SVNに対応

11.

ソースコード管理(2):Source Control • コミット時に、”Push to Remote”が可能 • 地味だけど便利機能 13年10月8日火曜日

12.

ソースコード管理(3):Blame • Blame ソースコードに対応したコミットを見る • カーソル→“Editor”→”Show Blame for Line” 13年10月8日火曜日

13.

ソースコード管理(4):Blame • AssistantEditorの横の”Comparison”を長押し →Blame表示 • Blame ソースコー ドの部分に対応した コミットを表示 • 誰が何時のコミット で修正したのかが分 かる • 長押しの後”Log”で コミットログ 13年10月8日火曜日

14.

デバッグ(1):デバッグゲージ • デバッグ開始で、CPUのいろいろな情報が見えます。 13年10月8日火曜日

15.

デバッグ(2):デバッグゲージ • デバッグ開始で、メモリのいろいろな情報が見えます。 13年10月8日火曜日

16.

デバッグ(3):DataTips • 色々なオブジェクトの内容を見るための”DataTips” • 変数をマウスオーバー→吹き出しの中の”目”アイコン をクリック 13年10月8日火曜日

17.

デバッグ(4):DataTips • オブジェクトの種類で見え方が違う 13年10月8日火曜日

18.

デバッグ(5):DataTips • 標準的なオブジェクト • NSData (16進数表示)、NSString、NSNumber等 • 図形に関するオブジェクト • NSPoint、NSSize、CGSize、Path、UIColor等 • 画像に関するオブジェクト • UIImage,NSImage、CGImageRef等 • ブラウザのような表示(URL) • 地図表示(CLLocation) *MacOSX10.9以降 13年10月8日火曜日

19.

デバッグ(6):BreakPointのon/off • debugツールバーで全てのBreakPointの オンオフをコントロール 13年10月8日火曜日

20.

デバッグ(7):Viewの階層構造 • lldbデバッガでViewの階層構造を見る事が出来ます。 • (lldb) po [view recursiveDescription] 13年10月8日火曜日

21.

小ネタ(1) • • • Storyboardで画面プレビュー Storyboard→”Assistant Editor”→”Preview” 縦長や横長表示、iOS6まで/7以降の切り替えが可能 13年10月8日火曜日

22.

小ネタ(2) • JavaDocのようなコメントが可能で、QuickHelp(Option+メソッ ド)の吹き出しにコメント内容が表示される • • /*! ディスクリプション \param パラメータ \return 戻り値 等 AppleDoc/doxygenのようなジェネレート作業は不要 13年10月8日火曜日

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.

13年10月8日火曜日

25.

UnitTestとCI(Bots)の紹介 • UnitTest • 追加されたTest Navigator • 追加されたXCTest.framework • CI(Bots)の概要 13年10月8日火曜日

26.

UnitTest(1):Test Navigator •XCode4までのUnitTest:コンソール出力のみ •→成功/失敗がわかりにくく使いにくい •XCode5からのUnitTest : Test Navigator 13年10月8日火曜日

27.

UnitTest(2): Test Navigator • UnitTestのファイルと、その中 のテストメソッドが表示される • ここからテストメソッドをリト ライ出来る。 • 1つだけのリトライも可能 • TestClassの追加 • 失敗テストのみ表示 13年10月8日火曜日

28.

UnitTest(3):TestFailureBreakpoint • テストで失敗したときに停止するブレークポイント • BreakpointNavigatorで ”Add Test Failure Breakpoint” 13年10月8日火曜日

29.

UnitTest(4):XCTest • XCode4まで: SenTestingKit.framework • XCode5から: ↑とXCTest.framework • SenTestingKit は XCode5(TestNavigator)でも使えます 13年10月8日火曜日

30.

UnitTest(5):XCTest • SenTestingKit からの変換 • “Edit”→”Refac tor”→”Convert to XCTest” 13年10月8日火曜日

31.

UnitTest(6):XCTest •SenTestingKit との違いはほぼ無い •STAssert〜 →XCTAssert〜 •マクロは、AssertNotXXXが多少増えている程度。 •SenTestingKitとXCTestを混ぜては使えない SenTest STFail XCTest XCTFail XCTAssert STAssertNil XCTAssertNil, STAssertNotNil XCTAssertNotNil, STAssertTrue XCTAssertTrue STAssertFalse XCTAssertFalse STAssertEquals XCTAssertEqual XCTAssertNotEqual STAssertEqualObjects XCTAssertEqualObjects XCTAssertNotEqualObjects STAssertEqualsWithAccuracy XCTAssertEqualWithAccuracy XCTAssertNotEqualWithAccuracy STAssertThrows XCTAssertThrows STAssertThrowsSpecific XCTAssertThrowsSpecific STAssertThrowsSpecificNamed XCTAssertThrowsSpecificNamed STAssertNoThrow XCTAssertNoThrow STAssertNoThrowSpecific XCTAssertNoThrowSpecific STAssertNoThrowSpecificNamed XCTAssertNoThrowSpecificNamed STAssertTrueNoThrow STAssertFalseNoThrow 13年10月8日火曜日

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.

CI(Bots)の流れ ①コミット XCode (開発機) ④結果 リポジトリ (Git、SVN) ②チェックアウト 検証機1 Bots (MacOSX 10.9 Server) 検証機2 検証機3 ③ビルドとテスト https://developer.apple.com/jp/technologies/tools/whats-new.html 13年10月8日火曜日

34.

Botsのメリット • 複数の実機に対してUnitTestが可能 • iPhone5s+iOS7 と iPodTouch+iOS6 とiPad + iOS5 と iPhone3GS + iOS4.3 等 • 複数のデバイスやユニバーサルバイナリでの検証に有利 • warning/errorをXCodeで確認出来る • そのままコード修正→コミット→次のイテレーション • XCodeからBotsの作成や設定変更が可能 13年10月8日火曜日

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̲guidecontinuous̲integration/000About̲Continuous̲Integration/ about̲continuous̲integration.html • “XCode bots”で検索 13年10月8日火曜日

36.

まとめ: いろいろ増えた機能を使って、 iOS開発でラクしましょう。 13年10月8日火曜日

37.

ご静聴ありがとう ございました。 13年10月8日火曜日