Reveal Changelog

What's new in Reveal 17 Build 10807

Aug 8, 2018
  • Inspectors:
  • Attributes Inspector for Core Animation layers now supports 32 new properties across several classes.
  • Several layer properties with string enum types (e.g. CAShapeLayer.lineCap) are now displayed correctly in the Inspectors and can be modified.
  • Attributes Inspector for UITextField, UITextView and UISearchBar classes now supports textContentType property.
  • Attributes Inspector now displays properties of MapKit views when inspecting tvOS apps.
  • Layout Constraints:
  • Reveal can now describe the purpose of many system-managed layout constraints. These annotations are available in: Participating Constraints inspector, by clicking the i button that appears when hovering the mouse pointer over a system constraint; Layout Report section of a system constraint's Layout Inspector.
  • Clicking a warning icon that appears next to broken constraints in the Participating Constraints inspector now displays the description of the warning in a popover, instead of selecting that constraint immediately.
  • Outline and Participating Constraints inspector now display descriptions for autoresizing mask layout constraints instead of treating them as unknown.
  • Menus:
  • Navigate menu now includes Select Next Issue and Select Previous Issue commands for quick navigation to the Outline items with detected layout issues (i.e. views with ambiguous layout and broken layout constraints).
  • Hierarchy navigation commands in the Navigate menu (e.g. Select Parent) have been updated to better support layout constraints, layout guides and layers.
  • Edit → Copy command now allows copying a debugger expression corresponding to the currently selected item.
  • Several commands and options in the Canvas and Navigate menus have been renamed to better reflect their current functionality, e.g. layer inspection support.
  • Miscellaneous Improvements:
  • Outline items for CATextLayer objects now include the text displayed by those layers.
  • Views from Google Maps SDK (GMSMapView and GMSPanoramaView) are now collapsed in the Outline and Canvas by default, similarly to MKMapView.
  • Several under-the-hood changes in preparation for Dark Mode support on macOS 10.14 Mojave.
  • Bugs Fixed:
  • Collapsing some items containing layout guides is now animated correctly in the Canvas.
  • Canvas now correctly positions items with miniscule intersection, instead of needlessly separating them. This mainly affected inspecting apps displayed on 3× screens.
  • Inspectors of option set (bitmask) properties no longer include a superfluous checkbox for "None" (zero) option.
  • View hierarchies that contain objects overriding isEqual: method (e.g. layers from Google Maps SDK) can now be inspected correctly.
  • Fixed the Layout Report inspector not appearing if a change to a view's or constraint's attribute introduced a layout issue.
  • Launching Soundstagram should now succeed if DEVELOPER_DIR environment variable points to the root of Xcode app bundle instead of the Developer directory inside it.
  • Launching Soundstagram should no longer fail to create a new Simulator instance if an appropriate one does not exist yet.

New in Reveal 13 Build 10035 (Dec 11, 2017)

  • This release improves layout ambiguity warnings for iOS 11 apps, and fixes two regressions introduced in Reveal 12:
  • Silences layout ambiguity warnings for new UIKit-private layout guides introduced in iOS 11.
  • Fixes a regression when editing properties that caused changes not to be reflected in Reveal's canvas.
  • Fixes TouchBar buttons not correctly reflecting their current state.

New in Reveal 12 Build 10029 (Dec 11, 2017)

  • When resizing a document window, 2D mode won't change the zoom level of the canvas.
  • Fixes some issues with hit detection in our canvas under macOS 10.13.
  • Fixes a memory leak in our licensing code.
  • Fixes license upgrade dialog appearing before the annual support period had passed.
  • Smooths out the transition from 2D to 3D mode in the canvas under macOS 10.13.
  • Restores the Affine Transform property inspector, which was accidentally removed in a previous version.
  • Disables the bit mask property inspector when the document or property is not editable.

