current position：Home>What's new in Xcode 14
What's new in Xcode 14
2022-06-24 09:29:26【Small set】
From year to year WWDC, In addition to releasing the latest iOS、iPadOS、watchOS、macOS Outside , Apple will also update Xcode. New version of the Xcode It brings a lot of new features , To adapt to new systems , At the same time, it provides more convenient tools to improve our development efficiency . Another important thing is ,Xcode 14 The initial package size has now been reduced to 7G+, comparison Xcode 13 Of 10G+, Less 30%, Of course , It is quite large after installation , therefore 128G Of mac Movies are not enough .
Usually Xcode Release Note They are all long articles , In addition to the new features , There are also known problems 、 Problems solved and other information . Let's sort out some important updates here , For developers' reference .
Xcode 14 Support single target Multi platform , And conditionally include platform specific dependencies 、 Code 、 Resources and build settings .
Xcode 14 Now support is iPadOS Development DriverKit The driver .
Xcode 14 Include a new watchOS Application default template , It will WatchKit Applications and WatchKit Application extension targets are combined into a single Watch Application target , This simplifies the code 、 Asset and localization management . At present, single objective can be watchOS Application deployment to watchOS 7 And higher .
Apple Clang compiler
stay Xcode New created in C++ Project default use C++20.
Use one 1024x1024 To simplify the application icon , The image is automatically resized for its target . Select the single size option in the property inspector of the application icon in the asset catalog . However, you can still use “ All sizes ” Option overrides a single size .
Now we can put Finder Paste the copied image in the asset catalog outline directly .
You can now double-click the image slot to display the open file panel and select replace asset .
You can specify the default rendering mode for custom symbols in the asset catalog . take “ Render as ” Property is set to automatic 、 Templates 、 Multicolor or layered . Then the system uses the default rendering mode of the symbol , Unless you explicitly override it .
Xcode A new auxiliary editor is provided for building logs , Focus on parallelism to help identify build performance issues . This visualization displays events as a grid of colored blocks , Where the vertical axis represents the degree of parallelism , The horizontal axis represents time .
Xcode 14 Can now be linked to their Swift Target dependencies compile targets in parallel .
Swift Drivers are choreographers Swift Components invoked by the front end , Now integrated into Xcode In the construction system of , Allow fine-grained dependencies on other build system tasks and explicit scheduling .
stay Build Phases In the pane , You can now batch edit files in the multi select table view . When editing the platform filter column of the table , The system applies the changes to all files in the selection .
only Swift The framework and dynamic library target of can use EAGER_LINKING Build setup select a new build system optimization . When this feature is enabled ,Xcode Will be in Swift Issue additional artifacts during compilation , This allows Xcode Unblock downstream targets earlier , This increases parallelism in the build .
The memory graph debugger now displays all incoming and outgoing references in the memory graph . You can adjust the set of visible nodes in the new pop-up box .
LLDB Now in Xcode And display progress updates on the command line for long-running operations .
Now you can use xcrun crashlog
When debugging an application , The thread performance checker displays runtime performance issues in the issue navigator and source code editor . Select the thread performance checker check box in the running scenario of the application target to enable this feature .
Xcode Now in Report navigator A new startup log is displayed in . This log indicates Xcode install 、 Actions taken for startup and commissioning .
Xcode Medium Swift-DocC Now support is Objective-C and C API Build documentation .
Xcode 14 Generated Swift-DocC The documentation site includes a new navigation sidebar , For browsing and filtering documents .
By default ,Xcode 14 Generated Swift-DocC The document is now compatible with most managed services , Include GitHub Pages.
Now? , When the time filter is active , Aggregate functions that run over time intervals can calculate their results more accurately , Based only on the total interval portion that intersects the current time filter .
The details filter now allows you to apply the filter to specific columns when viewing the list view . You can add these types of filters by using the context menu on the displayed value or by entering a tag and then selecting the tag type .
Instruments Now include a new Swift Concurrency Templates , For tracking Swift The use and behavior of concurrency primitives . This template contains ：
A new kind of Swift Tasks Tools , It can display the task status changing with time 、 Summarize task status 、 Provide detailed task descriptions 、 Explain the structured concurrency relationship and build the call tree for the task to create the call stack .
A new kind of Swift Actors Tools , Used to track task behavior across participants , Show the task queue for each participant , And help diagnose the problem of participant isolation code and contention .
These tools need Swift Tools in the concurrent runtime , The runtime starts with macOS 13、iOS 16、tvOS 16 and watchOS 9 Or later .
Instruments There's a new one Hang Tracing Tools , It can show when the main thread of the application cannot process incoming events for a long time , This may lead to UI Hang up . Besides ,Time Profiler and CPU Profiler The instrument also shows potential hangs .
Instruments A new Core ML Templates . This template includes new Core ML And nerve engine instruments and GPU And time analyzer tools . Use this template to help analyze Core ML And understand how your model works on your device . The combination comes from Core ML、 Neural engines and GPU The information of the instrument can help track the operation performed on the acceleration hardware . Every event 、 Both model and sub model have aggregated time series data .
Instruments There's a new one Runloop Tools , It shows runloop Use of and individual iterations , And visually distinguish all in the process runloop Of runloop Sleep and busy intervals .
UISplitViewController Now supports the use of Mac Catalyst Built Mac Sidebar in application . To enable the sidebar , Please set the main style in the property inspector of the split view controller .
Interface Builder Now you can update asynchronously scene.
WKWebView A new check box appears on the , To enable standard find and replace UI.
You can now select symbols through the control's image inspector , Use NSButton and NSImageView edit SF Default configuration of symbols （ Including Fonts 、 Scale and thickness ）.
Support iOS Of UIPasteControl To allow you to paste content by clicking without pasting notifications or alerts . This control can be used for any UIPasteConfigurationSupporting The object of （ for example ,UIResponder） To receive the pasted content .
Access and search through the symbol library tab SF Symbol . Open the library （Xcode > View > Show Library） And click Symbols tab . You can drag symbols into the source code editor .
Now you can export local Swift Localization of packages .Xcode For all projects and... Contained in the project or workspace Swift Package generates a single localized Directory . You can also use
xcodebuild -importLocalizations and xcodebuild -exportLocalizations To export or import Swift package .
Xcode Organizer The suspend report in provides diagnostic reports about application hangs , To help improve responsiveness . Generate reports for individual application versions and sort by severity . They include sample logs of hangs that occur on the main thread that can be used for debugging , And the affected equipment and iOS Version Statistics .
Xcode Previews You can now run on physical devices , Without having to include an application , This makes it easy to preview frames and... On the device Swift package .Xcode The appropriate signing application will be automatically prepared for your default signing identity to host the preview .
Xcode Previews You can now use the scheme's runnable file when deciding which application to use to host the preview . for example , In a full version of an application and beta Both versions share a framework in the project ,Xcode Previews The application to be launched will be automatically selected for preview according to the selection in the scheme .
Xcode Now show each preview on its own dedicated page , This includes allowing you to change common settings （ Such as color scheme 、 Orientation or dynamic font size ） New controls without writing any code .
Xcode Preview is now interactive by default .
Refactoring operations have been added to add explicit Codable Realization .
Sign and distribute
Develop signed DriverKit The driver now supports automatic signing . Distribution still requires Apple Approval , And in Apple Developer Manually configure additional features on the web site .
The emulator now supports on with Apple silicon or T2 The processor Mac On the computer macOS 13 Middle runtime ,iOS 16 Remote notification in . The simulator supports Apple Push Notification Service Sandbox Environmental Science . Your server can connect to APNS The sandbox (api.sandbox.push.apple.com) Send remote notifications to applications running in the simulator . Each simulator will generate the simulator and run it Mac Registration token unique to the hardware combination .
The length of the device registration token is variable . The token in the simulator may be larger than the current physical device token . Do not hard code any specific length or format for these tokens .
simctl Control of simulation position is now supported , Including operation scenarios and interpolation between waypoint lists .
In addition to the existing runtime bundle format , The simulator now also supports runtime disk images . The disk image is added to a system management storage location protected by system integrity protection , And installed at the installation point of system management .
Now? , When scrolling through documents ,Xcode Pin the elements of the code structure to the top of the editor .
Swift Errors in the file now provide a fix for adding missing imports .
Added right Swift Syntax highlighting and editing support for regular expressions . You can now use Editor > Refactoring > Convert to Regex Builder Converts a regular expression literal to its equivalent regular expression builder . When you move the insertion point within the regular expression text , The closed substructure of the regular expression highlights .(82540073)
Xcode A file template is now provided , For your iOS Applications choose the touch alternative . You can use the touch alternative method in the with Apple Chip Mac Interact with your application on - for example , Hold down Option Key to use the touchpad as a virtual touch screen . To enable the , Please select File > New File > iOS > Resource > Touch Alternatives, Then configure the newly added com.apple.uikit.inputalternatives.plist File to choose a touch alternative for your app .(84271952)
Swift The code completion in now provides a member initializer fragment .
Swift The code completion in now provides if case Fragment of statement .
Xcode Now it is possible to App Store Connect The products purchased in the app in are synchronized to StoreKit In profile , In order to be in Xcode Test faster in settings StoreKit. There is also an updated transaction manager , With filter and transaction checker .
Conflicting modules with the same name can now be disambiguated by aliases . The package list introduces a new parameter “moduleAliases”; It allows users to define unique names for conflicting modules , And build them with a new name , Without changing any source code .
Now you can Xcode Use in Swift Package Command plug-ins , The method is to use File > Packages Menu or Xcode Context menu in file navigator . Any command plug-ins provided by package dependencies are available . You can choose which targets of the package the command applies to , And you can pass custom parameters to plug-ins . The report navigator displays the results of running the command . If the command indicates that it needs to write to the source file of the package ,Xcode Will request permission and let you check the plug-in's source code before running the plug-in .
Xcode For now Swift Package The plug-in provides XcodeProjectPlugin API, The API Expanded Swift Package Manager Of PackagePlugin API. Use this API, Plug ins can be obtained Xcode A simplified description of the project structure . This gives way to Xcode The adapter plug-in running in can be in Xcode Use this API. You can still go through Xcode Medium Swift Package usage has not been adapted to support Xcode The package of the project .
XCTAssertThrows() And related macros are now capturing division NSException Throw an exception other than （ Include C++ abnormal ） Provides richer diagnostic information .
XCTest Include a new Swift-only Expected type XCTKeyPathExpectation, It can be used instead of XCTKVOExpectation To observe yes Swift Change of key path .
Test targets that have parallelization enabled in the activity plan or test plan are now executed in parallel with each other . before , Each target is executed serially , The test classes in each target are executed in parallel . Now? ,Xcode Execute the target and its classes in parallel , I prefer to fan out across targets first . For a suite with a large number of targets , This can lead to significant acceleration （ Results vary depending on hardware and suite composition ）. Test targets that do not enable parallelization continue to execute independently of other targets .
Once the test is completed and errors or faults are encountered ,XCTest System diagnostics will be captured . This behavior can be achieved through a test plan or xcodebuild Command line interface for control .
author[Small set],Please bring the original link to reprint, thank you.
The sidebar is recommended
- The project cannot run after webpack installation
- Webpack dev server cannot start normally cannot find module 'webpack / bin / config yargs‘
- Win32-c++ - string encoding conversion -windows H-windows system general
- Docker use case (use docker to build spark cluster)
- MYCAT read / write separation and MySQL master-slave synchronization
- Android upload picture
- Ajax request request plug-in on uniapp for its own use
- The foundation of embedded Linux: the introduction of c++ (I) class
- Computer composition principle (I) introduction to system
guess what you like
Embedded Linux foundation: c++ (III) program structure
Embedded Linux foundation: c++ (IV) overloaded pointer reference
Foundation of embedded Linux: c++ (2) access control
Principles of computer composition (II) instruction system
Data in TXT text for two-dimensional interpolation operation drawing
Why pyodps operation local file reports no such file
How does WinForm change the cursor style during dragging?
Analysis of stream stream in Java
The computer mouse can't click the file. What's the matter
About service discovery: the edge server is configured. The first PCoIP is not configured. I am the last horizon target server. It is always red. It is the same with a horizon connection server
- Protues emulates serial communication. How should RXD accept a string and display it on the LCD screen?
- Ifstream cannot open file
- (version 2022) a set of tutorials to complete the installation of k8s into actual combat | key configurations of production environment
- Java algorithm solution -- array
- The past and present life of servlet and springboot
- SpringBoot 2. X setting request and corresponding code
- SDK not setup error during ue5 publishing solution
- Xiaobai needs to learn MySQL - incremental statistical SQL
- Zero foundation self-study SQL course | having clause
- [bug] @jsonformat has a problem that the date is less than one day when it is used
- Zero foundation self-study SQL course | syntax sequence and execution sequence of SQL statements
- Zero foundation self-study SQL course | sub query
- Zero foundation self-study SQL course | related sub query
- Vue/js operation DOM full screen switch, full screen open dom requestFullscreen()；
- [angular] angular removes the input spaces. The angular user-defined attribute instruction - prohibits the input box from entering spaces - and deletes the spaces in the copied content (with other solutions attached)
- JDK installation under Windows system
- JDK1.8 deployment under Linux system
- C++ implements a staff management system based on polymorphism (with source code)
- L01_ How is an SQL query executed?
- Unable to access the applet from the wechat official account on the PC
- Some questions about CSV file operation
- Notes to problems - Microsoft Visual c++ 14.0 or greater is required
- node_ Why is the module package getting bigger and bigger?
- A positive integer is called a number associated with 7 if it can be divided by 7 or if the number on a digit in its decimal representation is 7. Now we give a positive integer n (n < 1000) and judge whether it is a number related to 7
- How to convert numeric characters to decimal integers and output them?
- Shimadzu gc-2014c software is all in English. How to convert it into Chinese
- Two dimensional interpolation operation data in desktop TXT for 2D drawing
- Cruise is now charging for its driverless ride service in San Francisco
- Google warns that both apple and Android phones have been attacked by Italian Spyware
- Windows 11 preview update for deeper onedrive consolidation
- Google introduces 5 new features of Chrome browser for IOS
- Ayaneo air, the world's first OLED windows lightweight handheld, opened crowdfunding and quickly exceeded HK $1million
- The first M2 MacBook Pro arrives in New Zealand and Australia
- Do me a favor. I don't understand this question
- Springboot -- integrating druid and mybatisplus to realize SQL monitoring
- Is that right? Solve
- STM32 has two functions with one key without long and short press
- Follow me to learn about Linux operation and maintenance
- Springboot Foundation (17): hot deployment