147
These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources Nahir Khan iOS Software Engineer

Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

These are confidential sessions—please refrain from streaming, blogging, or taking pictures

Session 415

Maximizing AppleDevelopment Resources

Nahir KhaniOS Software Engineer

Page 2: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

What You’ll Learn Today

• Self help■ Documentation■ Developer Forums

•Working with Apple■ Bug Reporting■ Developer Technical Support (DTS)

•Deploying Your App■ App Store■ iTunes Connect

Page 3: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Self Help

Page 4: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Documentation

Page 5: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Documentation and More

•Also available from■ developer.apple.com

•WWDC and Tech Talk videos•Documentation

■ Getting Started■ Developer Library

• Sample code and projects

Page 6: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Class Reference

•API reference• Example code• Common issues and FAQ

Page 7: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Full Programming Guides

• Entire books worth of content

Page 8: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Documentation and API Reference

• Right from Xcode

Page 9: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Symbol Definition

•Option-click on any symbol•Quick description•Access to header• Click Reference to get full guide

Page 10: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Symbol Definition (Cont.)

• Select any symbol•Quick access in sidebar to

■ Headers■ API reference■ Programming guides■ Sample code

Page 11: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Feedback

• Bottom of every page• Can report

■ Typos■ Missing information■ Confusing■ Helpful

Page 12: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Developer Forums

Page 13: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Developer Forums

• Visit the forums at:■ devforums.apple.com

Page 14: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Developer Forums

• Peer support•Help with triagingyour problem•Help other developers•Apple employees• Public

Page 15: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Example Post

Page 16: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Example Post

Page 17: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Example Post

Page 18: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Help from Apple

Page 19: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Bug Reporting

Tanya GuptaiOS Software Engineer

Page 20: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources
Page 21: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Help Us Help YouWhy should I file a bug report?

Page 22: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Should I File?

Page 23: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Should I File?

• The answer is always “Yes”, even if the issue:■ Seems trivial

Page 24: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Should I File?

• The answer is always “Yes”, even if the issue:■ Seems trivial■ Happened once

Page 25: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Should I File?

• The answer is always “Yes”, even if the issue:■ Seems trivial■ Happened once■ Seems obvious

Page 26: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Should I File?

• The answer is always “Yes”, even if the issue:■ Seems trivial■ Happened once■ Seems obvious■ Someone else filed it

Page 27: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

“If an issue does not exist in bug reporter, it does not exist.”

Apple Engineering Mantra

Page 28: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Task List for Apple Engineering

Page 29: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

“It’s after 5pm, and there’s no caffeine to be found on campus. This is a serious impediment to engineering performance.”

An example bug report

Page 30: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

“It’s after 5pm, and there’s no caffeine to be found on campus. This is a serious impediment to engineering performance.”

An example bug report

Page 31: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

“Enter elevator #11. Press the button for floor 3 on the panel on right side of the elevator doors. Only the left panel 3rd floor button lights up.”

An example bug report

Page 32: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

“Recently, when I go to get some dinner in the cafeteria, the Odwalla cabinet is locked. I am forced to eat ice cream and Red Bull instead.”

An example bug report

Page 33: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

bugreport.apple.comHow do I file a bug report?

Page 34: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

One Report = One Issue

• The new seed is completely brokenThese are the problems I encountered with the new seed■ Problem 1: …■ Problem 2: …■ Problem 3: …

Page 35: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

What Do I File a Bug Report For?

Page 36: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

What Do I File a Bug Report For?

Bugs

Page 37: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

What Do I File a Bug Report For?

Bugs Crashes, Hangs, Data Loss

Page 38: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

What Do I File a Bug Report For?

Bugs Crashes, Hangs, Data Loss

Performance Issues

Page 39: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

What Do I File a Bug Report For?

Bugs Crashes, Hangs, Data Loss

Performance Issues

EnhancementRequests

Page 40: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

As Early as PossibleWhen do I file the bug report?

Page 41: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Timing Is Key

Page 42: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Timing Is Key

Seed 1 Seed 2 ... Last Seed GM

Fix

Prob

abili

ty

Page 43: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Timing Is Key

Seed 1 Seed 2 ... Last Seed GM

Fix

Prob

abili

ty

Page 44: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Timing Is Key

Seed 1 Seed 2 ... Last Seed GM

Fix

Prob

abili

ty

Page 45: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Timing Is Key

Seed 1 Seed 2 ... Last Seed GM

Fix

Prob

abili