New in Reveal 11 Build 9959 (Sep 19, 2017)

  • ADDED SUPPORT FOR OVER 35 NEW INSPECTABLE PROPERTIES, INCLUDING:
  • CALayer:
  • maskedCorners
  • MKMapView:
  • region
  • centerCoordinate
  • visibleMapRect
  • showsCompass
  • showsScale
  • showsTraffic
  • UIAccessibilityContentSizeCategoryImageAdjusting (conformed to by UIButton, UIImageView):
  • adjustsImageSizeForAccessibilityContentSizeCategory
  • UIApplication:
  • alternateIconName
  • supportsAlternateIcons
  • UIBarPositioning (conformed to by UINavigationBar, UISearchBar, UIToolbar):
  • barPosition
  • UICollectionView:
  • dragInteractionEnabled
  • hasUncommittedUpdates
  • reorderingCadence
  • UIContentSizeCategoryAdjusting (conformed to by UITextField, UITextLabel, UITextView):
  • adjustsFontForContentSizeCategory
  • UIImageView:
  • masksFocusEffectToContents
  • UIScreen:
  • maximumFramesPerSecond
  • UISegmentedControl:
  • springLoaded
  • UIScrollView:
  • contentInsetAdjustmentBehavior
  • adjustedContentInset
  • indexDisplayMode
  • UISpringLoadedInteractionSupporting (conformed to by UIButton, UISegmentedControl, UICollectionView):
  • isSpringLoaded
  • UITableView:
  • separatorInsetReference
  • insetsContentViewsToSafeArea
  • UITextDraggable (conformed to by UITextField, UITextView):
  • textDragActive
  • textDropActive
  • textDragOptions
  • UITextInputTraits (conformed to by UISearchBar, UITextField, UITextView):
  • smartQuotesType
  • smartDashesType
  • smartInsertDeleteType
  • UIView:
  • accessibilityContainerType
  • accessibilityIgnoresInvertColors
  • directionalLayoutMargins
  • insetsLayoutMarginsFromSafeArea
  • safeAreaInsets
  • WE'VE ALSO IMPROVED A COUPLE OF THE PROPERTY INSPECTORS:
  • Bit mask options are now presented as checkboxes for types such as UIViewAutoresizing.
  • An improved representation for CGAffineTransform properties.

New in Reveal 8 Build 9667 (Apr 6, 2017)

  • New:
  • Reveal now supports editing the priority property of optional Auto Layout constraints. This enables even more ways to debug layout issues (like those caused by incorrect priority combinations) or just to experiment with layout.
  • Note: Since UIKit does not allow changing priority of required constraints (which have a priority of 1000), doing so in Reveal is also disabled.
  • Bugs Fixed:
  • Several text-based property inspectors (like UILabel.text, UITextField.placeholder, etc.) now span multiple lines when necessary. This makes it easier to see their full value at a glance, and also resolves an issue with rendering text values containing hard line breaks.
  • UIView.alpha and CALayer.opacity properties now change in increments of 0.1 when using their inspectors' stepper control, and the stepper is limited to values between 0.0 and 1.0.
  • Several enumeration and bitmask-based property inspectors had missing options, or were displaying deprecated names. These issues have been addressed.
  • Fixed: under certain circumstances, modifying the view hierarchy could cause some views' visibility in the Canvas to become out of sync with the inspected app.
  • UIClassicWindow and UIStatusBarAdornmentWindow windows are now hidden/shown when toggling the "Display System Windows" setting. These windows are present in the view hierarchy when inspecting an iPhone-only app running on iPad.
  • GLKView, SCNView, SKView, UIClassicWindow and UIStatusBarAdornmentWindow views are now collapsed in the Outline view by default.
  • "Refresh" button on the Connection Bar is easier to click, and can be clicked while the Connection Sheet is open.
  • Fixed: if Reveal takes more than a few seconds to load snapshot files while launching, it could fail to discover inspectable apps via Bonjour.
  • Attempting to process a malformed Server response or snapshot file is now less likely to crash Reveal.

