From bdf3167fdc53fc666b85cecd08fb7df385ddbad6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Boris=20Bu=CC=88gling?= Date: Sun, 26 Jun 2016 16:22:04 +0200 Subject: [PATCH 1/2] Fixes plist serialization with Xcode 8 beta 1 Some frameworks are gone and others are now required by `Xcode3Core`. Loading of new frameworks is conditional on the Xcode version so that both Xcode 7 and 8 are supported. --- lib/xcodeproj/plist/ffi/dev_tools_core.rb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/xcodeproj/plist/ffi/dev_tools_core.rb b/lib/xcodeproj/plist/ffi/dev_tools_core.rb index b9a57b861..53151310d 100644 --- a/lib/xcodeproj/plist/ffi/dev_tools_core.rb +++ b/lib/xcodeproj/plist/ffi/dev_tools_core.rb @@ -60,6 +60,7 @@ def self.respondsToSelector(instance, sel) end XCODE_PATH = Pathname.new(`xcrun xcode-select --print-path`.strip).dirname + XCODE_VERSION = Gem::Version.new(`xcodebuild -version`.split(' ')[1]) def self.load_xcode_framework(framework) Fiddle.dlopen(XCODE_PATH.join(framework).to_s) @@ -70,14 +71,22 @@ def self.load_xcode_framework(framework) # @note The IB frameworks only seem to be necessary on Xcode 7+ # def self.load_xcode_frameworks + is_80_or_later = XCODE_VERSION >= Gem::Version.new('8.0') + DevToolsCore.silence_stderr do load_xcode_framework('SharedFrameworks/DVTFoundation.framework/DVTFoundation') load_xcode_framework('SharedFrameworks/DVTServices.framework/DVTServices') load_xcode_framework('SharedFrameworks/DVTPortal.framework/DVTPortal') load_xcode_framework('SharedFrameworks/DVTSourceControl.framework/DVTSourceControl') - load_xcode_framework('SharedFrameworks/CSServiceClient.framework/CSServiceClient') + load_xcode_framework('SharedFrameworks/CSServiceClient.framework/CSServiceClient') unless is_80_or_later load_xcode_framework('Frameworks/IBFoundation.framework/IBFoundation') load_xcode_framework('Frameworks/IBAutolayoutFoundation.framework/IBAutolayoutFoundation') + if is_80_or_later + load_xcode_framework('SharedFrameworks/DVTAnalyticsClient.framework/DVTAnalyticsClient') + load_xcode_framework('SharedFrameworks/DVTAnalytics.framework/DVTAnalytics') + load_xcode_framework('SharedFrameworks/DVTDocumentation.framework/DVTDocumentation') + load_xcode_framework('SharedFrameworks/SourceKit.framework/SourceKit') + end load_xcode_framework('Frameworks/IDEFoundation.framework/IDEFoundation') load_xcode_framework('PlugIns/Xcode3Core.ideplugin/Contents/MacOS/Xcode3Core') end From af5cf64d849b9a2fe8c455192a07d1c51485f6c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Boris=20Bu=CC=88gling?= Date: Sun, 26 Jun 2016 16:24:53 +0200 Subject: [PATCH 2/2] [Changelog] Entry for #389 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d612f99e9..1e3dbec17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,11 @@ [Boris Bügling](https://github.com/neonichu) [#390](https://github.com/CocoaPods/Xcodeproj/pull/390) +* Fix plist serialization with Xcode 8 beta 1. + [Boris Bügling](https://github.com/neonichu) + [#389](https://github.com/CocoaPods/Xcodeproj/pull/389) + + ##### Bug Fixes * None.