diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 9545c42b7..b9461d5e5 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1,12 +1,12 @@ # This configuration was generated by # `rubocop --auto-gen-config` -# on 2021-01-15 10:50:09 -0800 using RuboCop version 0.47.1. +# on 2024-10-26 17:01:43 -0700 using RuboCop version 0.47.1. # The point is for the user to remove these configuration records # one by one as the offenses are removed from the code base. # Note that changes in the inspected code, or installation of new # versions of RuboCop, may require this file to be generated again. -# Offense count: 2 +# Offense count: 3 Lint/IneffectiveAccessModifier: Exclude: - 'lib/xcodeproj/differ.rb' @@ -37,11 +37,11 @@ Lint/UselessAccessModifier: - 'lib/xcodeproj/project/object_list.rb' - 'lib/xcodeproj/scheme.rb' -# Offense count: 1365 +# Offense count: 1486 # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns. # URISchemes: http, https Metrics/LineLength: - Max: 186 + Max: 212 # Offense count: 3 # Configuration parameters: CountKeywordArgs. @@ -54,7 +54,7 @@ Performance/Casecmp: Exclude: - 'lib/xcodeproj/project/object/helpers/file_references_factory.rb' -# Offense count: 13 +# Offense count: 14 # Cop supports --auto-correct. # Configuration parameters: MaxKeyValuePairs. Performance/RedundantMerge: @@ -109,7 +109,7 @@ Style/MultilineMethodCallIndentation: - 'spec/scheme/environment_variables_spec.rb' - 'spec/scheme_spec.rb' -# Offense count: 12 +# Offense count: 13 # Cop supports --auto-correct. Style/MutableConstant: Exclude: @@ -133,7 +133,7 @@ Style/RedundantSelf: - 'lib/xcodeproj/project/object.rb' - 'lib/xcodeproj/project/object/group.rb' -# Offense count: 4 +# Offense count: 7 # Cop supports --auto-correct. # Configuration parameters: AllowForAlignment. Style/SpaceAroundOperators: diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d4798148..e73ea2fda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ [Brett-Best](https://github.com/Brett-Best), [gui17aume](https://github.com/gui17aume) [#985](https://github.com/CocoaPods/Xcodeproj/pull/985) +* Update default build settings for Xcode 16.0. + [Eric Amorde](https://github.com/amorde) + [#987](https://github.com/CocoaPods/Xcodeproj/pull/987) + ##### Bug Fixes * None. diff --git a/lib/xcodeproj/constants.rb b/lib/xcodeproj/constants.rb index f613f3afc..89b777e60 100644 --- a/lib/xcodeproj/constants.rb +++ b/lib/xcodeproj/constants.rb @@ -4,23 +4,23 @@ module Xcodeproj module Constants # @return [String] The last known iOS SDK (stable). # - LAST_KNOWN_IOS_SDK = '14.0' + LAST_KNOWN_IOS_SDK = '18.0' # @return [String] The last known OS X SDK (stable). # - LAST_KNOWN_OSX_SDK = '10.15' + LAST_KNOWN_OSX_SDK = '15.0' # @return [String] The last known tvOS SDK (stable). # - LAST_KNOWN_TVOS_SDK = '14.0' + LAST_KNOWN_TVOS_SDK = '18.0' # @return [String] The last known visionOS SDK (unstable). # - LAST_KNOWN_VISIONOS_SDK = '1.0' + LAST_KNOWN_VISIONOS_SDK = '2.0' # @return [String] The last known watchOS SDK (stable). # - LAST_KNOWN_WATCHOS_SDK = '7.0' + LAST_KNOWN_WATCHOS_SDK = '11.0' # @return [String] The last known archive version to Xcodeproj. # @@ -36,15 +36,15 @@ module Constants # @return [String] The last known object version to Xcodeproj. # - LAST_KNOWN_OBJECT_VERSION = 70 + LAST_KNOWN_OBJECT_VERSION = 77 # @return [String] The last known Xcode version to Xcodeproj. # - LAST_UPGRADE_CHECK = '1500' + LAST_UPGRADE_CHECK = '1600' # @return [String] The last known Xcode version to Xcodeproj. # - LAST_SWIFT_UPGRADE_CHECK = '1500' + LAST_SWIFT_UPGRADE_CHECK = '1600' # @return [String] The version of `.xcscheme` files supported by Xcodeproj # @@ -132,7 +132,7 @@ module Constants # @return [Hash] The compatibility version string for different object versions. # COMPATIBILITY_VERSION_BY_OBJECT_VERSION = { - 70 => 'Xcode 16.0', + 77 => 'Xcode 16.0', 63 => 'Xcode 15.3', 60 => 'Xcode 15.0', 56 => 'Xcode 14.0', @@ -272,22 +272,47 @@ module Constants 'DYLIB_COMPATIBILITY_VERSION' => '1', 'DYLIB_CURRENT_VERSION' => '1', 'DYLIB_INSTALL_NAME_BASE' => '@rpath', + 'ENABLE_MODULE_VERIFIER' => 'YES', + 'GENERATE_INFOPLIST_FILE' => 'YES', 'INSTALL_PATH' => '$(LOCAL_LIBRARY_DIR)/Frameworks', + 'MARKETING_VERSION' => '1.0', + 'MODULE_VERIFIER_SUPPORTED_LANGUAGES' => 'objective-c objective-c++', + 'MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS' => 'gnu17 gnu++20', 'PRODUCT_NAME' => '$(TARGET_NAME:c99extidentifier)', 'SKIP_INSTALL' => 'YES', + 'SWIFT_EMIT_LOC_STRINGS' => 'YES', 'VERSION_INFO_PREFIX' => '', 'VERSIONING_SYSTEM' => 'apple-generic', }.freeze, [:ios, :framework] => { + 'ENABLE_MODULE_VERIFIER' => 'YES', + 'GENERATE_INFOPLIST_FILE' => 'YES', 'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks @loader_path/Frameworks', + 'MARKETING_VERSION' => '1.0', 'TARGETED_DEVICE_FAMILY' => '1,2', + 'SWIFT_EMIT_LOC_STRINGS' => 'YES', }.freeze, [:osx, :framework] => { 'COMBINE_HIDPI_IMAGES' => 'YES', + 'ENABLE_MODULE_VERIFIER' => 'YES', 'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/../Frameworks @loader_path/Frameworks', + 'SWIFT_EMIT_LOC_STRINGS' => 'YES', + }.freeze, + [:osx, :framework, :objc] => { + 'ENABLE_MODULE_VERIFIER' => 'YES', + 'GENERATE_INFOPLIST_FILE' => 'YES', + 'MARKETING_VERSION' => '1.0', + 'SWIFT_EMIT_LOC_STRINGS' => 'YES', + }.freeze, + [:osx, :framework, :swift] => { + 'ENABLE_MODULE_VERIFIER' => 'YES', + 'GENERATE_INFOPLIST_FILE' => 'YES', + 'MARKETING_VERSION' => '1.0', + 'MODULE_VERIFIER_SUPPORTED_LANGUAGES' => 'objective-c objective-c++', + 'MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS' => 'gnu17 gnu++20', + 'SWIFT_EMIT_LOC_STRINGS' => 'YES', }.freeze, [:watchos, :framework] => { - 'APPLICATION_EXTENSION_API_ONLY' => 'YES', 'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks @loader_path/Frameworks', 'TARGETED_DEVICE_FAMILY' => '4', }.freeze, @@ -297,6 +322,8 @@ module Constants }.freeze, [:framework, :swift] => { 'DEFINES_MODULE' => 'YES', + 'BUILD_LIBRARY_FOR_DISTRIBUTION' => 'YES', + 'SWIFT_INSTALL_OBJC_HEADER' => 'NO', }.freeze, [:osx, :static_library] => { 'EXECUTABLE_PREFIX' => 'lib', @@ -326,30 +353,47 @@ module Constants [:application] => { 'ASSETCATALOG_COMPILER_APPICON_NAME' => 'AppIcon', 'ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME' => 'AccentColor', + 'CURRENT_PROJECT_VERSION' => '1', + 'GENERATE_INFOPLIST_FILE' => 'YES', + 'MARKETING_VERSION' => '1.0', + 'SWIFT_EMIT_LOC_STRINGS' => 'YES', }.freeze, [:ios, :application] => { 'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks', 'TARGETED_DEVICE_FAMILY' => '1,2', }.freeze, + [:ios, :application, :swift] => { + 'INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents' => 'YES', + 'INFOPLIST_KEY_UIMainStoryboardFile' => 'Main', + 'INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad' => 'UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight', + 'INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone' => 'UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight', + }.freeze, [:osx, :application] => { 'COMBINE_HIDPI_IMAGES' => 'YES', + 'CURRENT_PROJECT_VERSION' => '1', + 'GENERATE_INFOPLIST_FILE' => 'YES', 'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/../Frameworks', + 'MARKETING_VERSION' => '1.0', + 'SWIFT_EMIT_LOC_STRINGS' => 'YES', }.freeze, [:watchos, :application] => { + 'ENABLE_PREVIEWS' => 'YES', + 'INFOPLIST_KEY_UISupportedInterfaceOrientations' => 'UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown', + 'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks', 'SKIP_INSTALL' => 'YES', 'TARGETED_DEVICE_FAMILY' => '4', }.freeze, [:tvos, :application] => { 'ASSETCATALOG_COMPILER_APPICON_NAME' => 'App Icon & Top Shelf Image', + 'INFOPLIST_KEY_UILaunchStoryboardName' => 'LaunchScreen', + 'INFOPLIST_KEY_UIMainStoryboardFile' => 'Main', + 'INFOPLIST_KEY_UIUserInterfaceStyle' => 'Automatic', 'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks', 'TARGETED_DEVICE_FAMILY' => '3', }.freeze, [:tvos, :application, :swift] => { 'ENABLE_PREVIEWS' => 'YES', }.freeze, - [:watchos, :application, :swift] => { - 'ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES' => 'YES', - }.freeze, [:bundle] => { 'WRAPPER_EXTENSION' => 'bundle', 'SKIP_INSTALL' => 'YES', @@ -358,9 +402,14 @@ module Constants 'SDKROOT' => 'iphoneos', }.freeze, [:osx, :bundle] => { - 'COMBINE_HIDPI_IMAGES' => 'YES', - 'INSTALL_PATH' => '$(LOCAL_LIBRARY_DIR)/Bundles', - 'SDKROOT' => 'macosx', + 'COMBINE_HIDPI_IMAGES' => 'YES', + 'CURRENT_PROJECT_VERSION' => '1', + 'GENERATE_INFOPLIST_FILE' => 'YES', + 'INFOPLIST_KEY_NSPrincipalClass' => '', + 'INSTALL_PATH' => '$(LOCAL_LIBRARY_DIR)/Bundles', + 'MARKETING_VERSION' => '1.0', + 'SDKROOT' => 'macosx', + 'SWIFT_EMIT_LOC_STRINGS' => 'YES', }.freeze, }.freeze @@ -369,10 +418,10 @@ module Constants PROJECT_DEFAULT_BUILD_SETTINGS = { :all => { 'ALWAYS_SEARCH_USER_PATHS' => 'NO', + 'ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS' => 'YES', 'CLANG_ANALYZER_NONNULL' => 'YES', 'CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION' => 'YES_AGGRESSIVE', - 'CLANG_CXX_LANGUAGE_STANDARD' => 'gnu++14', - 'CLANG_CXX_LIBRARY' => 'libc++', + 'CLANG_CXX_LANGUAGE_STANDARD' => 'gnu++20', 'CLANG_ENABLE_MODULES' => 'YES', 'CLANG_ENABLE_OBJC_ARC' => 'YES', 'CLANG_ENABLE_OBJC_WEAK' => 'YES', @@ -400,7 +449,8 @@ module Constants 'CLANG_WARN_UNREACHABLE_CODE' => 'YES', 'COPY_PHASE_STRIP' => 'NO', 'ENABLE_STRICT_OBJC_MSGSEND' => 'YES', - 'GCC_C_LANGUAGE_STANDARD' => 'gnu11', + 'ENABLE_USER_SCRIPT_SANDBOXING' => 'YES', + 'GCC_C_LANGUAGE_STANDARD' => 'gnu17', 'GCC_NO_COMMON_BLOCKS' => 'YES', 'GCC_WARN_64_TO_32_BIT_CONVERSION' => 'YES', 'GCC_WARN_ABOUT_RETURN_TYPE' => 'YES_ERROR', @@ -408,6 +458,7 @@ module Constants 'GCC_WARN_UNINITIALIZED_AUTOS' => 'YES_AGGRESSIVE', 'GCC_WARN_UNUSED_FUNCTION' => 'YES', 'GCC_WARN_UNUSED_VARIABLE' => 'YES', + 'LOCALIZATION_PREFERS_STRING_CATALOGS' => 'YES', 'MTL_FAST_MATH' => 'YES', 'PRODUCT_NAME' => '$(TARGET_NAME)', 'SWIFT_VERSION' => '5.0', @@ -417,7 +468,6 @@ module Constants 'ENABLE_NS_ASSERTIONS' => 'NO', 'MTL_ENABLE_DEBUG_INFO' => 'NO', 'SWIFT_COMPILATION_MODE' => 'wholemodule', - 'SWIFT_OPTIMIZATION_LEVEL' => '-O', }.freeze, :debug => { 'DEBUG_INFORMATION_FORMAT' => 'dwarf', @@ -427,7 +477,7 @@ module Constants 'GCC_PREPROCESSOR_DEFINITIONS' => ['DEBUG=1', '$(inherited)'], 'MTL_ENABLE_DEBUG_INFO' => 'INCLUDE_SOURCE', 'ONLY_ACTIVE_ARCH' => 'YES', - 'SWIFT_ACTIVE_COMPILATION_CONDITIONS' => 'DEBUG', + 'SWIFT_ACTIVE_COMPILATION_CONDITIONS' => 'DEBUG $(inherited)', 'SWIFT_OPTIMIZATION_LEVEL' => '-Onone', }.freeze, }.freeze diff --git a/lib/xcodeproj/project/object/root_object.rb b/lib/xcodeproj/project/object/root_object.rb index 3c48f9035..b2d6d4635 100644 --- a/lib/xcodeproj/project/object/root_object.rb +++ b/lib/xcodeproj/project/object/root_object.rb @@ -55,7 +55,7 @@ class PBXProject < AbstractObject # @return [String] preferred project object version # - attribute :preferred_project_object_version, String, '70' + attribute :preferred_project_object_version, String, Constants::LAST_KNOWN_OBJECT_VERSION.to_s # @return [PBXGroup] the group containing the references to products of # the project. diff --git a/lib/xcodeproj/project/object_attributes.rb b/lib/xcodeproj/project/object_attributes.rb index e532565a9..427672155 100644 --- a/lib/xcodeproj/project/object_attributes.rb +++ b/lib/xcodeproj/project/object_attributes.rb @@ -140,7 +140,7 @@ def validate_value(object) "for attribute: #{inspect}" unless acceptable else raise "[Xcodeproj] Type checking error: got `#{object.isa}` for " \ - "attribute: #{inspect}" unless acceptable + "attribute: #{inspect} - #{object.uuid} #{object.to_ascii_plist}" unless acceptable end end diff --git a/spec/fixtures/CommonBuildSettings/configs/OSX_Bundle/OSX_Bundle_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/OSX_Bundle/OSX_Bundle_base.xcconfig index 9c54a62a5..27e63a2e5 100644 --- a/spec/fixtures/CommonBuildSettings/configs/OSX_Bundle/OSX_Bundle_base.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/OSX_Bundle/OSX_Bundle_base.xcconfig @@ -1,8 +1,12 @@ COMBINE_HIDPI_IMAGES = YES -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist +CURRENT_PROJECT_VERSION = 1 +GENERATE_INFOPLIST_FILE = YES +INFOPLIST_KEY_NSPrincipalClass = INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Bundles MACOSX_DEPLOYMENT_TARGET = ___BESTMACOSVERSION___ +MARKETING_VERSION = 1.0 PRODUCT_BUNDLE_IDENTIFIER = ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASRFC1034IDENTIFIER___ SDKROOT = macosx SKIP_INSTALL = YES +SWIFT_EMIT_LOC_STRINGS = YES WRAPPER_EXTENSION = bundle diff --git a/spec/fixtures/CommonBuildSettings/configs/Objc_OSX_Framework/Objc_OSX_Framework_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Objc_OSX_Framework/Objc_OSX_Framework_base.xcconfig index e00609661..f77905ecb 100644 --- a/spec/fixtures/CommonBuildSettings/configs/Objc_OSX_Framework/Objc_OSX_Framework_base.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/Objc_OSX_Framework/Objc_OSX_Framework_base.xcconfig @@ -4,13 +4,18 @@ DEFINES_MODULE = YES DYLIB_COMPATIBILITY_VERSION = 1 DYLIB_CURRENT_VERSION = 1 DYLIB_INSTALL_NAME_BASE = @rpath -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist +ENABLE_MODULE_VERIFIER = YES +GENERATE_INFOPLIST_FILE = YES INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Frameworks LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/../Frameworks @loader_path/Frameworks MACOSX_DEPLOYMENT_TARGET = ___BESTMACOSVERSION___ +MARKETING_VERSION = 1.0 +MODULE_VERIFIER_SUPPORTED_LANGUAGES = objective-c objective-c++ +MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = gnu17 gnu++20 PRODUCT_BUNDLE_IDENTIFIER = ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASRFC1034IDENTIFIER___ PRODUCT_NAME = $(TARGET_NAME:c99extidentifier) SDKROOT = macosx SKIP_INSTALL = YES +SWIFT_EMIT_LOC_STRINGS = YES VERSIONING_SYSTEM = apple-generic VERSION_INFO_PREFIX = diff --git a/spec/fixtures/CommonBuildSettings/configs/Objc_OSX_Native/Objc_OSX_Native_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Objc_OSX_Native/Objc_OSX_Native_base.xcconfig index c3b308891..668e9fdd7 100644 --- a/spec/fixtures/CommonBuildSettings/configs/Objc_OSX_Native/Objc_OSX_Native_base.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/Objc_OSX_Native/Objc_OSX_Native_base.xcconfig @@ -2,8 +2,11 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor CODE_SIGN_ENTITLEMENTS = ___PACKAGENAME___/___PACKAGENAMEASIDENTIFIER___.entitlements COMBINE_HIDPI_IMAGES = YES -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist +CURRENT_PROJECT_VERSION = 1 +GENERATE_INFOPLIST_FILE = YES LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/../Frameworks MACOSX_DEPLOYMENT_TARGET = ___BESTMACOSVERSION___ +MARKETING_VERSION = 1.0 PRODUCT_BUNDLE_IDENTIFIER = ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASRFC1034IDENTIFIER___ SDKROOT = macosx +SWIFT_EMIT_LOC_STRINGS = YES diff --git a/spec/fixtures/CommonBuildSettings/configs/Objc_iOS_Framework/Objc_iOS_Framework_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Objc_iOS_Framework/Objc_iOS_Framework_base.xcconfig index e81ac2b29..8822e37e0 100644 --- a/spec/fixtures/CommonBuildSettings/configs/Objc_iOS_Framework/Objc_iOS_Framework_base.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/Objc_iOS_Framework/Objc_iOS_Framework_base.xcconfig @@ -3,14 +3,19 @@ DEFINES_MODULE = YES DYLIB_COMPATIBILITY_VERSION = 1 DYLIB_CURRENT_VERSION = 1 DYLIB_INSTALL_NAME_BASE = @rpath -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist +ENABLE_MODULE_VERIFIER = YES +GENERATE_INFOPLIST_FILE = YES INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Frameworks IPHONEOS_DEPLOYMENT_TARGET = latest_iphoneos LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks +MARKETING_VERSION = 1.0 +MODULE_VERIFIER_SUPPORTED_LANGUAGES = objective-c objective-c++ +MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = gnu17 gnu++20 PRODUCT_BUNDLE_IDENTIFIER = ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASRFC1034IDENTIFIER___ PRODUCT_NAME = $(TARGET_NAME:c99extidentifier) SDKROOT = iphoneos SKIP_INSTALL = YES +SWIFT_EMIT_LOC_STRINGS = YES TARGETED_DEVICE_FAMILY = 1,2 VERSIONING_SYSTEM = apple-generic VERSION_INFO_PREFIX = diff --git a/spec/fixtures/CommonBuildSettings/configs/Objc_iOS_Native/Objc_iOS_Native_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Objc_iOS_Native/Objc_iOS_Native_base.xcconfig deleted file mode 100644 index 39c34904e..000000000 --- a/spec/fixtures/CommonBuildSettings/configs/Objc_iOS_Native/Objc_iOS_Native_base.xcconfig +++ /dev/null @@ -1,8 +0,0 @@ -ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon -ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist -IPHONEOS_DEPLOYMENT_TARGET = latest_iphoneos -LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks -PRODUCT_BUNDLE_IDENTIFIER = ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASRFC1034IDENTIFIER___ -SDKROOT = iphoneos -TARGETED_DEVICE_FAMILY = 1,2 diff --git a/spec/fixtures/CommonBuildSettings/configs/Objc_iOS_Native/Objc_iOS_Native_debug.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Objc_iOS_Native/Objc_iOS_Native_debug.xcconfig deleted file mode 100644 index 6ed274f15..000000000 --- a/spec/fixtures/CommonBuildSettings/configs/Objc_iOS_Native/Objc_iOS_Native_debug.xcconfig +++ /dev/null @@ -1 +0,0 @@ -#include "Objc_iOS_Native/Objc_iOS_Native_base.xcconfig" diff --git a/spec/fixtures/CommonBuildSettings/configs/Objc_iOS_Native/Objc_iOS_Native_release.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Objc_iOS_Native/Objc_iOS_Native_release.xcconfig deleted file mode 100644 index 73cdaba1c..000000000 --- a/spec/fixtures/CommonBuildSettings/configs/Objc_iOS_Native/Objc_iOS_Native_release.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "Objc_iOS_Native/Objc_iOS_Native_base.xcconfig" -VALIDATE_PRODUCT = YES diff --git a/spec/fixtures/CommonBuildSettings/configs/Objc_tvOS_Framework/Objc_tvOS_Framework_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Objc_tvOS_Framework/Objc_tvOS_Framework_base.xcconfig index 3b9a61525..66f289596 100644 --- a/spec/fixtures/CommonBuildSettings/configs/Objc_tvOS_Framework/Objc_tvOS_Framework_base.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/Objc_tvOS_Framework/Objc_tvOS_Framework_base.xcconfig @@ -3,13 +3,18 @@ DEFINES_MODULE = YES DYLIB_COMPATIBILITY_VERSION = 1 DYLIB_CURRENT_VERSION = 1 DYLIB_INSTALL_NAME_BASE = @rpath -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist +ENABLE_MODULE_VERIFIER = YES +GENERATE_INFOPLIST_FILE = YES INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Frameworks LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks +MARKETING_VERSION = 1.0 +MODULE_VERIFIER_SUPPORTED_LANGUAGES = objective-c objective-c++ +MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = gnu17 gnu++20 PRODUCT_BUNDLE_IDENTIFIER = ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASRFC1034IDENTIFIER___ PRODUCT_NAME = $(TARGET_NAME:c99extidentifier) SDKROOT = appletvos SKIP_INSTALL = YES +SWIFT_EMIT_LOC_STRINGS = YES TARGETED_DEVICE_FAMILY = 3 TVOS_DEPLOYMENT_TARGET = latest_appletvos VERSIONING_SYSTEM = apple-generic diff --git a/spec/fixtures/CommonBuildSettings/configs/Objc_tvOS_Native/Objc_tvOS_Native_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Objc_tvOS_Native/Objc_tvOS_Native_base.xcconfig index 4e9e6ece5..a6fc0916d 100644 --- a/spec/fixtures/CommonBuildSettings/configs/Objc_tvOS_Native/Objc_tvOS_Native_base.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/Objc_tvOS_Native/Objc_tvOS_Native_base.xcconfig @@ -1,8 +1,14 @@ ASSETCATALOG_COMPILER_APPICON_NAME = App Icon & Top Shelf Image ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist +CURRENT_PROJECT_VERSION = 1 +GENERATE_INFOPLIST_FILE = YES +INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen +INFOPLIST_KEY_UIMainStoryboardFile = Main +INFOPLIST_KEY_UIUserInterfaceStyle = Automatic LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks +MARKETING_VERSION = 1.0 PRODUCT_BUNDLE_IDENTIFIER = ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASRFC1034IDENTIFIER___ SDKROOT = appletvos +SWIFT_EMIT_LOC_STRINGS = YES TARGETED_DEVICE_FAMILY = 3 TVOS_DEPLOYMENT_TARGET = latest_appletvos diff --git a/spec/fixtures/CommonBuildSettings/configs/Objc_watchOS_Framework/Objc_watchOS_Framework_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Objc_watchOS_Framework/Objc_watchOS_Framework_base.xcconfig index a0b438c5c..35eac98d8 100644 --- a/spec/fixtures/CommonBuildSettings/configs/Objc_watchOS_Framework/Objc_watchOS_Framework_base.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/Objc_watchOS_Framework/Objc_watchOS_Framework_base.xcconfig @@ -1,16 +1,20 @@ -APPLICATION_EXTENSION_API_ONLY = YES CURRENT_PROJECT_VERSION = 1 DEFINES_MODULE = YES DYLIB_COMPATIBILITY_VERSION = 1 DYLIB_CURRENT_VERSION = 1 DYLIB_INSTALL_NAME_BASE = @rpath -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist +ENABLE_MODULE_VERIFIER = YES +GENERATE_INFOPLIST_FILE = YES INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Frameworks LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks +MARKETING_VERSION = 1.0 +MODULE_VERIFIER_SUPPORTED_LANGUAGES = objective-c objective-c++ +MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = gnu17 gnu++20 PRODUCT_BUNDLE_IDENTIFIER = ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASRFC1034IDENTIFIER___ PRODUCT_NAME = $(TARGET_NAME:c99extidentifier) SDKROOT = watchos SKIP_INSTALL = YES +SWIFT_EMIT_LOC_STRINGS = YES TARGETED_DEVICE_FAMILY = 4 VERSIONING_SYSTEM = apple-generic VERSION_INFO_PREFIX = diff --git a/spec/fixtures/CommonBuildSettings/configs/Objc_watchOS_Native Extension/Objc_watchOS_Native Extension_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Objc_watchOS_Native Extension/Objc_watchOS_Native Extension_base.xcconfig deleted file mode 100644 index b0cb62c32..000000000 --- a/spec/fixtures/CommonBuildSettings/configs/Objc_watchOS_Native Extension/Objc_watchOS_Native Extension_base.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist -LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @executable_path/../../Frameworks -PRODUCT_BUNDLE_IDENTIFIER = ___ASSOCIATEDTARGET_bundleIdentifier___.watchkitapp.watchkitextension -PRODUCT_NAME = ${TARGET_NAME} -SDKROOT = watchos -SKIP_INSTALL = YES -TARGETED_DEVICE_FAMILY = 4 -WATCHOS_DEPLOYMENT_TARGET = latest_watchos diff --git a/spec/fixtures/CommonBuildSettings/configs/Objc_watchOS_Native Extension/Objc_watchOS_Native Extension_debug.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Objc_watchOS_Native Extension/Objc_watchOS_Native Extension_debug.xcconfig deleted file mode 100644 index e40fa26f0..000000000 --- a/spec/fixtures/CommonBuildSettings/configs/Objc_watchOS_Native Extension/Objc_watchOS_Native Extension_debug.xcconfig +++ /dev/null @@ -1 +0,0 @@ -#include "Objc_watchOS_Native Extension/Objc_watchOS_Native Extension_base.xcconfig" diff --git a/spec/fixtures/CommonBuildSettings/configs/Objc_watchOS_Native Extension/Objc_watchOS_Native Extension_release.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Objc_watchOS_Native Extension/Objc_watchOS_Native Extension_release.xcconfig deleted file mode 100644 index 6441dde55..000000000 --- a/spec/fixtures/CommonBuildSettings/configs/Objc_watchOS_Native Extension/Objc_watchOS_Native Extension_release.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "Objc_watchOS_Native Extension/Objc_watchOS_Native Extension_base.xcconfig" -VALIDATE_PRODUCT = YES diff --git a/spec/fixtures/CommonBuildSettings/configs/Objc_watchOS_Native/Objc_watchOS_Native_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Objc_watchOS_Native/Objc_watchOS_Native_base.xcconfig index 2ff06f48d..2e7a62850 100644 --- a/spec/fixtures/CommonBuildSettings/configs/Objc_watchOS_Native/Objc_watchOS_Native_base.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/Objc_watchOS_Native/Objc_watchOS_Native_base.xcconfig @@ -1,9 +1,14 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor -IBSC_MODULE = ___PACKAGENAMEASIDENTIFIER____Extension -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist -PRODUCT_BUNDLE_IDENTIFIER = ___ASSOCIATEDTARGET_bundleIdentifier___.watchkitapp +CURRENT_PROJECT_VERSION = 1 +ENABLE_PREVIEWS = YES +GENERATE_INFOPLIST_FILE = YES +INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown +LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks +MARKETING_VERSION = 1.0 +PRODUCT_BUNDLE_IDENTIFIER = ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___.watchkitapp SDKROOT = watchos SKIP_INSTALL = YES +SWIFT_EMIT_LOC_STRINGS = YES TARGETED_DEVICE_FAMILY = 4 WATCHOS_DEPLOYMENT_TARGET = latest_watchos diff --git a/spec/fixtures/CommonBuildSettings/configs/Project/Project_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Project/Project_base.xcconfig index 4def93055..271c77524 100644 --- a/spec/fixtures/CommonBuildSettings/configs/Project/Project_base.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/Project/Project_base.xcconfig @@ -1,8 +1,8 @@ ALWAYS_SEARCH_USER_PATHS = NO +ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES CLANG_ANALYZER_NONNULL = YES CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE -CLANG_CXX_LANGUAGE_STANDARD = gnu++14 -CLANG_CXX_LIBRARY = libc++ +CLANG_CXX_LANGUAGE_STANDARD = gnu++20 CLANG_ENABLE_MODULES = YES CLANG_ENABLE_OBJC_ARC = YES CLANG_ENABLE_OBJC_WEAK = YES @@ -30,7 +30,8 @@ CLANG_WARN_UNREACHABLE_CODE = YES CLANG_WARN__DUPLICATE_METHOD_MATCH = YES COPY_PHASE_STRIP = NO ENABLE_STRICT_OBJC_MSGSEND = YES -GCC_C_LANGUAGE_STANDARD = gnu11 +ENABLE_USER_SCRIPT_SANDBOXING = YES +GCC_C_LANGUAGE_STANDARD = gnu17 GCC_NO_COMMON_BLOCKS = YES GCC_WARN_64_TO_32_BIT_CONVERSION = YES GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR @@ -38,6 +39,7 @@ GCC_WARN_UNDECLARED_SELECTOR = YES GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE GCC_WARN_UNUSED_FUNCTION = YES GCC_WARN_UNUSED_VARIABLE = YES +LOCALIZATION_PREFERS_STRING_CATALOGS = YES MTL_FAST_MATH = YES PRODUCT_NAME = $(TARGET_NAME) SWIFT_VERSION = 5.0 diff --git a/spec/fixtures/CommonBuildSettings/configs/Project/Project_debug.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Project/Project_debug.xcconfig index 27bf4ad37..5e668e97a 100644 --- a/spec/fixtures/CommonBuildSettings/configs/Project/Project_debug.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/Project/Project_debug.xcconfig @@ -6,5 +6,5 @@ GCC_OPTIMIZATION_LEVEL = 0 GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 $(inherited) MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE ONLY_ACTIVE_ARCH = YES -SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG +SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG $(inherited) SWIFT_OPTIMIZATION_LEVEL = -Onone diff --git a/spec/fixtures/CommonBuildSettings/configs/Project/Project_release.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Project/Project_release.xcconfig index 3f4ba9725..487bee2a1 100644 --- a/spec/fixtures/CommonBuildSettings/configs/Project/Project_release.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/Project/Project_release.xcconfig @@ -3,4 +3,3 @@ DEBUG_INFORMATION_FORMAT = dwarf-with-dsym ENABLE_NS_ASSERTIONS = NO MTL_ENABLE_DEBUG_INFO = NO SWIFT_COMPILATION_MODE = wholemodule -SWIFT_OPTIMIZATION_LEVEL = -O diff --git a/spec/fixtures/CommonBuildSettings/configs/Swift_OSX_Framework/Swift_OSX_Framework_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Swift_OSX_Framework/Swift_OSX_Framework_base.xcconfig index e00609661..a919949b5 100644 --- a/spec/fixtures/CommonBuildSettings/configs/Swift_OSX_Framework/Swift_OSX_Framework_base.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/Swift_OSX_Framework/Swift_OSX_Framework_base.xcconfig @@ -1,16 +1,23 @@ +BUILD_LIBRARY_FOR_DISTRIBUTION = YES COMBINE_HIDPI_IMAGES = YES CURRENT_PROJECT_VERSION = 1 DEFINES_MODULE = YES DYLIB_COMPATIBILITY_VERSION = 1 DYLIB_CURRENT_VERSION = 1 DYLIB_INSTALL_NAME_BASE = @rpath -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist +ENABLE_MODULE_VERIFIER = YES +GENERATE_INFOPLIST_FILE = YES INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Frameworks LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/../Frameworks @loader_path/Frameworks MACOSX_DEPLOYMENT_TARGET = ___BESTMACOSVERSION___ +MARKETING_VERSION = 1.0 +MODULE_VERIFIER_SUPPORTED_LANGUAGES = objective-c objective-c++ +MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = gnu17 gnu++20 PRODUCT_BUNDLE_IDENTIFIER = ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASRFC1034IDENTIFIER___ PRODUCT_NAME = $(TARGET_NAME:c99extidentifier) SDKROOT = macosx SKIP_INSTALL = YES +SWIFT_EMIT_LOC_STRINGS = YES +SWIFT_INSTALL_OBJC_HEADER = NO VERSIONING_SYSTEM = apple-generic VERSION_INFO_PREFIX = diff --git a/spec/fixtures/CommonBuildSettings/configs/Swift_OSX_Native/Swift_OSX_Native_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Swift_OSX_Native/Swift_OSX_Native_base.xcconfig index c3b308891..668e9fdd7 100644 --- a/spec/fixtures/CommonBuildSettings/configs/Swift_OSX_Native/Swift_OSX_Native_base.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/Swift_OSX_Native/Swift_OSX_Native_base.xcconfig @@ -2,8 +2,11 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor CODE_SIGN_ENTITLEMENTS = ___PACKAGENAME___/___PACKAGENAMEASIDENTIFIER___.entitlements COMBINE_HIDPI_IMAGES = YES -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist +CURRENT_PROJECT_VERSION = 1 +GENERATE_INFOPLIST_FILE = YES LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/../Frameworks MACOSX_DEPLOYMENT_TARGET = ___BESTMACOSVERSION___ +MARKETING_VERSION = 1.0 PRODUCT_BUNDLE_IDENTIFIER = ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASRFC1034IDENTIFIER___ SDKROOT = macosx +SWIFT_EMIT_LOC_STRINGS = YES diff --git a/spec/fixtures/CommonBuildSettings/configs/Swift_iOS_Framework/Swift_iOS_Framework_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Swift_iOS_Framework/Swift_iOS_Framework_base.xcconfig index e81ac2b29..b28fb3845 100644 --- a/spec/fixtures/CommonBuildSettings/configs/Swift_iOS_Framework/Swift_iOS_Framework_base.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/Swift_iOS_Framework/Swift_iOS_Framework_base.xcconfig @@ -1,16 +1,23 @@ +BUILD_LIBRARY_FOR_DISTRIBUTION = YES CURRENT_PROJECT_VERSION = 1 DEFINES_MODULE = YES DYLIB_COMPATIBILITY_VERSION = 1 DYLIB_CURRENT_VERSION = 1 DYLIB_INSTALL_NAME_BASE = @rpath -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist +ENABLE_MODULE_VERIFIER = YES +GENERATE_INFOPLIST_FILE = YES INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Frameworks IPHONEOS_DEPLOYMENT_TARGET = latest_iphoneos LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks +MARKETING_VERSION = 1.0 +MODULE_VERIFIER_SUPPORTED_LANGUAGES = objective-c objective-c++ +MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = gnu17 gnu++20 PRODUCT_BUNDLE_IDENTIFIER = ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASRFC1034IDENTIFIER___ PRODUCT_NAME = $(TARGET_NAME:c99extidentifier) SDKROOT = iphoneos SKIP_INSTALL = YES +SWIFT_EMIT_LOC_STRINGS = YES +SWIFT_INSTALL_OBJC_HEADER = NO TARGETED_DEVICE_FAMILY = 1,2 VERSIONING_SYSTEM = apple-generic VERSION_INFO_PREFIX = diff --git a/spec/fixtures/CommonBuildSettings/configs/Swift_iOS_Native/Swift_iOS_Native_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Swift_iOS_Native/Swift_iOS_Native_base.xcconfig index 39c34904e..deff21752 100644 --- a/spec/fixtures/CommonBuildSettings/configs/Swift_iOS_Native/Swift_iOS_Native_base.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/Swift_iOS_Native/Swift_iOS_Native_base.xcconfig @@ -1,8 +1,15 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist +CURRENT_PROJECT_VERSION = 1 +GENERATE_INFOPLIST_FILE = YES +INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES +INFOPLIST_KEY_UIMainStoryboardFile = Main +INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight +INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight IPHONEOS_DEPLOYMENT_TARGET = latest_iphoneos LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks +MARKETING_VERSION = 1.0 PRODUCT_BUNDLE_IDENTIFIER = ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASRFC1034IDENTIFIER___ SDKROOT = iphoneos +SWIFT_EMIT_LOC_STRINGS = YES TARGETED_DEVICE_FAMILY = 1,2 diff --git a/spec/fixtures/CommonBuildSettings/configs/Swift_tvOS_Framework/Swift_tvOS_Framework_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Swift_tvOS_Framework/Swift_tvOS_Framework_base.xcconfig index 3b9a61525..8ff0483e6 100644 --- a/spec/fixtures/CommonBuildSettings/configs/Swift_tvOS_Framework/Swift_tvOS_Framework_base.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/Swift_tvOS_Framework/Swift_tvOS_Framework_base.xcconfig @@ -1,15 +1,22 @@ +BUILD_LIBRARY_FOR_DISTRIBUTION = YES CURRENT_PROJECT_VERSION = 1 DEFINES_MODULE = YES DYLIB_COMPATIBILITY_VERSION = 1 DYLIB_CURRENT_VERSION = 1 DYLIB_INSTALL_NAME_BASE = @rpath -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist +ENABLE_MODULE_VERIFIER = YES +GENERATE_INFOPLIST_FILE = YES INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Frameworks LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks +MARKETING_VERSION = 1.0 +MODULE_VERIFIER_SUPPORTED_LANGUAGES = objective-c objective-c++ +MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = gnu17 gnu++20 PRODUCT_BUNDLE_IDENTIFIER = ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASRFC1034IDENTIFIER___ PRODUCT_NAME = $(TARGET_NAME:c99extidentifier) SDKROOT = appletvos SKIP_INSTALL = YES +SWIFT_EMIT_LOC_STRINGS = YES +SWIFT_INSTALL_OBJC_HEADER = NO TARGETED_DEVICE_FAMILY = 3 TVOS_DEPLOYMENT_TARGET = latest_appletvos VERSIONING_SYSTEM = apple-generic diff --git a/spec/fixtures/CommonBuildSettings/configs/Swift_tvOS_Native/Swift_tvOS_Native_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Swift_tvOS_Native/Swift_tvOS_Native_base.xcconfig index 6b02d1892..25c1d3656 100644 --- a/spec/fixtures/CommonBuildSettings/configs/Swift_tvOS_Native/Swift_tvOS_Native_base.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/Swift_tvOS_Native/Swift_tvOS_Native_base.xcconfig @@ -1,9 +1,15 @@ ASSETCATALOG_COMPILER_APPICON_NAME = App Icon & Top Shelf Image ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor +CURRENT_PROJECT_VERSION = 1 ENABLE_PREVIEWS = YES -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist +GENERATE_INFOPLIST_FILE = YES +INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen +INFOPLIST_KEY_UIMainStoryboardFile = Main +INFOPLIST_KEY_UIUserInterfaceStyle = Automatic LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks +MARKETING_VERSION = 1.0 PRODUCT_BUNDLE_IDENTIFIER = ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASRFC1034IDENTIFIER___ SDKROOT = appletvos +SWIFT_EMIT_LOC_STRINGS = YES TARGETED_DEVICE_FAMILY = 3 TVOS_DEPLOYMENT_TARGET = latest_appletvos diff --git a/spec/fixtures/CommonBuildSettings/configs/Swift_watchOS_Framework/Swift_watchOS_Framework_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Swift_watchOS_Framework/Swift_watchOS_Framework_base.xcconfig index a0b438c5c..c7571b2ab 100644 --- a/spec/fixtures/CommonBuildSettings/configs/Swift_watchOS_Framework/Swift_watchOS_Framework_base.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/Swift_watchOS_Framework/Swift_watchOS_Framework_base.xcconfig @@ -1,16 +1,22 @@ -APPLICATION_EXTENSION_API_ONLY = YES +BUILD_LIBRARY_FOR_DISTRIBUTION = YES CURRENT_PROJECT_VERSION = 1 DEFINES_MODULE = YES DYLIB_COMPATIBILITY_VERSION = 1 DYLIB_CURRENT_VERSION = 1 DYLIB_INSTALL_NAME_BASE = @rpath -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist +ENABLE_MODULE_VERIFIER = YES +GENERATE_INFOPLIST_FILE = YES INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Frameworks LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks +MARKETING_VERSION = 1.0 +MODULE_VERIFIER_SUPPORTED_LANGUAGES = objective-c objective-c++ +MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = gnu17 gnu++20 PRODUCT_BUNDLE_IDENTIFIER = ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASRFC1034IDENTIFIER___ PRODUCT_NAME = $(TARGET_NAME:c99extidentifier) SDKROOT = watchos SKIP_INSTALL = YES +SWIFT_EMIT_LOC_STRINGS = YES +SWIFT_INSTALL_OBJC_HEADER = NO TARGETED_DEVICE_FAMILY = 4 VERSIONING_SYSTEM = apple-generic VERSION_INFO_PREFIX = diff --git a/spec/fixtures/CommonBuildSettings/configs/Swift_watchOS_Native Extension/Swift_watchOS_Native Extension_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Swift_watchOS_Native Extension/Swift_watchOS_Native Extension_base.xcconfig deleted file mode 100644 index 054d22e30..000000000 --- a/spec/fixtures/CommonBuildSettings/configs/Swift_watchOS_Native Extension/Swift_watchOS_Native Extension_base.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication -ENABLE_PREVIEWS = YES -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist -LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @executable_path/../../Frameworks -PRODUCT_BUNDLE_IDENTIFIER = ___ASSOCIATEDTARGET_bundleIdentifier___.watchkitapp.watchkitextension -PRODUCT_NAME = ${TARGET_NAME} -SDKROOT = watchos -SKIP_INSTALL = YES -TARGETED_DEVICE_FAMILY = 4 -WATCHOS_DEPLOYMENT_TARGET = latest_watchos diff --git a/spec/fixtures/CommonBuildSettings/configs/Swift_watchOS_Native Extension/Swift_watchOS_Native Extension_debug.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Swift_watchOS_Native Extension/Swift_watchOS_Native Extension_debug.xcconfig deleted file mode 100644 index 3b305a016..000000000 --- a/spec/fixtures/CommonBuildSettings/configs/Swift_watchOS_Native Extension/Swift_watchOS_Native Extension_debug.xcconfig +++ /dev/null @@ -1 +0,0 @@ -#include "Swift_watchOS_Native Extension/Swift_watchOS_Native Extension_base.xcconfig" diff --git a/spec/fixtures/CommonBuildSettings/configs/Swift_watchOS_Native Extension/Swift_watchOS_Native Extension_release.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Swift_watchOS_Native Extension/Swift_watchOS_Native Extension_release.xcconfig deleted file mode 100644 index c9564f1e3..000000000 --- a/spec/fixtures/CommonBuildSettings/configs/Swift_watchOS_Native Extension/Swift_watchOS_Native Extension_release.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "Swift_watchOS_Native Extension/Swift_watchOS_Native Extension_base.xcconfig" -VALIDATE_PRODUCT = YES diff --git a/spec/fixtures/CommonBuildSettings/configs/Swift_watchOS_Native/Swift_watchOS_Native_base.xcconfig b/spec/fixtures/CommonBuildSettings/configs/Swift_watchOS_Native/Swift_watchOS_Native_base.xcconfig index 31a322bf9..2e7a62850 100644 --- a/spec/fixtures/CommonBuildSettings/configs/Swift_watchOS_Native/Swift_watchOS_Native_base.xcconfig +++ b/spec/fixtures/CommonBuildSettings/configs/Swift_watchOS_Native/Swift_watchOS_Native_base.xcconfig @@ -1,10 +1,14 @@ -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor -IBSC_MODULE = ___PACKAGENAMEASIDENTIFIER____Extension -INFOPLIST_FILE = ___PACKAGENAME___/Info.plist -PRODUCT_BUNDLE_IDENTIFIER = ___ASSOCIATEDTARGET_bundleIdentifier___.watchkitapp +CURRENT_PROJECT_VERSION = 1 +ENABLE_PREVIEWS = YES +GENERATE_INFOPLIST_FILE = YES +INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown +LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks +MARKETING_VERSION = 1.0 +PRODUCT_BUNDLE_IDENTIFIER = ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___.watchkitapp SDKROOT = watchos SKIP_INSTALL = YES +SWIFT_EMIT_LOC_STRINGS = YES TARGETED_DEVICE_FAMILY = 4 WATCHOS_DEPLOYMENT_TARGET = latest_watchos diff --git a/spec/fixtures/CommonBuildSettings/rebuild_from_xcode b/spec/fixtures/CommonBuildSettings/rebuild_from_xcode index 9a50f3164..05bc9bf99 100755 --- a/spec/fixtures/CommonBuildSettings/rebuild_from_xcode +++ b/spec/fixtures/CommonBuildSettings/rebuild_from_xcode @@ -79,14 +79,23 @@ class Template copy = {} macros = { 'DEFAULT_MACOS_CODE_SIGN_IDENTITY' => '-', # from -[IDETemplateInstantiationContext additionalMacroExpansions] + # These are based on the name of the project which we can't statically specify + 'PARENTPACKAGENAME' => nil, + 'PACKAGENAMEPREVIEWCONTENT' => nil, + 'PACKAGENAMEPREVIEWCONTENT:quoteIfNeeded' => nil, + 'COPYRIGHT' => nil, } Array(@plist['Options']).each do |option| next unless identifier = option['Identifier'] next unless default = option['Default'] macros["VARIABLE_#{identifier}"] = default end + delete_marker = '___DELETE___' settings.each do |k, v| - copy[k] = v.gsub(/___(#{Regexp.union macros.keys})___/) { macros[Regexp.last_match(1)] } + copy[k] = v.gsub(/___(#{Regexp.union macros.keys})___/) { macros[Regexp.last_match(1)].nil? ? delete_marker : macros[Regexp.last_match(1)] } + if copy[k] == delete_marker + copy.delete(k) + end end copy end @@ -97,9 +106,11 @@ xcode = ARGV[0] || '/Applications/Xcode.app' puts "Rebuilding from Xcode at `#{xcode}`" Dir["#{xcode}/Contents/Developer/Platforms/**/*.xctemplate/TemplateInfo.plist", "#{xcode}/Contents/Developer/Library/Xcode/**/*.xctemplate/TemplateInfo.plist"].map do |template| - print "\r\033[KReading template `#{template}`" + # print "\r\033[KReading template `#{template}`" + puts "Reading template `#{Pathname(template).relative_path_from(xcode)}`" plist = Xcodeproj::Plist.read_from_path(template) template = Template.new(plist) + puts "\t loaded #{template.identifier}" if template.identifier Template.all_by_identifier[template.identifier] = template if template.identifier end.compact @@ -108,7 +119,6 @@ puts "\r\033[KRead all templates" targets = { 'Project' => { 'languageChoice' => 'Swift', :template_identifier => 'com.apple.dt.unit.base' }, - 'Objc_iOS_Native' => { 'languageChoice' => 'Objective-C', :template_identifier => 'com.apple.dt.unit.storyboardApplication' }, 'Swift_iOS_Native' => { 'languageChoice' => 'Swift', :template_identifier => 'com.apple.dt.unit.storyboardApplication' }, 'Objc_iOS_Framework' => { 'languageChoice' => 'Objective-C', :template_identifier => 'com.apple.dt.unit.iosFramework' }, 'Swift_iOS_Framework' => { 'languageChoice' => 'Swift', :template_identifier => 'com.apple.dt.unit.iosFramework' }, @@ -122,10 +132,8 @@ targets = { 'Objc_OSX_DynamicLibrary' => { 'languageChoice' => 'Objective-C', :template_identifier => 'com.apple.dt.unit.osxLibrary', 'libraryType' => 'Dynamic' }, 'OSX_Bundle' => { 'languageChoice' => nil, :template_identifier => 'com.apple.dt.unit.osxbundle' }, - 'Objc_watchOS_Native' => { 'languageChoice' => 'Objective-C', :template_identifier => 'com.apple.dt.unit.watchkit2.watchkitapp' }, - 'Objc_watchOS_Native Extension' => { 'languageChoice' => 'Objective-C', :template_identifier => 'com.apple.dt.unit.watchkit2.watchkitextension' }, - 'Swift_watchOS_Native' => { 'languageChoice' => 'Swift', :template_identifier => 'com.apple.dt.unit.watchkit2.watchkitapp' }, - 'Swift_watchOS_Native Extension' => { 'languageChoice' => 'Swift', :template_identifier => 'com.apple.dt.unit.watchkit2.watchkitextension' }, + 'Objc_watchOS_Native' => { 'languageChoice' => 'Objective-C', :template_identifier => 'com.apple.dt.unit.application.SwiftUI.watchOS' }, + 'Swift_watchOS_Native' => { 'languageChoice' => 'Swift', :template_identifier => 'com.apple.dt.unit.application.SwiftUI.watchOS' }, 'Objc_watchOS_Framework' => { 'languageChoice' => 'Objective-C', :template_identifier => 'com.apple.dt.unit.watchosFramework' }, 'Swift_watchOS_Framework' => { 'languageChoice' => 'Swift', :template_identifier => 'com.apple.dt.unit.watchosFramework' }, 'Objc_watchOS_StaticLibrary' => { 'languageChoice' => 'Objective-C', :template_identifier => 'com.apple.dt.unit.watchosStaticLibrary' }, @@ -156,9 +164,10 @@ project = nil targets.each do |name, options| template_identifier = options.delete(:template_identifier) print "\r\033[KCalculating defaults for #{template_identifier}" + missing_templates = [] configs = Hash[%w(Debug Release).map do |configuration| unless template = Template.all_by_identifier[template_identifier] - warn "No template #{template_identifier} for #{name} could be found" + missing_templates << [name, template_identifier] any_missing = true next [configuration, {}] end @@ -166,6 +175,12 @@ targets.each do |name, options| [configuration, settings] end] + print("\r\n") + + missing_templates.each do |(name, template_identifier)| + warn "No template #{template_identifier} for #{name} could be found\n" + end + extract_common_settings!(configs, project) configs.each do |configuration, settings| diff --git a/spec/fixtures/Sample Project/Cocoa Application.xcodeproj/xcshareddata/xcschemes/iOS application and static library.xcscheme b/spec/fixtures/Sample Project/Cocoa Application.xcodeproj/xcshareddata/xcschemes/iOS application and static library.xcscheme index 97a381bc5..16b3767c2 100644 --- a/spec/fixtures/Sample Project/Cocoa Application.xcodeproj/xcshareddata/xcschemes/iOS application and static library.xcscheme +++ b/spec/fixtures/Sample Project/Cocoa Application.xcodeproj/xcshareddata/xcschemes/iOS application and static library.xcscheme @@ -1,6 +1,6 @@ :objc + describe 'for product type Application' do + define :product_type => :application + behaves_like target_from_fixtures 'Objc_OSX_Native' + end + describe 'for product type Dynamic Library' do define :product_type => :dynamic_library behaves_like target_from_fixtures 'Objc_OSX_DynamicLibrary' @@ -120,11 +125,6 @@ def self.fixture_settings behaves_like target_from_fixtures 'Objc_OSX_Framework' end - describe 'for product type Application' do - define :product_type => :application - behaves_like target_from_fixtures 'Objc_OSX_Native' - end - describe 'for product type Static Library' do define :product_type => :static_library behaves_like target_from_fixtures 'Objc_OSX_StaticLibrary' @@ -134,15 +134,15 @@ def self.fixture_settings describe 'in language Swift' do define :language => :swift - describe 'for product type Framework' do - define :product_type => :framework - behaves_like target_from_fixtures 'Swift_OSX_Framework' - end - describe 'for product type Application' do define :product_type => :application behaves_like target_from_fixtures 'Swift_OSX_Native' end + + describe 'for product type Framework' do + define :product_type => :framework + behaves_like target_from_fixtures 'Swift_OSX_Framework' + end end end @@ -163,11 +163,6 @@ def self.fixture_settings behaves_like target_from_fixtures 'Objc_iOS_Framework' end - describe 'for product type Application' do - define :product_type => :application - behaves_like target_from_fixtures 'Objc_iOS_Native' - end - describe 'for product type Static Library' do define :product_type => :static_library behaves_like target_from_fixtures 'Objc_iOS_StaticLibrary' diff --git a/spec/scheme_spec.rb b/spec/scheme_spec.rb index e5ad188c1..889050949 100644 --- a/spec/scheme_spec.rb +++ b/spec/scheme_spec.rb @@ -230,7 +230,7 @@ module ProjectSpecs expected = <<-XML.gsub(/^ {8}/, '')