New in Reveal 7 Build 9558 (Feb 22, 2017)

  • New in this Release:
  • Note: The Reveal library has changed. Please remember to update your projects to link to the new library version.
  • Inspection of Auto Layout Guides:
  • This release adds support for inspecting Auto Layout guides and focus guides, which is valuable for debugging apps using modern iOS and tvOS layout APIs.
  • Touch Bar Support:
  • If you have one of Apple's new MacBook Pro notebooks, we now support dynamic, context-specific hotkeys in the Touch Bar.
  • Bugs Fixed:
  • Fixed: The position and size of the frontmost document window is remembered across launches.
  • Fixed: RevealServer.framework's CFBundleShortVersionString is now the same as the version of Reveal that bundles it.
  • Fixed: Reveal now correctly handles ~/.lldbinit being a symbolic link.
  • Fixed: iPod touch devices are now correctly displayed in the connections list.
  • Fixed: Make UIView.layoutMargins editable in the inspectors.
  • Fixed: Inverse constraint lines are now displayed and updated in the Canvas correctly.
  • Fixed: The Layout Issues inspector did not appear if an attribute change introduced layout ambiguity.

New in Reveal 6 Build 9220 (Jan 20, 2017)

  • New in this Release:
  • Note: The Reveal library has changed. Please remember to update your projects to link to the new library version.
  • Auto Layout Errors & Warnings:
  • Reveal will now highlight views that have ambiguous layout, and constraints that have been broken due to an unsatisfiable layout.
  • Improved View Hierarchy Filtering:
  • The view hierarchy can now be filtered by specific view properties, such as: Class or superclass name, Accessibility, Identifier, View tag, Memory address.
  • New Features:
  • "Reset View" button has been added to the canvas in the lower right-hand corner. This will re-orient and reset the zoom level on the canvas so that the presented view hierarchy is centered and visible.
  • Tooltips have been added to, or improved for many controls.
  • Bugs Fixed:
  • Fixed: Descriptions of participating constraints in the layout inspector had incorrectly formatted labels.
  • Fixed: Changing selection in the outline view to an item that's currently collapsed did not expand parent items.
  • Fixed: RevealServer.framework had simulator platforms listed in its Info.plist.
  • Fixed: Integration scripts will no longer copy RevealServer.framework inside an already present copy of the framework.
  • Fixed: Reveal Server no longer requires the CFBundleName, CFBundleVersion and CFBundleShortVersionString to be present your iOS application's Info.plist.
  • Fixed: Potential race conditions in the Reveal LLDB script commands

New in Reveal 5 Build 8969 (Dec 17, 2016)

  • New in Reveal 5:
  • Note: The Reveal Server framework has changed. Please remember to update your projects to link to the new framework version.
  • Improved Debugger Integration:
  • Reveal now has tighter integration with the LLDB debugger. This makes using the breakpoint-based Reveal Server injection method easier and gives developers Reveal-oriented commands to use in LLDB's debug console.
  • New Features:
  • Using Force Click on a view in the canvas will now focus on that view hierarchy sub-tree.
  • A new IBARevealServerDisableAutoStart user default that can be specified at iOS application start up to stop the Reveal Server from automatically starting. See RevealServer Configuration Options documentation for more details.
  • Performance Improvements:
  • A handful of performance improvements were made in this release. In particular Reveal now prefers to use OpenGL over Metal on Intel GPUs on macOS Sierra.
  • Bugs Fixed:
  • Fixed: Crashes when interacting with the view hierarchy/focus history path during refresh.
  • Fixed: Issues with the representation and serialisation of very large, very small, or out of bounds numeric values (NaN, Infinity, etc).
  • Fixed: UIView semanticContentAttribute inspector was showing incorrect values.
  • Fixed: Restoring a machine image from a Time Machine backup could lead to Reveal showing inaccurate activation dialogs.
  • Fixed: Reveal now recognises Reveal 1.x RevealLicense files and offers upgrade advice.
  • Fixed: Colours on Macs with wide gamut (P3) displays were not displayed correctly.
  • Minimum System Requirements:
  • macOS 10.11
  • iOS 8
  • tvOS 9
  • Xcode 7.3

New in Reveal 4 Build 8796 (Nov 18, 2016)

  • Adds menu items for creating new document tabs under macOS Sierra
  • Fixes visual issues and improves performance in the hierarchy outline view

New in Reveal 3 Build 8748 (Nov 2, 2016)

  • Improves performance on machines running Intel GPUs under macOS Sierra
  • Fixes a crash when the target iOS app is missing the CFBundleVersion or CFBundleShortVersionString keys in it's Info.plist
  • Upgrades our sample app, Soundstagram, to 64-bit. This fixes the warning that was shown in the iOS 10.x Simulator.
  • Other minor fixes to visual issues

