Skip to content

Instantly share code, notes, and snippets.

@atdrendel
Last active May 11, 2023 11:50
Show Gist options
  • Save atdrendel/2af7e5e2674569791258a1cf1722e92f to your computer and use it in GitHub Desktop.
Save atdrendel/2af7e5e2674569791258a1cf1722e92f to your computer and use it in GitHub Desktop.
Xcode configuration for iOS, macOS, watchOS, and tvOS framework
// -*- SHARED -*-
SUPPORTED_PLATFORMS = macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator
COMBINE_HIDPI_IMAGES = YES
INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Frameworks
SKIP_INSTALL = YES
COPY_PHASE_STRIP = NO
IPHONEOS_DEPLOYMENT_TARGET = 14.0
MACOSX_DEPLOYMENT_TARGET = 10.15
TVOS_DEPLOYMENT_TARGET = 14.0
WATCHOS_DEPLOYMENT_TARGET = 7.0
DYLIB_COMPATIBILITY_VERSION = 1
DYLIB_CURRENT_VERSION = 1
DYLIB_INSTALL_NAME_BASE = @rpath
LD_RUNPATH_SEARCH_PATHS = @executable_path/Frameworks @executable_path/../Frameworks @loader_path/Frameworks @loader_path/../Frameworks
DEFINES_MODULE = YES
FRAMEWORK_VERSION = A
PRODUCT_NAME = $(TARGET_NAME)
ALWAYS_SEARCH_USER_PATHS = NO
CURRENT_PROJECT_VERSION = 1
VERSION_INFO_PREFIX =
VERSIONING_SYSTEM = apple-generic
GCC_NO_COMMON_BLOCKS = YES
GCC_C_LANGUAGE_STANDARD = gnu11
CLANG_CXX_LANGUAGE_STANDARD = gnu++17
CLANG_CXX_LIBRARY = libc++
CLANG_ENABLE_MODULES = YES
CLANG_ENABLE_OBJC_ARC = YES
CLANG_ENABLE_OBJC_WEAK = YES
ENABLE_STRICT_OBJC_MSGSEND = YES
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES
CLANG_WARN_DOCUMENTATION_COMMENTS = YES
CLANG_WARN_EMPTY_BODY = YES
CLANG_WARN_BOOL_CONVERSION = YES
CLANG_WARN_CONSTANT_CONVERSION = YES
GCC_WARN_64_TO_32_BIT_CONVERSION = YES
CLANG_WARN_ENUM_CONVERSION = YES
CLANG_WARN_INFINITE_RECURSION = YES
CLANG_WARN_INT_CONVERSION = YES
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES
CLANG_WARN_STRICT_PROTOTYPES = YES
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES
CLANG_WARN_COMMA = YES
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE
CLANG_WARN_SUSPICIOUS_MOVE = YES
CLANG_WARN_UNREACHABLE_CODE = YES
GCC_WARN_UNUSED_FUNCTION = YES
GCC_WARN_UNUSED_VARIABLE = YES
GCC_WARN_UNUSED_PARAMETER = YES
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES
GCC_WARN_UNDECLARED_SELECTOR = YES
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR
CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPE = YES
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES
CLANG_ANALYZER_NONNULL = YES
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES
SWIFT_VERSION = 5.6
COPYRIGHT_STATEMENT = Copyright © 2022 Shareup Software Corporation. All rights reserved.
// -*- DEBUG -*-
ONLY_ACTIVE_ARCH = YES
ENABLE_TESTABILITY = YES
DEBUG_INFORMATION_FORMAT = dwarf
GCC_DYNAMIC_NO_PIC = NO
GCC_OPTIMIZATION_LEVEL = 0
GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1
SWIFT_COMPILATION_MODE = singlefile
SWIFT_OPTIMIZATION_LEVEL = -Onone
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE
MTL_FAST_MATH = YES
// -*- -driver-show-incremental -driver-show-job-lifecycle -*-
OTHER_SWIFT_FLAGS = -Xfrontend -warn-long-function-bodies=200 -Xfrontend -warn-long-expression-type-checking=200
#include "../../Configurations/debug.xcconfig"
SUPPORTED_PLATFORMS = iphoneos iphonesimulator
SDKROOT = iphoneos
PRODUCT_BUNDLE_IDENTIFIER = app.shareup.app-name.ios
GENERATE_INFOPLIST_FILE = YES
INFOPLIST_KEY_CFBundleVersion = 1
CURRENT_PROJECT_VERSION = $(INFOPLIST_KEY_CFBundleVersion)
INFOPLIST_KEY_CFBundleShortVersionString = 1.0.0
MARKETING_VERSION = $(INFOPLIST_KEY_CFBundleShortVersionString)
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES
INFOPLIST_KEY_NSHumanReadableCopyright = $(COPYRIGHT_STATEMENT)
#include "debug.xcconfig"
ENABLE_NS_ASSERTIONS = NO
RUN_CLANG_STATIC_ANALYZER = YES
// -*- OVERRIDES -*-
DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
COPY_PHASE_STRIP = YES
ENABLE_TESTABILITY = NO
ONLY_ACTIVE_ARCH = NO
GCC_PREPROCESSOR_DEFINITIONS =
SWIFT_ACTIVE_COMPILATION_CONDITIONS =
GCC_OPTIMIZATION_LEVEL = s
SWIFT_COMPILATION_MODE = wholemodule
SWIFT_OPTIMIZATION_LEVEL = -Owholemodule
MTL_ENABLE_DEBUG_INFO = NO
OTHER_SWIFT_FLAGS =
@VolceOntra
Copy link

Thanks for this tip. I'm trying to setup a framework like this and then have a cocoapod dependency on the single target, do you have any idea how that would work?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment