Xliff Editor 2 0 7 – Xcode Localization Made Easy

broken image
Xcode is upgraded once a year, around Sept-Oct, at the same time the new major version of iOS is released. Every update of Xcode brings improvements, new features, bug fixes, and access to the latest SDKs. Throughout the year, a number of smaller updates to Xcode are made, including updates for Swift. A notable newcomer in Xcode 11 is SwiftUI.
A Simple Approach To App Localization Using Xcode, XLIFF And .
Phrase On Github
XLIFF Editor - POEditor Localization Tool
While developers are poring over the Xcode 6 beta released at WWDC 2014, weve been getting questions about some of the big changes and improvements Apple made for localization in iOS 8 and Mac OS X Yosemite. Well go in depth in these topics as we update our iOS App Localization Tutorial, but for now here is a recap of the biggest changes.
XLIFF, which stands for XML Localization Interchange File Format, is an XML-based file format and was created to help standardize localization in 2002. 1 XLIFF allows translators to focus on translating the words rather than constantly editing the code around them. At its most basic form, XLIFF files contain a header and body text. Home / news / Xliff Editor 2.8.4 Xcode localization made easy. (Industrial) Xliff Editor 2.8.4 Xcode localization made easy. 2 hours ago Sisi.
Update Our new iOS localization tutorial for Xcode 6 is ready. Check it out! XLIFF comes to Xcode with easy import and export
Apple touts that the new xliff file file format is an industry standard, which can be used by many localization tools. Thats true. Babble-on has been working with xliff for years, so were happy to see this change. (We can still work with your .strings files of course.) Essentially, xliff is just an xml file structured specifically for localization. Rather than having to go through the unintuitive process of using two, separate command-line functions to export your strings for localization, Apple now lets you do it from the menu bar. Select Editor Export For Localization
The exported xliff file is actually a combination of ALL your .strings files. Those .strings still exist in Xcode you just wont need to deal with them any more! Once weve translated the en.xliff file for you, youll get back a new one for each language: fr.xliff for French, es.xliff for Spanish, and so on. Import those into Xcode using the menu Editor Import Localizations . Easy! Having just 1 file per language is a great improvement.
In case you do love the command line, Apple also introduced new commands to accomplish the same thing: Preview localizations and pseudolocalizations in Interface Builder
Another new feature in Xcode 6 is the ability to view your localizations live in Interface Builder. This is a good way of checking that your interface doesnt break or look sloppy in other languages that are more verbose than English (Im looking at you, German). We hope more developers will take advantage of this tool to improve the design layout for international audiences. In fact, Xcode 6 even lets you preview these issues BEFORE you localize. There is a new Pseudolocalization option for Interface builder offering right-to-left and DOUBLE-length options.
Testing your app using Apples pseudolanguages
Click the target in the Run destination menu and choose Edit Scheme .
On the right, select Options .
Choose a pseudolocalization from the Application Language pop-up menu. Then hit the Close button.
Click Run to relaunch your app in the pseudolanguage.
Apples method is nice because it is built in. However, our developers have told us they like the pseudolocalization files we provide because you can view your texts as
Seeing your texts in a different script makes it easier to spot strings you have overlooked. Apples method simply CAPITALIZES words to indicate you forgot to localize them. We still offer free pseudolocalization, including for the XLIFF format, from our Web site. New localization languages, regions, and locales
The other big news for localization in Xcode 6 is the addition of new languages and locales. Specifically, Apple has added its own localizations for:
Hindi
Indian English
Canadian French
Hong Kong Chinese
In addition, Apple added keyboards for Bengali, Marathi, Urdu, Indian English, Filipino, Slovenian . That means that, even if iOS 8 is not translated into those languages yet, at least users in those countries can use their own alphabet or keyboard to type out messages.
For developers, the bigger news is the lifting of an old iOS restriction about languages and locales. You can now localize your app into ANY language (even Klingon) not just those that Apple has done! This means that if you have a project for India, you can localize in Tamil and Bengali even though Apple doesnt provide system-wide localizations for those languages. That puts iOS on par with Mac OS X in region capabilities. It also means Lord of the Rings fans can add Elvish to the list of languages they support, assuming they find an Elvish translator. http://qmapzoh.xtgem.com/Blog/__xtblog_entry/19340870-reallusion-cartoon-animator-4-02-0627-1-pipeline-freext_blog .
Babble-on cant translate Elvish or Klingon, but we can help you with some of the other localizations you may want. Contact us! 144
Deploying Xcode with Munki Xcode 9 Nothing appears to have changed between Xcode 8 and 9 for deployment. As before, strongly recommended you download the package from the developer site and not use the AppStore version. The previous install script that was used for Xcode 5 still works fine. Use munkiimport to import the Xcode.app you have downloaded from the developer site and then for postinstall scripts use the script detailed in the Xcode 5 section. This has been tested on Xcode 9.3 and no issues found as yet with repeated requests to install packages or accept EULA.
Xcode 8 Nothing seems to have changed between Xcode 7 and 8 for deployment. The previous postinstall scripts continue to work as expected. Xcode 7 The postinstallscript that worked on previous versions of Xcode continues to work for Xcode 7. There is an issue, however, specifically with Xcode 7.2.1 that requires additional attention. While the postinstallscript successfully installs the packages in the /Applications/Xcode.app/Contents/Resources/Packages/ directory, on first launch, Xcode prompts for admin credentials and then proceeds to install those same packages again. The current work around is to add the following lines to the end of the existing postinstallscript to tell Xcode not to check for these packages at launch. disable version check for MobileDeviceDevelopment /usr/bin/defaults write /Library/Preferences/com.apple.dt.Xcode DVTSkipMobileDeviceFrameworkVersionChecking -bool true A possibly bad side-effect of this approach would be if someone later manually installed a newer version of Xcode that came with a newer version of the MobileDeviceDevelopment pkg, Xcode would not attempt to install it.
Xcode 6 The same directions below used to deploy Xcode 5 continue to work for Xcode 6, verified with Xcode 6.1.1. Additionally, the Xcode Command Line Tools can be installed by either downloading them from the Apple Developer site and importing them into Munki, or by following the method described by Rich Trouton on his.
Xcode 5 I recommend you get a Mac Developer membership and use the version of Xcode available on the Developer site; this avoids having to deal with the App Store challenges. If you use the App Store version, see for some advice. I've had good success with using munkiimport to import the Xcode 5 disk image, and then adding the following postinstallscript to the pkginfo. Postinstallscript !/bin/sh make sure all users on this machine are members of the developer group /usr/sbin/dseditgroup -o edit -a everyone -t group developer enable developer mode /usr/sbin/DevToolsSecurity -enable accept Xcode license /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -license accept install embedded packages for PKG in /Applications/Xcode.app/Contents/Resources/Packages/.pkg; do /usr/sbin/installer -pkg '$PKG' -target / done Depending on your exact needs, you may need to modify this script and/or perform additional tasks. Xcode 4.5 There are two extra installers that need to be installed after installing Xcode 4.5.2: Xcode.app/Contents/Resources/Packages/MobileDevice.pkg and Xcode.app/Contents/Resources/Packages/MobileDeviceDevelopment.pkg You should mark them as updatefor Xcode 4.5.2 so they can be uninstalled as well when Xcode is uninstalled. You can import the packages using munkiimport.
!/bin/sh Disable developer mode policies /usr/sbin/DevToolsSecurity -disable Remove a group from developer group /usr/sbin/dseditgroup -o edit -d -t group developer exit 0 Xcode 4.3/4.3.1/4.3.2 for Lion Xcode is now distributed as a self-contained Xcode.app via the Mac App Store (MAS) as well as Apple's Developer Center. The applications are identical, though the MAS version will take a very long time to import to a DMG using munkiimport as it contains a high number of files and is very large. The version from Apple's Developer Center is already a DMG, so it is recommended to use. This does require a developer account to access, but the free Safari developer program does provide access to Xcode.
Xcode requires a!MobileDevice package to be installed on first launch, but we can install this easily with Munki. This can be done with a post-install script, but it is safer to import that package to your repo and set Xcode to require it. It is contained inside Xcode.app, at Xcode.app/Contents/Resources/Packages/MobileDevice.pkg You may also want to download and import the Command Line tools and Auxiliary Tools for Xcode from the Developer site.
In order to properly remove the Command Line Xcode tools, you should be using version 0.8.2 of the Munki tools when importing the Command Line Xcode tools package. Pre-Xcode 4.3 The receipts left on disk after installing versions of Xcode prior to 4.3 do not match the receipt info declared within the Xcode metapackage distribution file, so you will need to add an 'installs' key to prevent Munki from attempting to reinstall Xcode repeatedly. You may also want to add minimumosversion and/or maximumosversion keys to prevent attempted installs on the wrong OS versions. A Simple Approach To App Localization Using Xcode, XLIFF And .
Some examples: Xcode 4.2.1 for Lion. Installs CFBundleIdentifier com.apple.Xcode CFBundleName Xcode CFBundleShortVersionString 3.2.6 path /Developer/Applications/Xcode.app type application maximumosversion 10.6.9 minimumosversion 10.6.6 Uninstalling Xcode (pre-App Store versions of Xcode) Since the package receipt info for Xcode is not useful, it can't be used for uninstalls, either. Fortunately, Apple has provided an uninstall script that Munki can use.
Uninstallmethod /Developer/Library/uninstall-devtools More XCode 4 for Lion notes Now that Xcode 4 is a free download from the Mac App Store, I wanted to be able to use munki to distribute it (as an optional install) to Lion machines. Here's what I did:. 'Purchased' and downloaded Xcode 4.2.1 from the Mac App Store. Control-clicked the 'Install Xcode.app' and chose 'Show Package Contents'. Navigated to the Resources directory, in which I found an Xcode.mpkg and a Packages subdirectory. Copied the Xcode.mpkg and a Packages subdirectory to a new directory named Xcode4.2.1. Used DiskUtility to make a disk image of the Xcode4.2.1 directory.
(Be sure when making a disk image that you choose to make a read-only or compressed disk image. Read-write disk images will cause 'Hash value integrity check' errors unless Munki's PackageVerificationMode is set to 'none' or the installeritemhash is removed from the pkginfo (neither change is recommended). Used munkiimport to import it into my munki repo. Changed minimumosversion to 10.7.2. Added an 'installs' item for /Developer/Applications/Xcode.app as described above. Changed the uninstallmethod to /Developer/Library/uninstall-devtools as described above.
Introduction. Munki 3. Managed Software Center.
Command-line Tools. Munki configuration. Manifests.
Catalogs. Pkginfo. Advanced Munki. Securing the Munki repo.
Preflight And Postflight Scripts. Related tasks. Stupid Munki Tricks. More. Product-specific notes. Adobe Products. Microsoft Office.
Legacy Documentation. Clone this wiki locally.
Xcode 7 Release Notes Xcode 7.3.1 Release Notes Compatibility. Xcode 7.3.1 requires a Mac running OS X 10.11 or later. Xcode 7.3.1 includes SDKs for iOS 9.3, watchOS 2.2, OS X version 10.11.4, and tvOS 9.2. Resolved Issues Provisioning. Fixed the issue where disabling a capability in the Xcode editor would leave the associated entitlement still enabled in the app. You may need to re-download provisioning profiles with the updated capabilities list after disabling a capability.
Xcode no longer copies most entitlements from the provisioning profile into the app's code signature at build time. Entitlements for Wallet, GameCenter (for OS X), Data Protection, and Push notifications are still copied from the profile. All other entitlements should be declared using the Capabilities tab in the Xcode project editor.
Note: If your app configuration is not yet compatible with the corrected entitlements behavior you can temporarily disable the new behavior using: defaults write com.apple.dt.Xcode WantsExtraKeysFor25642247 -bool NO Code Completion. Code completion shows the full title in the code completion pop-over. (25530060) Interface Builder. Fixed performance issue when opening storyboards or xib files with a large number of constraints. (25314053) Localization. Fixed an issue that caused Xcode to crash after importing a localization.
(25395822) Build System. The Enable Clang Module Debugging build setting has been removed in this release, which may cause slower build times and larger debug information. This feature is intended to reduce the size of debug information. Temporarily removing this setting reduces Xcode crashes and problems with incomplete information in the variables view. Note: The Enable Clang Module Debugging setting had been enabled by default. If you had previously disabled it, it now appears as a user-defined build setting named CLANGENABLEMODULEDEBUGGING, which can be removed.
Fixed a bug where a Swift command-line tool target in which -ObjC is passed to the linker would fail to link when built. (25447991) Debugger.
Fixed an issue related to NSSegmentedControls that caused the view debugger to come up blank. (25388091). A fix to the LLDB Python interpreter allows it to correctly perform I/O within Xcode, enabling the script command to work as expected. Printed output from Python scripts appears in the Xcode debug console. (25448007) Source Control Management. Git has been updated to version 2.7.4 in order to improve security. (25181743) Archives Organizer.
Clicking Download dSYMs in the Archives Organizer correctly downloads the dSYMs for application versions uploaded with bitcode. (25430147) Swift.
Swift expressions evaluated in closures with a weak self capture no longer crash Xcode when debugging. Note: Inside such closures, the value of self cannot be used in debugger expressions. Assigning self to another variable within the original closure source enables the value to be referenced in expressions.
A Swift compiler leak when using try? Has been fixed. For additional information, see. (25388323).
The domain of an @objc enum declared in Swift as an ErrorType is now defined consistently in Swift and Objective-C. For additional information, see.
(25418435). Techtool pro 11 0 6 build 5444 . Fixed a class initialization crash that occurred when the first field of a class is a struct with no members or an enum with a single case. (25314388) Deprecations and Removals Notice. OS X 10.11 is the last major release of OS X that supports the previously deprecated garbage collection runtime. Applications or features that depend upon garbage collection may not function properly or may fail to launch when the runtime is removed.
Developers should use Automatic Reference Counting (ARC) or manual retain/release for memory management instead. Xcode 7.3 Release Notes Compatibility. Xcode 7.3 requires a Mac running OS X 10.11 or later. Xcode 7.3 includes SDKs for iOS 9.3, watchOS 2.2, OS X version 10.11.4, and tvOS 9.2. New Features Playgrounds.
Live views in iOS and OS X playgrounds support user interaction. (22418838). Playgrounds rich comments are enhanced to support inline video display. Video tags support declaring a video file to use, as well as options enabling you to supply alternate text, a customized poster frame, and specifications for width and height. For information about using inline video, see in the. (23114189).
XCPlaygroundPage.captureValue(:withIdentifier:) has been deprecated. (24293262) Editor. Code completion enhancements in the Xcode source editor help you enter symbols, methods, and property names with less typing. Code completion now provides more intelligent suggestions by using partial matches and the first letter of each word, in addition to prefix matching.
Static Analyzer. The static analyzer checks for missing localizability. This check is off by default and can be enabled by selecting Yes for Missing localizability in the Static Analyzer Generic Issues build settings. (23414217). The static analyzer checks for misuses of nonnull type qualifiers.
This check is set to On by default for new Xcode projects and is set to Off by default for existing Xcode projects. It can be enabled by selecting Yes for Misuse of nonnull in the Static Analyzer - General Issues section of the target build settings. (19003620) - updated. The static analyzer checks for common misuses of Objective-C generics. (21412472) Alternative Toolchain Support Xcode supports using alternative toolchains, such as toolchains downloaded from.
When using an alternative toolchain, Xcode indexes, builds, and debugs with the alternative toolchain's tools instead of the default tools. Alternative toolchains must be manually downloaded and installed into /Library/Developer/Toolchains/ or /Library/Developer/Toolchains/ to be recognized by Xcode. New toolchain features in Xcode include:. The Components pane in Xcode preferences displays installed toolchains in addition to simulators and documentation.
To activate an installed toolchain, or reactivate the default toolchain, select the desired toolchain in the Toolchains pane of Components preferences. You can also choose a toolchain from the Xcode Toolchains menu. Note: The Xcode Toolchains menu, and the Toolchains pane are only available in Xcode after you have installed alternative toolchains. Xcode must be relaunched after switching toolchains. An activated toolchain remains active across Xcode launches for all of your projects until you switch toolchains again. Xcode displays an active toolchain indicator in the workspace window activity view when an alternative toolchain is active. Clicking this indicator opens the Toolchains pane in Components preferences.
Control-click on an installed toolchain in the Toolchains pane of Components preferences to verify its signature, reveal it in the Finder, or move it to the Trash. Xcode Server bots can be configured to use toolchains installed in /Library/Developer/Toolchains/. Restrictions that apply when using downloaded toolchains:. The Swift code migrator only works when using the default toolchain.
Playgrounds only work when using the default toolchain. Only apps built with the default toolchain may be submitted to the App Store. Activating an alternative toolchain affects the Xcode IDE only. To use an alternative toolchain with command-line tools, use xcrun -toolchain swift and xcodebuild TOOLCHAINS=swift. You can provide either the abbreviated or the full identifier for the toolchain, for example, xcrun -toolchain swift or xcrun -toolchain org.swift.20151231a. Instruments may be unable to demangle certain Swift symbols or track memory usage using the Allocations instrument if the active toolchain includes changes to Swifts mangling scheme or memory allocation runtime.
(23910267) Linker. The Apple private frameworks have been removed from the iOS, watchOS, and tvOS SDKs. If your application fails to link, make sure that you are not using any private frameworks. The use of private frameworks is an unsupported configuration and applications that use non-public APIs will be rejected by the App Store - see. (22330301) Simulator. Simulator.app supports delivering touch pressure to iOS and watchOS by using a Force Touch trackpad.
Legacy support for setting force touch pressure in the watchOS simulator (for example, Shift-Command-2) is deprecated and will be removed in a future release. (24853602) Debugger. Constraint badges in the view debugger present values as ratios for better readability when applicable. (22535224). The view debugger inspector shows referenced views, attributes, and values for a selected constraint. (22266966).
The view debugger shows NSWindow size information in the inspector. (18284986). The view debugger has additional options for the assistant editor. The implementation file of data sources, delegates, and the target of controls can be viewed side by side with the 3D canvas of app views. (15777861).
Improved 3D rotation behavior in the view debugger. (18313502). When inspecting a view in the debugger, objects with properties whose values represent classes such as Target, Delegate, and Data Source show a navigational arrow in the inspector. Click the arrow to open the implementation file of that class.
Pressing the Option key while clicking performs the requested navigation in the assistant editor, instead of replacing the contents of the view debugger canvas. (15884626). GPU frame debugger supports shader profiling for OpenGL ES apps using secondary contexts for resource loading. Phrase On Github
(19538945). Address sanitizer no longer checks for C container overflows by default. To perform this check requires the entire application to be built with Address Sanitizer otherwise it may report false positives.
To turn this check on, set Enable C Container Overflow Checks for Address Sanitizer in your targets build settings to Yes. (24515599). Stepping performance has been improved when connected to devices over slower communication channels.
This improvement is most noticeable when debugging code running on an Apple Watch. (22509498). When using LLDB, Objective-C expression evaluation implicitly imports all modules that were imported in the source context where execution takes place in order to provide a much higher fidelity debugging experience.
In most cases, this change eliminates the need to manually import modules while debugging. For example, using expr @import UIKitcommonly used to ensure that SDK declarations were availableis no longer necessary. (11609847) Debug Navigator. Filtering in the navigator has been enhanced, allowing it to disclose the child items of matches.
(8094288). A contextual menu for items selected in the Views mode of the debug navigator and the canvas allows you four new options:. Print the description of an object. Focus on a views subtree. View constraints on an object. Hide views obscuring or obscured by the selected view. (20455506).
The Views mode of the debug navigator allows you to filter for the address, label, title, and superclass of a view. (23095363) Build System.
WatchOS schemes show new icons when the scheme is configured to run a glance, notification, or complication, making it easier to see at a glance which scheme you have selected. (24694468) General. Enterprise developers can create Developer ID certificates using the Accounts preference pane in Xcode. (22550089) Swift. You can guard statements and declarations with a new if swift(=x.y) build configuration: if the Swift language version is at least x.y, code in the active branch will compile.
Code in the inactive branches wont be parsed or emit syntax diagnostics, so you can mix source code for different versions of Swift in the same file. if swift(=2.2) print(Hello!) elseif swift(1.0) println(Hello!) else This code will not parse or emit diagnostics endif For more information, see. (19823607). All slice types have removeFirst and removeLast methods.
Additionally, ArraySlice.removeFirst preserves element indices. (22536664). Anonymous structs from C are imported as nested struct types in Swift.
(21683348). Three new doc comment fields allow Swift users to cooperate with code completion engine to deliver more effective code completion results:. keyword: specifies concepts that are not fully manifested in declaration names. recommended: indicates other declarations are preferred to the one decorated. recommendedover: indicates the decorated declaration is preferred to those declarations whose names are specified. (23101030). Inside a class, a designated initializer that is either failable ( init?) or throwing ( init throws) is allowed to exit before initializing all stored properties and calling super.init.
This behavior makes designated initializers more consistent with convenience initializers. Convenience initializers can also fail before performing a self.init delegation. (18216578). Curried function syntax has been deprecated, and is slated to be removed in Swift 3. (23364870). The and - operators have been deprecated and are slated to be removed in Swift 3.0. As a replacement, use x += 1 on integer or floating point types and x = x.successor on Index types.
(23708702). Associated types in protocols can be specified with a new associatedtype declaration, to replace the use of typealias. Let fn1 = someView.insertSubview(:at:) let fn2 = someView.insertSubview(:aboveSubview:) let buttonFactory = UIButton.init(type:) For more information, see. (24270055). New file, line, column, and function expressions replace the existing FILE, LINE, COLUMN, and FUNCTION symbols. The FILE-style symbols have been deprecated, and will be removed in Swift 3.
For more information, see. (24637902). Global anyGenerator functions have been changed into initializers on AnyGenerator, in order to help make the API more intuitive and idiomatic. The anyGenerator functions have been deprecated in Swift 2.2 and will be removed in Swift 3. (22883059). The @objc(SomeName) attribute is supported on enums and enum cases to rename the generated Objective-C declaration. (21930334). The Objective-C selector of a Swift method can be determined directly with the selector expression, for example: let sel = selector(insertSubview(:aboveSubview:)) // sel has type Selector Along with this change, the use of string literals as selectors has been deprecated, for example: let sel: Selector = 'insertSubview:aboveSubview:' Generally, such string literals should be replaced with uses of selector, and the compiler provides fix-its that use selector.
In cases where this is not possible (for instance, when referring to the getter of a property), one can still directly construct selectors. For example: let sel = Selector('propertyName'). Note: The compiler is checking the string literals used to construct Selectors to ensure that they are well-formed Objective-C selectors and that there is an @objc method with that selector. For more information, see. (19954874) Resolved Issues Swift. Accept. The Descargar Xcode 7.2 1 Dmg For Mac Free
Swift 2.1 had an issue where targets with large numbers of files would fail to compile under whole-module optimization. This has been resolved. (23878192) Interface Builder. Creating connections via control-drag between multiple displays has been fixed. (14345464). UITableViewCell objects that extend below the bounds of a UITableView draw correctly when scrolled.
(23242098). Fixed the iOS storyboard compilation failures caused by the top and bottom layout guides that were added to the top level of a scene. Online drawing software . These layout guides are now removed when opening a document with Interface Builder. (23348852) Code Signing. Fixed an issue with running an app signed by a free provisioning team. (19748857) Build System.
Product references in the Xcode structure navigator respect the active run destination. For example, if a simulator run destination is selected, then the resolved path for the application product reference becomes the simulator binary path. (9178537). Resolved: Using xcodebuild build -scheme -sdk with a Simulator SDK builds and does not display an Unsupported architecture error. (22993940) Debugger. The Swift debugger no longer crashes when stopping in code that depends on a Swift library or framework that has been distributed in binary form.
(22492040). The option to suppress view debugging has been removed from the Options pane in the Run scheme. Developers can still debug views using the 'Debug View Hierarchy' button in the debug bar. (22636367).
The view debugger inspector now correctly shows all attribute values for Swift projects. (22472665) General. In FileMerge, resolved an issue that made it hard to see the modified character background color. XLIFF Editor - POEditor Localization Tool
(24076916) Known Issues Swift. If a type Inner is declared within another type Outer, and then Inner is referred to from another file in the same module, the Swift compiler may crash during the Merging Swift Module build step. Compile using Whole Module Optimization or avoid nesting types. (22858834) Playgrounds. The hit target of the first link included in a playground markup comment is limited to the very start of the linked text; the hit target may be as small as a single character. Subsequent links in the markup comment are not affected. (24920637).
The first line of a single-line style Swift documentation comment (a code line prefixed with ///) is ignored by Quick Help if the declaration is directly preceded by a multiline-style documentation comment that is not associated with a symbol. Note: This invalid configuration may be generated by external systems, such as CocoaPods. General. A protocol method implementation no longer inherits the protocol methods availability information. This may result in new warnings or errors.
Since the compiler suppresses availability diagnostics in code that is itself unavailable, you may see new diagnostics in method implementations that have stopped inheriting the availability from a protocol. (22734745) Resolved Issues Asset Catalogs. Fixed issues with universal assets when building asset catalogs for watchOS 2.0. (22867369) Crash Logs. Crash logs for app extensions are available in builds distributed via TestFlight.
(22661518) Linker. Fixed the linker assertion when linking against an object file that linked with ld -r (single object prelink) and -exportedsymbolslist options in bitcode mode. It is recommended to regenerate static libraries that have been compiled with such options and are currently getting an assertion. (22897234) Simulator. Resolved issues when using Apple Pay in the simulator and requesting a user's billing address.
(22551685). Fixed issues with Simulator becoming unresponsive when unpairing a Siri Remote or Game Controller.
(22891830) Storyboards. Storyboards now support reusing the same view controller as the destination of multiple relationship segues. For example, a tab bar controller and a navigation controller may now share the same child view controller. (19060323, 20829042). Storyboards and nibs containing UITextViews with 1-11 characters no longer hang when loaded on iOS. (22228164) Swift.
In previous releases of Swift, if a type had a mutable property of protocol type, chained accesses to properties of that property were always treated as mutations of the property, even if the second property was only read, not written. Let widgets = obj.widgets let count = widgets.count This bug has now been fixed. (22953072). Swift data types that are imported into Swift from C struct types (such as CGRect and CGPoint) can now be inspected in the debugger. (23088739). A bug that caused some Swift projects to crash in whole module optimization with a 'program too clever' LLVM error has been fixed. (23200656).
A bug has been fixed where Swift code calling an Objective-C method that took a block returning a nonnull NSString. with a Swift closure would be miscompiled, causing the compiled program to crash. (23285766) General. Resolved an issue where the Finder would mistakenly display a warning indicating that Xcode is damaged and should be moved to the trash.
(22686310). Resolved problems attaching to processes when the Run pane of the Scheme Editor is configured to Wait for executable to be launched. (22753642). Fixed issues related to enabling Game Center and In-App Purchase in the Capabilities pane. (22964531).
Wrapping text fields lay out correctly in the running application after building OS X projects. (23052169). A bug in the optimizer has been fixed that caused in-place sort on mutable collections to crash. (23081349). Resolved issues related to Build and Run on devices running iOS 9.1. (23224972). A bug that caused a program to crash when providing a parameter with a @convention(block) type (including dispatchblockt) that was marked @noescape has been fixed.
(23261912) Known Issues Asset Catalog. Layered image file names may not be longer than 255 characters.
(22974625). UIKit will not render image stack layers correctly when a layer contains a resized image whose aspect ratio doesnt match the aspect ratio of the original image. When resizing an image in a layer stack, choose a width and height that matches the original aspect ratio of the image. (23061910) Debugger. The Swift debugger can crash when stopping in code that depends on a Swift library or framework that has been distributed in binary form. Frameworks written in Swift should be compiled from source as part of the same project that depends on them to guarantee a single, consistent compilation environment. (22492040).
Detaching the debugger from an Apple TV app will cause the app to hang when it logs output. (22493459). Xcodes debugger may not automatically attach to a Today extension run on an iPad Pro when the Notification tab is selected. Select the Today tab instead of the Notification tab. The Today extension will now launch and may be debugged. (22495840) Simulator.
Full support for the tvOS simulator runtime requires OS X 10.11 El Capitan or later. The runtime is supported on OS X Yosemite 10.10.5, but with limited capabilities. Developers running on Yosemite will be unable to pair the Apple TV Remote with the tvOS simulator runtime. (19070665.
When running in an iOS simulator for iOS versions 9.1 and earlier, an app may not communicate with TCP/IP services hosted locally by the Mac using the Macs local IP address. Connect via a loopback address, such as localhost or 127.0.0.1. (22453539). A simulated iOS 9.0 device may boot to a black screen if Xcode is in a different location than when the device first booted. Choose Simulator Reset Content and Settings.
(22697818). To use a Siri Remote with the tvOS simulator, you may first need to unpair it from the Apple TV. To unpair a Siri Remote from an Apple TV, position the remote several meters away from the Apple TV and press and hold Menu and Volume Up (+) simultaneously for 2 seconds. If the Siri Remote immediately pairs with the Apple TV again, move further away and repeat this process. (22908351). When you download an iOS simulator from the Downloads preference pane in Xcode, you may be prompted to authenticate as an admin at the beginning of the first download and at the end of each additional download.
All of these authentications are required to successfully install the selected iOS simulator. (22993731). When duplicating a simulator in the Devices window, the simulator may be listed with an identifier instead of a version number in simulator Run destinations. (23094167). Installing the iOS 9.0 Simulator Runtime from Xcode's Download Preferences can cause Interface Builder in Xcode 6 installs on the same machine to stop functioning. Either avoid installing the iOS 9.0 Simulator Runtime or move /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 9.0.simruntime to a backup location when switching to Xcode 6 and move it back for Xcode 7.
(23230951). iPhone + Watch simulators for WatchKit 2.0 might not be visible in Xcode. Create an iPhone + Watch pair manually:. Choose Window Devices to open the Devices window. Click the Add (+) button in the lower left corner of the Devices window. Choose an iPhone device type, an iOS version, and a paired Apple Watch. Click the Create button.
(23319184). Building and running may intermittently fail in the tvOS Simulator, producing the error Failed to lookup process ID. Try running your app again, or run the app on an Apple TV device. (23486651) Testing. When recording UI tests for tvOS, presses on the menu button may generate duplicate code in the UI test. (22850293). UI tests fail to launch in the tvOS simulator if run with Unit Tests. Run your UI tests with their own scheme, separately from your unit tests.
(23079718) General. Running an app signed with a free provisioning team may fail to launch. Trust the developer certificate under Settings General Profiles Device Management on the device. (19748857). The Devices window sometimes displays paired Apple Watch details alongside an incorrect companion device.
(22908731). Watch Framework and Static Library targets do not display a General tab. Swinsian 2 0 3 music manager and player one .
Configure general settings manually in the target's Info.plist file or in the Build Settings tab. (22932248) Xcode 7.1.1 Release Notes Resolved Issues The following issues have been resolved. General. Resolved a crash when moving or renaming Xcode, and then opening an iOS or Apple TV app in Xcode. (23264753) Interface. Wrapping text fields lay out correctly in the running application after building OS X projects. (23154165) Storyboards.
Storyboards and nibs containing UITextView elements with between 1 and 11 characters no longer hang when loaded on iOS. (23264732).
Fixed a bug that caused iOS xibs/storyboards compiled with ibtool -flatten NO to produce output that could not be read by ibtool -strip. (23283113) Swift. Swift data types that are imported into Swift from C struct types (such as CGRect and CGPoint) can now be inspected in the debugger. (23148897) Testing. xcodebuild no longer hangs when running UI tests on Apple TV.
(23264788) Known Issues General. Theres a bug in the optimizer that causes in place sort on mutable collections to crash. Note: Converting to a Swift closure value and back is not guaranteed to preserve the identity of a dispatchblockt. (22432170).
Editing a file does not trigger a recompile of files that depend upon it if the edits only modify declarations marked private. (22239821). Expressions interpolated in strings may now contain string literals. For example, 'My name is (attributes'name'!)' is now a valid expression. (14050788).
Error messages produced when the type checker cannot solve its constraint system continue to improve in many cases. For example, errors in the body of generic closures (for instance, the argument closure to map) are much more usefully diagnosed. (18835890). Conversions between function types are supported, exhibiting covariance in function result types and contravariance in function parameter types. For example, it is legal to assign a function of type Any - Int to a variable of type String - Any. (19517003) Resolved Issues The following issues listed in previous Xcode release notes have been resolved. Interface Builder.
Fixed: Editor Canvas Show Intrinsic Size Constraints Contributing To Ambiguity works correctly when there is ambiguity in content priority for the selected views using Auto Layout in the Interface Builder canvas. (19689060). Constraints show badges to indicate their relationship and ratios. (15991257). Explicit layout margins set on UIStackView in Interface Builder are properly reflected at runtime.
(21613035) Building. Fixed: If your iOS app embedded a watchOS app and you had a framework for both iOS and watchOS embedded in each app, your project would fail to build when you performed the Archive action. (22183332) Debugging. The visibility of selected constraints when debugging the view hierarchy is improved.
(22092490) General. Launching Xcode or another tool that uses Simulator no longer causes additional Apple Watch devices to be created. (22508374) Swift. Using switch against multiple types with as patterns no longer causes a memory leak. (22587077) Known Issues Asset Catalog. When building asset catalogs for watchOS 2.0, some Universal assets may not appear in the compiled asset catalog.
Make sure your Universal assets for watchOS 2.0 include a 2x or Any scale representation. (22867369) Linker. When using bitcode and ld -r (Xcode single object prelink) together with -exportedsymbol or -exportedsymbolslist, single object prelink succeeds but the linker then asserts when linking against the prelinked object. If you are building a static library using bitcode and single object prelink, do not add exported symbols flags to the link command. If you are currently seeing linker assertions when linking against a 3rd party library, you can disable bitcode or ask for a new library from the library provider. (22897234) Simulator. To use a Siri remote with the tvOS Simulator, you may need to first unpair it from the Apple TV.
To unpair a Siri remote from an Apple TV, position the remote several meters away from the Apple TV, then press and hold MENU and + simultaneously for 2 seconds. If the Siri remote immediately re-pairs with the Apple TV, move further away and try again. (22908351). Simulator.app may become unresponsive when unpairing a Siri Remote or Game Controller. Force-quit Simulator.app and relaunch it. (22891830). When running in the Simulator, an app cannot communicate with TCP/IP services locally hosted by the Mac via the Macs local IP address.
Connect via a loopback address, such as localhost or 127.0.0.1. (22453539). Simulated transactions using Apple Pay in Simulator do not complete if requesting a user's billing address. (22551685).
For full support, the tvOS Simulator Runtime requires the final release of OS X v10.11 El Capitan or newer versions of OS X. The runtime is supported on OS X Yosemite 10.10.5 with limited capabilities. Running on OS X Yosemite is unable to pair the Apple TV Remote with the tvOS Simulator Runtime. (19070665).
An iOS 9.0 simulator may boot to a black screen if Xcode.app is at a different path than when the device first booted. Reset the simulated device's contents and settings from the simulator menu. (22697818). When you download one or more Simulators from the Xcode Downloads preference panel, you are prompted for admin authorization at the beginning of the first download. You may also be prompted for admin authorization again at the end of each download. Responding to all of these prompts is required to successfully install the selected Simulators.
(22993731) Testing. When recording UI tests for tvOS, presses on the menu button may generate duplicate code in the UI test method. (22850293). UI tests fail to launch in the Apple TV simulator if run with unit tests. Run your UI tests with their own scheme, separately from your unit tests.
(23079718) Debugging. The Xcode debugger does not automatically attach to a Today extension run on an iPad Pro when the Notification tab is selected. Select the Today tab, then launch the Today extension for debugging. (22495840). Detaching the debugger from an Apple TV application causes the app to hang when it logs output. (22493459).
Swift data types that are imported into Swift from C struct types, such as CGRect and CGPoint, can not be inspected in the debugger. (23088739) Crash Reports. Crash logs for app extensions are not available in builds distributed via TestFlight. (22661518) Xcode Server. Xcode Server may not be able to join new development teams with versions of OS X Server other than version 4.1.5. Existing team memberships will continue to work correctly.
(22539804) General. Appdelete 4 2 3. When using wait-for-launch in the Run scheme action, Xcode shows Running instead of Waiting to attach in the Activity monitor even though it is waiting for the process to launch.
If you dont launch the process being waited for and switch to launch automatically, Xcode fails to attach to the app for each time this situation has occurred, after which it launches as expected. (22753642). The Devices window sometimes displays paired watch details alongside an incorrect companion device. (22908731). Watch Framework and Static Library targets do not have a General tab in the project editor.
Configure settings manually via the target's Info.plist file or the Build Settings tab, as appropriate. (22932248). Running an app signed with a free provisioning team may fail to launch. Trust the developer certificate in the device SettingsSettings General Profiles Device Management. (19748857). Apps signed with a free provisioning team may not run on a tvOS device. (22636412).
The Finder may mistakenly give a warning that Xcode is damaged and should be moved to the trash. Reboot your Mac. If warnings persist after reboot, reinstall Xcode. (22686310). Certain capabilities, such as Game Center and In-App Purchase, cannot be enabled in the Capabilities pane of the Project Navigator.
Enable and then disable the iCloud capability to restore the ability to enable the other capabilities. (22964531). After building an OS X project, some wrapping, multiline text fields may layout incorrectly in the running app.
Open the storyboard or XIB containing the wrapping, multiline text field, select the text field, open the size inspector, and change Preferred Width to Explicit. (23052169) Xcode 7.0.1 Release Notes App Thinning. The Xcode 7.0.1 release includes several improvements to improve support for adopting bitcode and to help catch issues with app thinning prior to App Store submission. (22783146, 22783168) Xcode 7.0 Release Notes The Xcode 7 release incorporates new features in the IDE as well as updates to Swift and Objective-C. New Features Playgrounds.
Playgrounds can now be set to run manually or automatically when changes are made, as well as stopped during execution. (18058289). Xcode 7 adds pages to playgrounds.
You can add a new page to any playground by selecting File New Playground Page. In the navigator and jump bar, youll see all pages in the playground.
You can add navigation between pages with the new page navigation markup:. Navigation relative to the all pages in the playground:. Go to First Page(@first). Go to Last Page(@last).
Navigation relative to the current page:. Go to Next Page(@next). Go to Previous Page(@previous). Navigation to a specific page:.
Go to Overview(Overview). Go to Sorting(Sorting) (20192277) Interface Builder. Interface Builder adds authoring support for the new UIStackView (iOS 9) and exposes a distribution property for NSStackView (OS X 10.11).
There is an Embed In Stack View button at the bottom right of the canvas. (18420765). Interface Builder adds support for NSDateComponentsFormatter, NSDateIntervalFormatter, NSEnergyFormatter, NSMassFormatter, and NSLengthFormatter in OS X apps. (17236851). Notes from the Interface Builder identity inspector are now included in -export-strings-file output and XLIFF files exported using the Export For Localization feature in the project editor. (18023555).
Background placeholders on custom views and other containers can be hidden on the Interface Builder canvas by selecting Editor Canvas Show Background Placeholders. (20580948). Storyboard References may now be deployed to iOS 8, OS X 10.10, and watchOS 1. Backwards-deployed Storyboard References may not be connected to relationship segues and may not refer to storyboards in external bundles. (21275172). Interface Builder now supports placeholder references for scenes in other storyboards, and segues that cross storyboard boundaries. (9565583) Build System.
The new build setting Objective-C Generated Interface Header Name ( SWIFTOBJCINTERFACEHEADERNAME) controls the name used for the header that is generated by the Swift compiler for use in import statements in Objective-C. (18063617). You can configure Xcode to run the unifdef tool on your headers during a Copy Headers build phase. This is enabled with the COPYHEADERSRUNUNIFDEF build setting, and the flags to pass are controlled by the COPYHEADERSUNIFDEFFLAGS build settings. Use: $man unifdef in a Terminal window for more information on what flags unifdef accepts. (18786269). The Xcode build system no longer automatically inherits the environment used to launch the app when running in the IDE.
This prevents unnecessary rebuilds when Xcode.app is opened from the command line. If necessary, users can opt in to the old behavior by entering this command in Terminal: $defaults write com.apple.dt.Xcode UseSanitizedBuildSystemEnvironment -bool NO. Let x = String.init(5) let stringType = String.self let y = stringType.init(5) let oneTwoThree = 1, 2, 3.map(String.init).reduce(', combine: +).init is still implicit when constructing using a static type, as in String(5).init is required when using dynamic type objects or when referring to the initializer as a function value. (21375845). Enums and cases can now be marked indirect, which causes the associated value for the enum to be stored indirectly, allowing for recursive data structures to be defined. Let x: AnyObject = NSObject.self let y = x as! NSObject.Type Arrays, dictionaries, and sets that contain class objects successfully bridge with NSArray, NSDictionary, and NSSet as well.
Objective-C APIs that provide NSArray. objects, such as -NSURLSessionConfiguration protocolClasses, now work correctly when used in Swift. (16238475). print and reflection via Mirrors is able to report both the current case and payload for all enums with multiple payload types. The only remaining enum types that do not support reflection are @objc enums and enums imported from C. (21739870).
Enum cases with payloads can be used as functions. Other special fields are highlighted in QuickHelp, as well as rendering support for all of Markdown. (20180161).
The CFunctionPointer U type has been removed. C function types are specified using the new @convention(c) attribute. Like other function types, @convention(c) T - U is not nullable unless made optional. The @objcblock attribute for specifying block types has also been removed and replaced with @convention(block). Methods and functions have the same rules for parameter names. You can omit providing an external parameter name with . To further simplify the model, the shorthand for specifying a parameter name has been removed, as have the special rules for default arguments.
/// Returns the first maxLength elements of self, /// or all the elements if self has fewer than maxLength elements. Prefix(maxLength: Int) - SubSequence /// Returns the last maxLength elements of self, /// or all the elements if self has fewer than maxLength elements. Suffix(maxLength: Int) - SubSequence /// Returns all but the first n elements of self. DropFirst(n: Int) - SubSequence /// Returns all but the last n elements of self. DropLast(n: Int) - SubSequence /// Retu.
broken image