New in Reveal 2 Build 8615 (Sep 14, 2016)

  • NEW::
  • USB connection support: Reveal will now discover applications running on devices connected by USB, making inspection easier and more reliable.
  • App Extension support: Inspect messages extensions, notification extensions, custom keyboard extensions, today extensions and many more. With Reveal 2 you can inspect and debug issues that even Xcode can’t see.
  • Filtering: Reveal now allows you to filter views and constraints by name and memory address making it even easier to find and fix things in your view hierarchy.
  • All-new design: We’ve streamlined the connection bar, made the inspectors more compact and polished every nook and cranny of the app. Navigate faster and see more information at a glance with an even more refined experience.
  • And of course, many other improvements to functionality and performance including:
  • Demangling of private Swift class names.
  • Reveal Server is now a single dynamic framework.
  • And many, many more!

New in Reveal 1.6.3 Build 5790 (Feb 2, 2016)

  • Fixes a vulnerability in Sparkle, the updating framework we use to check for and install updates to Reveal.

New in Reveal 1.6.2 Build 5781 (Nov 5, 2015)

  • A new tvOS specific framework has been added to allow inspection of tvOS projects both in the simulator and on an Apple TV device.
  • A new podspec has been created for the tvOS library. Add "Reveal-tvOS-SDK" to your Podfile and run pod update to include it in your project.
  • The integration guide has been updated to show how to add the tvOS library.

New in Reveal 1.5.1 Build 4946 (Feb 19, 2015)

  • Bug Fixes:
  • Fixed a problem with the canvas where constraints on the selected view would sometimes not be restored after a refresh.
  • The Reveal server will now always make calls to UIKit on the main thread.
  • UIWebView's pageCount property is shown as read-only in the inspectors to reflect the API.
  • NSLayoutConstraint's firstItem/secondItem will be presented consistently in all inspectors.
  • Color inspectors no longer reset the inspected color to nil when changing between hex and RGBA presentation.
  • Changing "Canvas → Display Hidden Views" and the opacity of hidden views is now animated.
  • If another app is open in the iOS Simulator, Reveal will now inspect Soundstagram and not the first simulator app it encounters.
  • View identifiers now have newlines stripped from them before display, fixing a problem where inspector layouts could be incorrect.
  • Right-aligned text fields in the inspector now show right-aligned placeholder values.
  • Many other small fixes to make the canvas display more consistent.