ty

Current ReleaseFuture Release

Page 46: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

AnalyzeLife of the Bug

You Apple Engineer

Page 47: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

AnalyzeLife of the Bug

You Apple Engineer

Page 48: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

AnalyzeLife of the Bug

You Apple Engineer

Page 49: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

AnalyzeLife of the Bug

You Apple Engineer

Page 50: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Software changedLife of the Bug

You Apple Engineer

Page 51: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

DuplicateLife of the Bug

You Apple Engineer

Page 52: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Duplicates Are Important

• Better information than the original•Number of duplicates as seriousness indicator• Request status on the original bug

Page 53: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Insufficient informationLife of the Bug

You Apple Engineer

Page 54: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Insufficient informationLife of the Bug

You Apple Engineer

Page 55: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Insufficient informationLife of the Bug

You Apple Engineer

Page 56: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Insufficient Information Hazards

Seed 1 Seed 2 ... Last Seed GM

Fix

Prob

abili

ty

You Apple Engineer

Page 57: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Insufficient Information Hazards

Seed 1 Seed 2 ... Last Seed GM

Fix

Prob

abili

ty

You Apple Engineer

Page 58: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Insufficient Information Hazards

Seed 1 Seed 2 ... Last Seed GM

Fix

Prob

abili

ty

You Apple Engineer

Page 59: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Insufficient Information Hazards

Seed 1 Seed 2 ... Last Seed GM

Fix

Prob

abili

ty

You Apple Engineer

Page 60: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Write Actionable Reports

• Clear• Concise• Informative• Constructive• Specific

Page 61: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Components of a Bug Report

Problem Report Title

Problem Details

Additional Enclosures

Configuration Information

Reproducibility

Page 62: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Components of a Bug Report

Problem Report Title

Problem Details

Additional Enclosures

Configuration Information

Reproducibility

Page 63: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Problem Report Title

•Advertisement of your issue• Clear and succinct• Should stand on its own

Page 64: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

An Example

Page 65: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

An Example

Copy and paste is broken

Page 66: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

An Example

Copy and paste is broken

Pasting an item stored using [UIPasteboard setImage:] is broken

Page 67: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

An Example

Copy and paste is broken

Pasting an item stored using [UIPasteboard setImage:] is broken

Pasting an item stored using [UIPasteboard setImage:]produces images with question marks

Page 68: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

An Example

Copy and paste is broken

Pasting an item stored using [UIPasteboard setImage:] is broken

Pasting an item stored using [UIPasteboard setImage:]produces images with question marks

10A5355d: Pasting an item stored using [UIPasteboard setImage:] produces images with question marks

Page 69: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Components of a Bug Report

Problem Report Title

Problem Details

Additional Enclosures

Configuration Information

Reproducibility

Page 70: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Problem Details

Problem Details

Problem Summary

Steps To Reproduce

Expected Results

Actual Results

Regression

Page 71: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Problem Details

Problem Details

Problem Summary

Steps To Reproduce

Expected Results

Actual Results

Regression

Page 72: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Problem Summary

• Recap the title• Include more descriptive summary information•Avoid vague language (nothing happens, doesn’t work, etc.)

Page 73: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

An Example

• Summary:■ Paste operation on item stored using [UIPasteboard setImage:] produces images with question marks in iOS 6 seed version 10A5355d. I have noticed this problem happen while pasting these images in Mail or Messages app

Page 74: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Problem Details

Problem Details

Problem Summary

Steps To Reproduce

Expected Results

Actual Results

Regression

Page 75: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

An Example

Page 76: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

An Example

• Steps to reproduce:

Page 77: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

An Example

• Steps to reproduce:■ Create a UIImage object:

■ UIImage *image = [[UIImage imageNamed:@"test"];

Page 78: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

An Example

• Steps to reproduce:■ Create a UIImage object:

■ UIImage *image = [[UIImage imageNamed:@"test"];■ Write the UIImage object data to the pasteboard

■ [[UIPasteboard generalPasteboard] setImage:image];

Page 79: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

An Example

• Steps to reproduce:■ Create a UIImage object:

■ UIImage *image = [[UIImage imageNamed:@"test"];■ Write the UIImage object data to the pasteboard

■ [[UIPasteboard generalPasteboard] setImage:image];■ Launch the Mail app

Page 80: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

An Example

• Steps to reproduce:■ Create a UIImage object:

■ UIImage *image = [[UIImage imageNamed:@"test"];■ Write the UIImage object data to the pasteboard

■ [[UIPasteboard generalPasteboard] setImage:image];■ Launch the Mail app■ Select the compose button to bring up the mail compose sheet

Page 81: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

An Example

• Steps to reproduce:■ Create a UIImage object:

■ UIImage *image = [[UIImage imageNamed:@"test"];■ Write the UIImage object data to the pasteboard

■ [[UIPasteboard generalPasteboard] setImage:image];■ Launch the Mail app■ Select the compose button to bring up the mail compose sheet■ Tap and hold on message body of the mail compose sheet

Page 82: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

An Example

• Steps to reproduce:■ Create a UIImage object:

■ UIImage *image = [[UIImage imageNamed:@"test"];■ Write the UIImage object data to the pasteboard

■ [[UIPasteboard generalPasteboard] setImage:image];■ Launch the Mail app■ Select the compose button to bring up the mail compose sheet■ Tap and hold on message body of the mail compose sheet ■ Select "Paste" from the callout that appears

Page 83: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Problem Details

Problem Details

Problem Summary

Steps To Reproduce

Expected Results

Actual Results

Regression

Page 84: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

An Example

• Expected results:■ I would expect the image that was copied using [UIPasteboard setImage:] to be pasted in the mail compose sheet

•Actual results:■ The paste operation adds an image with a blue box containing a question mark (see attached screenshot)

Page 85: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Problem Details

Problem Details

Problem Summary

Steps To Reproduce

Expected Results

Actual Results

Regression

Page 86: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

An Example

• Regression information:■ This issue occurred on iOS 6 seed version 10A5355d. ■ This problem did not happen in iOS 5 and earlier■ This problem does not occur if I use [UIPasteboard setData:] to write the image data to the pasteboard

Page 87: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Components of a Bug Report

Problem Report Title

Problem Details

Additional Enclosures

Configuration Information

Reproducibility

Page 88: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Sample Project

Page 90: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Step 1: Transfer the logsCrash Logs for iOS

• Connect your device• Sync the device in iTunes

Page 91: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Crash Logs for iOSStep 2: Locate the log file

Page 92: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Crash Logs for iOSStep 2: Locate the log file

Page 93: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Crash Logs for iOSStep 2: Locate the log file

Page 94: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Step 2: Locate the log fileCrash Logs for iOS

•On Windows, look under:■ C:\Users\[Your_User_Name]\AppData\Roaming\Apple Computer\Logs\CrashReporter\MobileDevice\[Your_Device_Name]

Page 95: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Crash Logs for OS X

Page 96: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Crash Logs for OS X

Page 97: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Xcode organizerConsole Logs for iOS

Page 98: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Xcode organizerConsole Logs for iOS

Page 99: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Xcode organizerConsole Logs for iOS

Page 100: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Step 1: Launch Console.appConsole Logs for OS X

Page 101: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Step 2: Select All MessagesConsole Logs for OS X

Page 102: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Step 2: Select All MessagesConsole Logs for OS X

Page 103: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Step 3: Save the log fileConsole Logs for OS X

Page 104: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Screenshots on iOS

■ Press and release the home and power button

■ Saved to the Photos app onyour iOS device

Page 105: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Screenshots on iOS

■ Press and release the home and power button

■ Saved to the Photos app onyour iOS device

Page 106: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Screenshots on iOSXcode Organizer

Page 107: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Screenshots on iOSXcode Organizer

Page 108: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Screenshots on iOSXcode Organizer

Page 109: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Screenshots on OS X

• Save a picture of the entire screen or screens■ Press Command+Shift and then 3

• Save a picture of a selected area of the screen■ Press Command+Shift and then 4

• Save a picture of a specific window■ Press Command+Shift, then 4 and then spacebar

Page 110: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Screen Recordings on OS X

• To capture a screen recording, use QuickTime Player■ Select File→New Screen Recording■ Select the record button

Page 111: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Stackshot Logs for iOS

Page 112: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Stackshot Logs for iOS

• Press home and one of thevolume buttons together• Same steps as acrash log for retrieval

Page 113: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Stackshot Logs for iOS

• Press home and one of thevolume buttons together• Same steps as acrash log for retrieval

Page 114: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Sample Logs for OS X

Page 115: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

sysdiagnose for OS X

Page 116: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Benefit of Adding More Information

Page 117: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Benefit of Adding More Information

Seed 1 Seed 2 ... Last Seed GM

Fix

Prob

abili

ty

Page 118: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Benefit of Adding More Information

Seed 1 Seed 2 ... Last Seed GM

Fix

Prob

abili

ty

Without Additional EnclosuresWith Additional Enclosures

Page 119: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Components of a Bug Report

Problem Report Title

Problem Details

Additional Enclosures

Configuration Information

Reproducibility

Page 120: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Configuration Information

• iOS:■ Hardware model and version (iPod touch, 5th generation)■ Software version

■ Available in Version field in Settings app under General→About ■ Other related hardware (Bluetooth headsets, automobiles)

Page 121: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Configuration Information

•OS X:■ System information report ■ More info at developer.apple.com/bug-reporting/mac/system

Page 122: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Components of a Bug Report

Problem Report Title

Problem Details

Additional Enclosures

Configuration Information

Reproducibility

Page 123: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

What We Learned

• Importance of bug reports• Timing is key•Good bug filing practices

Page 124: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Developer Technical Support

Ted JucevicDTS Manager

Page 125: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

What We Do

•One : One support■ Public APIs■ Xcode■ MFi developers

• Implementation guidance■ Not “how do I write an app?”

• Troubleshooting

Page 126: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

When to Contact DTS

• You’ve read though the docs• You’ve read the forums• You’ve written the test code•Question not suitable for forums

Page 127: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Working with DTS

Page 128: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Requesting Help

• developer.apple.com/membercenter■ Technical Support

• Fill out the web form

• Responses though email

Page 129: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Information We May Need

• Xcode sample project• Clear and concise steps• Results of your troubleshooting• Symbolicated Crash Logs• Console Logs• Bug report numbers

Page 130: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Common Questions Answered

Page 131: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

iOS Answers

TN2239 iOS Debugging Magic

TN2151 Understanding and Analyzing iOS Application Crash Reports

QA1747 Debugging Deployed iOS Apps

TN2285 Testing iOS App Updates

QA1764 How to reproduce bugs reported against App Store submissions

Page 132: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

OS X Answers

TN2124 Mac OS X Debugging Magic

QA1778 How to reproduce bugs reported against Mac App Store

Page 133: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Deploying Your App

Page 134: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

App Store

Page 135: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Overview

•Available at:■ developer.apple.com/appstore

• Learn about■ Approval process■ Guidelines

•Marketing assets■ Downloads and guidelines

Page 137: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Contact Form

•Use the contact form to:■ Get the status of your app■ Get clarification of an app rejection

■ Appeal an app rejection■ Request an expedited app review■ Provide requested information

Page 138: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

iTunes Connect

Page 139: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

iTunes Connect

• Everything about managing your app

Page 140: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

iTunes Connect FAQ

•Great starting out point

Page 141: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Contact Us Page

•Drill down menu•Where to get help

Page 142: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

More Information

• For iOS Developers:■ developer.apple.com/library/ios/iTunesConnectGuide

• For Mac Developers■ developer.apple.com/library/mac/iTunesConnectGuide

Page 143: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

Summary

•Different developer resources and when to use them■ Self help■ Working with Apple■ App deployment

• Importance of bug reports■ Behind the scenes■ Filing good bug reports

Page 144: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

More Information

Developer Forums:devforums.apple.com

App Review Contact Form:developer.apple.com/appstore

Developer Technical Support:developer.apple.com/support/technical

Bug Reporter:bugreport.apple.com

More Information on Bug Reporting:developer.apple.com/bug-reporting

Page 145: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

More Information

TN2239 - iOS Debugging Magicdeveloper.apple.com/library/ios/#technotes/tn2239/_index.html

TN2151 - Understanding and Analyzing iOS Application Crash Reportsdeveloper.apple.com/library/ios/#technotes/tn2151/_index.html

QA1747 - Debugging Deployed iOS Appsdeveloper.apple.com/library/ios/#qa/qa1747/_index.html

TN2285 - Testing iOS App Updatesdeveloper.apple.com/library/ios/#technotes/tn2285/_index.html

Page 146: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources

More Information

QA1764 - How to reproduce bugs reported against App Store submissions developer.apple.com/library/ios/#qa/qa1764/_index.html

TN2124 - Mac OS X Debugging Magicdeveloper.apple.com/library/mac/#technotes/tn2124/_index.html

QA1778 - How to reproduce bugs reported against Mac App Store submissionsdeveloper.apple.com/library/mac/#qa/qa1778/_index.html

Page 147: Maximizing Apple Development Resources · These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 415 Maximizing Apple Development Resources