{"id":31516,"date":"2021-02-02T16:54:30","date_gmt":"2021-02-02T21:54:30","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=31516"},"modified":"2021-02-02T16:54:30","modified_gmt":"2021-02-02T21:54:30","slug":"xcode-12-5-beta","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2021\/02\/02\/xcode-12-5-beta\/","title":{"rendered":"Xcode 12.5 Beta"},"content":{"rendered":"<p><a href=\"https:\/\/developer.apple.com\/documentation\/xcode-release-notes\/xcode-12_5-beta-release-notes\/\">Apple<\/a>:<\/p>\n<blockquote cite=\"https:\/\/developer.apple.com\/documentation\/xcode-release-notes\/xcode-12_5-beta-release-notes\/\">\n<p>Xcode 12.5 Beta requires a Mac running macOS Big Sur 11 or later.<\/p>\n<p>[&#8230;]<\/p>\n<p>The Reveal Build Products Folder item in the Product menu reveals the build products directory in Finder.<\/p>\n<p>[&#8230;]<\/p>\n<p>Code completion is more reliable in expressions that contain errors, and in expressions that are ambiguous without additional context.<\/p>\n<p>[&#8230;]<\/p>\n<p>Profiling XCTest with Instruments now automatically starts the recording, without a click on the record button.<\/p>\n<\/blockquote>\n\n<p>This would be great if it works, but <a href=\"https:\/\/mjtsai.com\/blog\/2020\/01\/20\/profiling-mac-unit-tests\/\">profiling Mac unit tests<\/a> has been broken for me for years.<\/p>\n\n<blockquote cite=\"https:\/\/developer.apple.com\/documentation\/xcode-release-notes\/xcode-12_5-beta-release-notes\/\">\n<p>Incremental compilation is faster in many cases. When you change code within the body of a struct, class, enum, prototype, or extension, Swift now recompiles far fewer files in that module than before.<\/p>\n<p>Implicit member expressions now support chains of member accesses.<\/p>\n<p>Swift includes more checks when bridging data from Objective-C. In particular, the runtime library aborts your program with a suitable error message if it detects a non-nullable pointer that contains a null value.<\/p>\n<p>Property wrappers are now supported on local variables.<\/p>\n<p>Functions, subscripts, and initializers may now have more than one variadic parameter, as long as all parameters that follow variadic parameters are labeled.<\/p>\n<\/blockquote>\n<p>These are from <a href=\"https:\/\/www.hackingwithswift.com\/articles\/228\/whats-new-in-swift-5-4\">Swift 5.4<\/a>.<\/p>\n\n<p><a href=\"https:\/\/www.avanderlee.com\/swift\/xctexpectfailure-expected-failures\/\">Antoine van der Lee<\/a>:<\/p>\n<blockquote cite=\"https:\/\/www.avanderlee.com\/swift\/xctexpectfailure-expected-failures\/\"><p>While developing apps or framework it&rsquo;s common to refactor a piece of code. Although often temporary, it&rsquo;s common to run into failing tests while the code is still being refactored. Up until we could use <code>XCTExpectFailure<\/code> I would disable those tests and only run them once I <em>expected them to succeed.<\/em><\/p><p>In other words, there are scenarios in which you realise a failure is expected. Without letting Xcode know this is true, your tests would report a failure and your CI would no longer report green.<\/p><p>Another benefit is that Xcode will report a test as failed once an expected failure does not occur. You can see Xcode as a guard to make sure your tests match upon current expectations.<\/p><\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2021\/01\/27\/xcode-12-4\/\">Xcode 12.4<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Apple: Xcode 12.5 Beta requires a Mac running macOS Big Sur 11 or later. [&#8230;] The Reveal Build Products Folder item in the Product menu reveals the build products directory in Finder. [&#8230;] Code completion is more reliable in expressions that contain errors, and in expressions that are ambiguous without additional context. [&#8230;] Profiling XCTest [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2021-02-02T21:54:33Z","apple_news_api_id":"ad9608a3-cef3-48e4-805b-d21a051ed679","apple_news_api_modified_at":"2021-02-02T21:54:34Z","apple_news_api_revision":"AAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/w==","apple_news_api_share_url":"https:\/\/apple.news\/ArZYIo87zSOSAW9IaBR7WeQ","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[4],"tags":[225,30,1891,71,901,268,226],"class_list":["post-31516","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-instruments","tag-mac","tag-macos-11-0","tag-programming","tag-swift-programming-language","tag-testing","tag-xcode"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/31516","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=31516"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/31516\/revisions"}],"predecessor-version":[{"id":31517,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/31516\/revisions\/31517"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=31516"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=31516"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=31516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}