New in Reveal 1.5.0 Build 4819 (Feb 4, 2015)

  • New Features:
  • Auto Layout Inspection:
  • Constraints are now shown in the outline and canvas.
  • The new layout inspector shows the constraints a view participates with.
  • You can select related views and constraints in the layout inspector by clicking the link icon.
  • Constraints owned by a view are displayed as child elements in the outline.
  • Constraints created by the application are shown with purple icons and those created by the system are blue.
  • Selecting a constraints group in the outline displays all the constraints contained within the group in the canvas.
  • Selecting a view in the outline displays all the constraints the view participates with on the canvas.
  • Auto layout information such as content hugging, compression resistance, intrinsic size, alignment rect and alignment rect insets are displayed in the new layout inspector.
  • You can toggle the visibility of constraints to tailor the amount of information displayed.
  • New Inspectors:
  • The inspectors have been completely redesigned. Property sub-groupings make finding related properties much easier than before.
  • A new layout inspector displays all properties relevant to a view’s layout and position.
  • An inspector for WKWebView has been added.
  • The following property editors have been added:
  • UITextView selectable.
  • UINavigationBar barTintColor.
  • UITextView and UIWebView dataDetectorTypes.
  • UITableView separatorInset, estimatedRowHeight, estimatedSectionHeaderHeight, estimatedSectionFooterHeight, sectionIndexBackgroundColor and sectionIndexTrackingBackgroundColor.
  • UISearchBar searchBarStyle and barTintColor.
  • UIScreen nativeBounds, nativeScale, overscanCompensation and screen modes.
  • UIDatePicker date, minimumDate, maximumDate and countDownDuration.
  • Usability Improvements:
  • You can now hide the UITextEffectsWindow so that it does not obstruct other views on the canvas.
  • The class name and memory address of a UIView’s related UIViewController are now shown in the identity inspector.
  • The focus level, position and zoom are now re-instated where possible after a refresh.
  • The canvas render mode is now selectable on the canvas toolbar.
  • You can now explore a sample iOS application (Soundstagram), available from the new welcome screen, without having to compile or link the Reveal library in Xcode. You will need Xcode 6 and the commandline tools to be set appropriately for this to work.
  • Views hidden from display in the canvas are now shown in italic text in the outline.
  • UIView accessibility ID, label and restoration identifier are now used to annotate outline items.
  • Panning in the canvas now accounts for the zoom level.
  • You can now reset the position and zoom level of the scene in the canvas using ⌘E. Great when you get lost!
  • The protocol version can be viewed by clicking the application version number in the ‘About Reveal’ screen. This can be useful when debugging connection problems to make sure your application is linked against the correct version of the Reveal library.
  • The outline view can now be expanded further horizontally to cater for deep hierarchies displayed on wide screens.
  • Icons in the outline have been completely revised with many new ones added.
  • The window size and position is now restored when the application is launched.
  • Bug Fixes:
  • Installing Reveal on multiple user accounts on the same machine now works.
  • Fixed rendering of applications running in scaled mode.
  • Fixed UISearchBar rendering in the canvas when the background position is changed.
  • Fixed rendering issues with UITextView in the canvas when the font is changed.
  • The forward and backward focus history buttons are now symmetrical :)
  • Fixed a problem where updating a UIButton’s label font would revert a previous colour change.
  • Fixed a crash when undoing a change after refreshing.
  • Zooming in the canvas is now centered on the viewport.
  • Fixed a crash in the font inspector when the font is nil.
  • Fixed an occasional problem where bitmaps were being cleared but not refreshed for child views of a modified view.
  • Fixed an occasional issue where subview modifications were not being reflected in the outline.
  • Fixed a crash that would occasionally occur when closing the window with ⌘W.
  • Fixed a bug where you could drag a file in to the path bar at the top of the screen.
  • Fixed crash when dynamically loading the Reveal library when it's already statically linked. An error message is now logged to the console.
  • Fixed an occasional problem where refreshing Reveal after restarting the inspected app with a modified view hierarchy shows a partially stale snapshot.
  • Fixed a crash when focussing on a transformed view inside a UITransitionView on iPad running iOS 7 in landscape orientation.
  • Fixed a problem where refreshing quickly in succession causes Reveal to lock up.
  • Fixed a problem navigating forward and backward in the focus history when parent views are collapsed.

New in Reveal 1.0.7 Build 2350 (Dec 11, 2014)

  • This update fixes issues with discovering apps while running under OS X 10.10.2.

New in Reveal 1.0.6 Build 2343 (Oct 13, 2014)

  • This update fixes issues with discovering apps running in the iOS Simulator under OS X Yosemite.

New in Reveal 1.0.5 Build 2328 (Sep 15, 2014)

  • Note: The Reveal library has changed. Please remember to update your projects to link to the new library version, and double check that you're linking all of the required frameworks and libraries.
  • Bug Fixes:
  • Fixed a crash in the Reveal library that occurred in iOS 8.0 when serializing UISearchBar.
  • Fixed rendering of content from rotated iOS devices running iOS 8.0.
  • Updated integration guide with instructions that work on iOS 8.0.

New in Reveal 1.0.4 Build 2315 (May 8, 2014)

  • New Features:
  • AppleScript support for refreshing the application snapshot and querying Reveal service. For more information, see the AppleScript Support knowledge base article.
  • Bug Fixes:
  • Fixed a crash in the Reveal library that occured in iOS 7.0.x when serializing views conforming to the UITextInputTraits protocol.

New in Reveal 1.0.3 Build 2287 (Jan 6, 2014)

  • Bug Fixes:
  • Fixed a crash in the server library that occurred when the device or simulator was set to certain locales.
  • Fixed a bug that prevented CALayer color property edits.