Today we are starting the Early Access Program for AppCode 2018.1, the first build is already available for download on our site. This EAP does not require an active subscription, so you can use it for free until the build expiration date.
Considerable resolution improvements
This build brings the correct resolution for implicit modules in Swift. It means that completion and navigation should now work correctly for some silently imported modules, such as
Dispatch and lots of others:
Resolution for Objective-C frameworks in Swift (such as
PureLayout) should be also improved.
AppCode now correctly understands Swift extension type bounds and shows the completion for such frameworks as
The following fixes are implemented for the mixed Objective-C/Swift code:
- Class runtime type, SEL/IMP types, generic pointers, and some parameter types mentioned in this issue are now correctly translated to Swift
- Rename refactoring and Find Usages now work for Swift properties used in Objective-C code
Besides this, we have also fixed an annoying issue where false-negative warnings were shown in the editor for
OCMock framework macros.
If you have experienced any of these issues in the past, make sure to give this build a try and let us know what you think!
AppCode now supports the wireless debugging introduced in Xcode 9 and shows devices connected via the network in the device list, allowing to debug your application on them. Note that the device needs to be paired using Xcode first.
Some of the most important improvements for C++ include:
- Support for
switchstatements with initializers from C++17
- Fixes for Rename and Change Signature refactorings that now handle sibling functions correctly
- And more
Read more about them in the CLion blog.
There are two modes in the AppCode Project tool window (
- Project view that shows all the Xcode projects included into the Xcode workspace and all the files included in each Xcode project.
- Files view that shows all the files in the project directory and also some files and directories related to the project (such as
When you execute some actions, such as Inspect Code, the meaning of the Whole Project scope is the subset of files in the Files view mode, not only the files included into the Xcode project.
For some users, it can be inconvenient, and that’s why we implemented the support for project scopes:
Now the following default scopes are shown in the Project tool window right under the two default view modes:
- Project Source Files – files included in the Xcode project.
- Project Non-Source Files – files from the project directory, that are not included in the Xcode project.
- Changed Files. This scope is shown if you have version control enabled in your project and shows all the changed files tracked by the VCS
- Default. This scope contains files from the Default changelist. Any other custom changelists will be added to this dropdown too:
The Project Source Files scope is now available via Scopes drop-down in Find in Path dialog and Custom Scope drop-down in Inspection Scope dialog, allowing you to limit the search or inspection scope to only files included in the Xcode project.
Moreover, you can define your custom scopes in Preferences | Appearance & Behavior | Scopes and specify the subset of project files:
You can also set a specific color for each scope in Preferences | Appearance & Behavior | File Colors to easily distinguish files, that belong to the specific scope in the Files view mode:
And even more
+instanceoption in Generate dialog (
⌘N) for Objective-C was renamed to
+sharedInstanceand now uses the template specified in this issue
- Replace ‘id’ return type with ‘instancetype’ intention is now available for Objective-C:
- Support for SE-0190 (Target environment platform condition) for Swift
- Scratches are now visible in the Files view mode
- Improved Xcode keymap, Xcode color scheme, and better settings when choosing the Xcode behavior on the Welcome screen. Read about them in the separate blog post.
That’s it! See the full list of fixes here.
Your AppCode team
The Drive to Develop