diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/CoconutLib.podspec b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/CoconutLib.podspec new file mode 100644 index 0000000000..2668027321 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/CoconutLib.podspec @@ -0,0 +1,18 @@ +Pod::Spec.new do |s| + s.name = 'CoconutLib' + s.version = '1.0' + s.authors = 'Coconut Corp', { 'Monkey Boy' => 'monkey@coconut-corp.local' } + s.homepage = 'http://coconut-corp.local/coconut-lib.html' + s.summary = 'Coconuts For the Win.' + s.description = 'All the Coconuts' + s.source = { :git => 'http://coconut-corp.local/coconut-lib.git', :tag => 'v1.0' } + s.license = { + :type => 'MIT', + :text => 'Permission is hereby granted ...' + } + + s.ios.deployment_target = '13.0' + s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } + s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } + s.vendored_frameworks = 'build/CoconutLib.xcframework' +end diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/CoconutLib.xcodeproj/project.pbxproj b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/CoconutLib.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..97d954aaff --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/CoconutLib.xcodeproj/project.pbxproj @@ -0,0 +1,339 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 5BFCC8F6252E3C5F000564E9 /* CoconutLib.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BFCC8F4252E3C5F000564E9 /* CoconutLib.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5BFCC8FE252E3CA6000564E9 /* Coconut.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BFCC8FC252E3CA6000564E9 /* Coconut.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5BFCC8FF252E3CA6000564E9 /* Coconut.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BFCC8FD252E3CA6000564E9 /* Coconut.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 5BFCC8F1252E3C5F000564E9 /* CoconutLib.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CoconutLib.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5BFCC8F4252E3C5F000564E9 /* CoconutLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CoconutLib.h; sourceTree = ""; }; + 5BFCC8F5252E3C5F000564E9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 5BFCC8FC252E3CA6000564E9 /* Coconut.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Coconut.h; sourceTree = ""; }; + 5BFCC8FD252E3CA6000564E9 /* Coconut.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Coconut.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5BFCC8EE252E3C5F000564E9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 5BFCC8E7252E3C5F000564E9 = { + isa = PBXGroup; + children = ( + 5BFCC8F3252E3C5F000564E9 /* CoconutLib */, + 5BFCC8F2252E3C5F000564E9 /* Products */, + ); + sourceTree = ""; + }; + 5BFCC8F2252E3C5F000564E9 /* Products */ = { + isa = PBXGroup; + children = ( + 5BFCC8F1252E3C5F000564E9 /* CoconutLib.framework */, + ); + name = Products; + sourceTree = ""; + }; + 5BFCC8F3252E3C5F000564E9 /* CoconutLib */ = { + isa = PBXGroup; + children = ( + 5BFCC8F4252E3C5F000564E9 /* CoconutLib.h */, + 5BFCC8F5252E3C5F000564E9 /* Info.plist */, + 5BFCC8FC252E3CA6000564E9 /* Coconut.h */, + 5BFCC8FD252E3CA6000564E9 /* Coconut.m */, + ); + path = CoconutLib; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 5BFCC8EC252E3C5F000564E9 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 5BFCC8FE252E3CA6000564E9 /* Coconut.h in Headers */, + 5BFCC8F6252E3C5F000564E9 /* CoconutLib.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 5BFCC8F0252E3C5F000564E9 /* CoconutLib */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5BFCC8F9252E3C5F000564E9 /* Build configuration list for PBXNativeTarget "CoconutLib" */; + buildPhases = ( + 5BFCC8EC252E3C5F000564E9 /* Headers */, + 5BFCC8ED252E3C5F000564E9 /* Sources */, + 5BFCC8EE252E3C5F000564E9 /* Frameworks */, + 5BFCC8EF252E3C5F000564E9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = CoconutLib; + productName = CoconutLib; + productReference = 5BFCC8F1252E3C5F000564E9 /* CoconutLib.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 5BFCC8E8252E3C5F000564E9 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1170; + TargetAttributes = { + 5BFCC8F0252E3C5F000564E9 = { + CreatedOnToolsVersion = 11.7; + }; + }; + }; + buildConfigurationList = 5BFCC8EB252E3C5F000564E9 /* Build configuration list for PBXProject "CoconutLib" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 5BFCC8E7252E3C5F000564E9; + productRefGroup = 5BFCC8F2252E3C5F000564E9 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 5BFCC8F0252E3C5F000564E9 /* CoconutLib */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 5BFCC8EF252E3C5F000564E9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5BFCC8ED252E3C5F000564E9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5BFCC8FF252E3CA6000564E9 /* Coconut.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 5BFCC8F7252E3C5F000564E9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.7; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 5BFCC8F8252E3C5F000564E9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.7; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 5BFCC8FA252E3C5F000564E9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = CoconutLib/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.CoconutLib.CoconutLib; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 5BFCC8FB252E3C5F000564E9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = CoconutLib/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.CoconutLib.CoconutLib; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 5BFCC8EB252E3C5F000564E9 /* Build configuration list for PBXProject "CoconutLib" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5BFCC8F7252E3C5F000564E9 /* Debug */, + 5BFCC8F8252E3C5F000564E9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 5BFCC8F9252E3C5F000564E9 /* Build configuration list for PBXNativeTarget "CoconutLib" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5BFCC8FA252E3C5F000564E9 /* Debug */, + 5BFCC8FB252E3C5F000564E9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 5BFCC8E8252E3C5F000564E9 /* Project object */; +} diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/CoconutLib/Coconut.h b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/CoconutLib/Coconut.h new file mode 100644 index 0000000000..049eb6aeb0 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/CoconutLib/Coconut.h @@ -0,0 +1,11 @@ +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface Coconut : NSObject + +- (void)makeCoconuts; + +@end + +NS_ASSUME_NONNULL_END diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/CoconutLib/Coconut.m b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/CoconutLib/Coconut.m new file mode 100644 index 0000000000..f5c5804a7a --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/CoconutLib/Coconut.m @@ -0,0 +1,9 @@ +#import "Coconut.h" + +@implementation Coconut + +- (void)makeCoconuts { + NSLog(@"Making coconuts!"); +} + +@end diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/CoconutLib/CoconutLib.h b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/CoconutLib/CoconutLib.h new file mode 100644 index 0000000000..afb871111d --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/CoconutLib/CoconutLib.h @@ -0,0 +1,11 @@ +#import + +//! Project version number for CoconutLib. +FOUNDATION_EXPORT double CoconutLibVersionNumber; + +//! Project version string for CoconutLib. +FOUNDATION_EXPORT const unsigned char CoconutLibVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + +#import "Coconut.h" diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/CoconutLib/Info.plist b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/CoconutLib/Info.plist new file mode 100644 index 0000000000..9bcb244429 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/CoconutLib/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build.sh b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build.sh new file mode 100755 index 0000000000..856c0ea456 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env sh +# +# This will build and export `CoconutLib.xcframework` to `build/CoconutLib.xcframework` including all supported slices. +# +# Note: This script expects to build using xcodebuild from Xcode 12.0 or later. +# + +set -eou pipefail + +rm -rf build/* + +settings="SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES" +archiveDir="build/DerivedData/" + +echo "Building xcframework slices" + +xcodebuild clean archive -project CoconutLib.xcodeproj -scheme "CoconutLib" -sdk iphoneos -archivePath "${archiveDir}/iOS" $settings +xcodebuild clean archive -project CoconutLib.xcodeproj -scheme "CoconutLib" -sdk iphonesimulator -archivePath "${archiveDir}/iOS-Simulator" $settings + +archives=(iOS iOS-Simulator) + +# NOTE: Debug symbol paths require absolute paths, so grab a reference to the working directory +pwd=`pwd` + +args="" +for archive in "${archives[@]}"; do + args="$args -framework ${archiveDir}/${archive}.xcarchive/Products/Library/Frameworks/CoconutLib.framework" + + # Append -debug-symbols argument for this archive's dSYM + args="$args -debug-symbols ${pwd}/${archiveDir}/${archive}.xcarchive/dSYMs/CoconutLib.framework.dSYM" +done + +echo "xcodebuild -create-xcframework $args -output 'build/CoconutLib.xcframework'" +xcodebuild -create-xcframework $args -output 'build/CoconutLib.xcframework' + +sed -i '' 's/ios-arm64_x86_64-simulator/coconut-water/g' 'build/CoconutLib.xcframework/Info.plist' +mv 'build/CoconutLib.xcframework/ios-arm64_x86_64-simulator' 'build/CoconutLib.xcframework/coconut-water' +sed -i '' 's/ios-arm64/coconut-liquid/g' 'build/CoconutLib.xcframework/Info.plist' +mv 'build/CoconutLib.xcframework/ios-arm64' 'build/CoconutLib.xcframework/coconut-liquid' + +echo "Done." diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/Info.plist b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/Info.plist new file mode 100644 index 0000000000..3f0eb85ff8 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/Info.plist @@ -0,0 +1,44 @@ + + + + + AvailableLibraries + + + DebugSymbolsPath + dSYMs + LibraryIdentifier + coconut-water + LibraryPath + CoconutLib.framework + SupportedArchitectures + + arm64 + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + DebugSymbolsPath + dSYMs + LibraryIdentifier + coconut-liquid + LibraryPath + CoconutLib.framework + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/CoconutLib.framework/CoconutLib b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/CoconutLib.framework/CoconutLib new file mode 100755 index 0000000000..9d119aeef9 Binary files /dev/null and b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/CoconutLib.framework/CoconutLib differ diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/CoconutLib.framework/Headers/Coconut.h b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/CoconutLib.framework/Headers/Coconut.h new file mode 100644 index 0000000000..049eb6aeb0 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/CoconutLib.framework/Headers/Coconut.h @@ -0,0 +1,11 @@ +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface Coconut : NSObject + +- (void)makeCoconuts; + +@end + +NS_ASSUME_NONNULL_END diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/CoconutLib.framework/Headers/CoconutLib.h b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/CoconutLib.framework/Headers/CoconutLib.h new file mode 100644 index 0000000000..afb871111d --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/CoconutLib.framework/Headers/CoconutLib.h @@ -0,0 +1,11 @@ +#import + +//! Project version number for CoconutLib. +FOUNDATION_EXPORT double CoconutLibVersionNumber; + +//! Project version string for CoconutLib. +FOUNDATION_EXPORT const unsigned char CoconutLibVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + +#import "Coconut.h" diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/CoconutLib.framework/Info.plist b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/CoconutLib.framework/Info.plist new file mode 100644 index 0000000000..d3d3bf0088 Binary files /dev/null and b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/CoconutLib.framework/Info.plist differ diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/CoconutLib.framework/Modules/module.modulemap b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/CoconutLib.framework/Modules/module.modulemap new file mode 100644 index 0000000000..935662f517 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/CoconutLib.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module CoconutLib { + umbrella header "CoconutLib.h" + + export * + module * { export * } +} diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/dSYMs/CoconutLib.framework.dSYM/Contents/Info.plist b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/dSYMs/CoconutLib.framework.dSYM/Contents/Info.plist new file mode 100644 index 0000000000..ef1134353c --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/dSYMs/CoconutLib.framework.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.org.cocoapods.CoconutLib.CoconutLib + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/dSYMs/CoconutLib.framework.dSYM/Contents/Resources/DWARF/CoconutLib b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/dSYMs/CoconutLib.framework.dSYM/Contents/Resources/DWARF/CoconutLib new file mode 100644 index 0000000000..6b6bdc7809 Binary files /dev/null and b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-liquid/dSYMs/CoconutLib.framework.dSYM/Contents/Resources/DWARF/CoconutLib differ diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/CoconutLib.framework/CoconutLib b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/CoconutLib.framework/CoconutLib new file mode 100755 index 0000000000..b693ea15f0 Binary files /dev/null and b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/CoconutLib.framework/CoconutLib differ diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/CoconutLib.framework/Headers/Coconut.h b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/CoconutLib.framework/Headers/Coconut.h new file mode 100644 index 0000000000..049eb6aeb0 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/CoconutLib.framework/Headers/Coconut.h @@ -0,0 +1,11 @@ +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface Coconut : NSObject + +- (void)makeCoconuts; + +@end + +NS_ASSUME_NONNULL_END diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/CoconutLib.framework/Headers/CoconutLib.h b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/CoconutLib.framework/Headers/CoconutLib.h new file mode 100644 index 0000000000..afb871111d --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/CoconutLib.framework/Headers/CoconutLib.h @@ -0,0 +1,11 @@ +#import + +//! Project version number for CoconutLib. +FOUNDATION_EXPORT double CoconutLibVersionNumber; + +//! Project version string for CoconutLib. +FOUNDATION_EXPORT const unsigned char CoconutLibVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + +#import "Coconut.h" diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/CoconutLib.framework/Info.plist b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/CoconutLib.framework/Info.plist new file mode 100644 index 0000000000..1a60f7917e Binary files /dev/null and b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/CoconutLib.framework/Info.plist differ diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/CoconutLib.framework/Modules/module.modulemap b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/CoconutLib.framework/Modules/module.modulemap new file mode 100644 index 0000000000..935662f517 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/CoconutLib.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module CoconutLib { + umbrella header "CoconutLib.h" + + export * + module * { export * } +} diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/CoconutLib.framework/_CodeSignature/CodeResources b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/CoconutLib.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000000..3d7ce4a9d7 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/CoconutLib.framework/_CodeSignature/CodeResources @@ -0,0 +1,135 @@ + + + + + files + + Headers/Coconut.h + + xRZ2gtR7a+JUu8vlrj6ucJo0HZw= + + Headers/CoconutLib.h + + XDeshhJadkBf1PW1H8vYTSz6anE= + + Info.plist + + N9NcTTnWEZj9OMp/CTa7WV/m3sk= + + Modules/module.modulemap + + XBUmhbp5sPDDR0vApgYJ0zALOWI= + + + files2 + + Headers/Coconut.h + + hash2 + + Nnv5eWfCRS7X8m8b9VJ4F75efQAqgC/nrc9DIwOJpqc= + + + Headers/CoconutLib.h + + hash2 + + 81D6Wtna7bDB0hL/8v0U7Cb2+giki+ubCf+3UCXkrOI= + + + Modules/module.modulemap + + hash2 + + mhxBFlNwG/ASIqNY6yYtxs7CuysII4NrdaoGkHwJLCA= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/dSYMs/CoconutLib.framework.dSYM/Contents/Info.plist b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/dSYMs/CoconutLib.framework.dSYM/Contents/Info.plist new file mode 100644 index 0000000000..ef1134353c --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/dSYMs/CoconutLib.framework.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.org.cocoapods.CoconutLib.CoconutLib + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/dSYMs/CoconutLib.framework.dSYM/Contents/Resources/DWARF/CoconutLib b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/dSYMs/CoconutLib.framework.dSYM/Contents/Resources/DWARF/CoconutLib new file mode 100644 index 0000000000..59f47257b8 Binary files /dev/null and b/examples/Oddly-Named-XCF-Slices-Example/CoconutLib/build/CoconutLib.xcframework/coconut-water/dSYMs/CoconutLib.framework.dSYM/Contents/Resources/DWARF/CoconutLib differ diff --git a/examples/Oddly-Named-XCF-Slices-Example/Examples.xcworkspace/contents.xcworkspacedata b/examples/Oddly-Named-XCF-Slices-Example/Examples.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..20c43c27f7 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/Examples.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/examples/Oddly-Named-XCF-Slices-Example/Examples.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/Oddly-Named-XCF-Slices-Example/Examples.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000000..18d981003d --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/Examples.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples/Oddly-Named-XCF-Slices-Example/Podfile b/examples/Oddly-Named-XCF-Slices-Example/Podfile new file mode 100644 index 0000000000..696408f722 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/Podfile @@ -0,0 +1,14 @@ +project 'VendoredXCFrameworkExample.xcodeproj' + +workspace 'Examples' + +target 'VendoredXCFrameworkExample' do + platform :ios, '13.0' + use_frameworks! + + # XCFramework with Xcode 12 style inclusion of debug symbols + # To rebuild the xcframework: + # cd CoconutLib + # ./build.sh + pod 'CoconutLib', path: './CoconutLib' +end diff --git a/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample.xcodeproj/project.pbxproj b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..b061971022 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample.xcodeproj/project.pbxproj @@ -0,0 +1,468 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXAggregateTarget section */ + 5BFCC900252E56C0000564E9 /* ArchiveAndValidate */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 5BFCC903252E56C0000564E9 /* Build configuration list for PBXAggregateTarget "ArchiveAndValidate" */; + buildPhases = ( + 5BFCC904252E56CB000564E9 /* ShellScript */, + ); + dependencies = ( + ); + name = ArchiveAndValidate; + productName = ArchiveAndValidate; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 5BFCC8D4252E3B9D000564E9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BFCC8D3252E3B9D000564E9 /* AppDelegate.swift */; }; + 5BFCC8D6252E3B9D000564E9 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BFCC8D5252E3B9D000564E9 /* SceneDelegate.swift */; }; + 5BFCC8D8252E3B9D000564E9 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BFCC8D7252E3B9D000564E9 /* ViewController.swift */; }; + 5BFCC8DB252E3B9D000564E9 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5BFCC8D9252E3B9D000564E9 /* Main.storyboard */; }; + 5BFCC8DD252E3BA0000564E9 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5BFCC8DC252E3BA0000564E9 /* Assets.xcassets */; }; + 5BFCC8E0252E3BA0000564E9 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5BFCC8DE252E3BA0000564E9 /* LaunchScreen.storyboard */; }; + E8804959E79C141BDBC1EA27 /* Pods_VendoredXCFrameworkExample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC757F4BE5B663DB11D87BBC /* Pods_VendoredXCFrameworkExample.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 0D045E4A577FAB4E914EE2DD /* Pods-VendoredXCFrameworkExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VendoredXCFrameworkExample.release.xcconfig"; path = "Target Support Files/Pods-VendoredXCFrameworkExample/Pods-VendoredXCFrameworkExample.release.xcconfig"; sourceTree = ""; }; + 2574F357C51618E90C6EC20B /* Pods-VendoredXCFrameworkExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VendoredXCFrameworkExample.debug.xcconfig"; path = "Target Support Files/Pods-VendoredXCFrameworkExample/Pods-VendoredXCFrameworkExample.debug.xcconfig"; sourceTree = ""; }; + 5BFCC8D0252E3B9D000564E9 /* VendoredXCFrameworkExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = VendoredXCFrameworkExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 5BFCC8D3252E3B9D000564E9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 5BFCC8D5252E3B9D000564E9 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 5BFCC8D7252E3B9D000564E9 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 5BFCC8DA252E3B9D000564E9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 5BFCC8DC252E3BA0000564E9 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 5BFCC8DF252E3BA0000564E9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 5BFCC8E1252E3BA0000564E9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + FC757F4BE5B663DB11D87BBC /* Pods_VendoredXCFrameworkExample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VendoredXCFrameworkExample.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5BFCC8CD252E3B9D000564E9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E8804959E79C141BDBC1EA27 /* Pods_VendoredXCFrameworkExample.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 5BFCC8C7252E3B9D000564E9 = { + isa = PBXGroup; + children = ( + 5BFCC8D2252E3B9D000564E9 /* VendoredXCFrameworkExample */, + 5BFCC8D1252E3B9D000564E9 /* Products */, + F2EC89055FB594BA7C06074D /* Pods */, + E7A0A73DF4AE3A362BF2C461 /* Frameworks */, + ); + sourceTree = ""; + }; + 5BFCC8D1252E3B9D000564E9 /* Products */ = { + isa = PBXGroup; + children = ( + 5BFCC8D0252E3B9D000564E9 /* VendoredXCFrameworkExample.app */, + ); + name = Products; + sourceTree = ""; + }; + 5BFCC8D2252E3B9D000564E9 /* VendoredXCFrameworkExample */ = { + isa = PBXGroup; + children = ( + 5BFCC8D3252E3B9D000564E9 /* AppDelegate.swift */, + 5BFCC8D5252E3B9D000564E9 /* SceneDelegate.swift */, + 5BFCC8D7252E3B9D000564E9 /* ViewController.swift */, + 5BFCC8D9252E3B9D000564E9 /* Main.storyboard */, + 5BFCC8DC252E3BA0000564E9 /* Assets.xcassets */, + 5BFCC8DE252E3BA0000564E9 /* LaunchScreen.storyboard */, + 5BFCC8E1252E3BA0000564E9 /* Info.plist */, + ); + path = VendoredXCFrameworkExample; + sourceTree = ""; + }; + E7A0A73DF4AE3A362BF2C461 /* Frameworks */ = { + isa = PBXGroup; + children = ( + FC757F4BE5B663DB11D87BBC /* Pods_VendoredXCFrameworkExample.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + F2EC89055FB594BA7C06074D /* Pods */ = { + isa = PBXGroup; + children = ( + 2574F357C51618E90C6EC20B /* Pods-VendoredXCFrameworkExample.debug.xcconfig */, + 0D045E4A577FAB4E914EE2DD /* Pods-VendoredXCFrameworkExample.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 5BFCC8CF252E3B9D000564E9 /* VendoredXCFrameworkExample */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5BFCC8E4252E3BA0000564E9 /* Build configuration list for PBXNativeTarget "VendoredXCFrameworkExample" */; + buildPhases = ( + 6860D7C68856622DD7D970D3 /* [CP] Check Pods Manifest.lock */, + 5BFCC8CC252E3B9D000564E9 /* Sources */, + 5BFCC8CD252E3B9D000564E9 /* Frameworks */, + 5BFCC8CE252E3B9D000564E9 /* Resources */, + EE937D12F1B4513467012FEA /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = VendoredXCFrameworkExample; + productName = VendoredXCFrameworkExample; + productReference = 5BFCC8D0252E3B9D000564E9 /* VendoredXCFrameworkExample.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 5BFCC8C8252E3B9D000564E9 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1170; + LastUpgradeCheck = 1170; + TargetAttributes = { + 5BFCC8CF252E3B9D000564E9 = { + CreatedOnToolsVersion = 11.7; + }; + 5BFCC900252E56C0000564E9 = { + CreatedOnToolsVersion = 11.7; + }; + }; + }; + buildConfigurationList = 5BFCC8CB252E3B9D000564E9 /* Build configuration list for PBXProject "VendoredXCFrameworkExample" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 5BFCC8C7252E3B9D000564E9; + productRefGroup = 5BFCC8D1252E3B9D000564E9 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 5BFCC8CF252E3B9D000564E9 /* VendoredXCFrameworkExample */, + 5BFCC900252E56C0000564E9 /* ArchiveAndValidate */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 5BFCC8CE252E3B9D000564E9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5BFCC8E0252E3BA0000564E9 /* LaunchScreen.storyboard in Resources */, + 5BFCC8DD252E3BA0000564E9 /* Assets.xcassets in Resources */, + 5BFCC8DB252E3B9D000564E9 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 5BFCC904252E56CB000564E9 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PROJECT_DIR}\"/archiveAndValidate.sh\n"; + }; + 6860D7C68856622DD7D970D3 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-VendoredXCFrameworkExample-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + EE937D12F1B4513467012FEA /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-VendoredXCFrameworkExample/Pods-VendoredXCFrameworkExample-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-VendoredXCFrameworkExample/Pods-VendoredXCFrameworkExample-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-VendoredXCFrameworkExample/Pods-VendoredXCFrameworkExample-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5BFCC8CC252E3B9D000564E9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5BFCC8D8252E3B9D000564E9 /* ViewController.swift in Sources */, + 5BFCC8D4252E3B9D000564E9 /* AppDelegate.swift in Sources */, + 5BFCC8D6252E3B9D000564E9 /* SceneDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 5BFCC8D9252E3B9D000564E9 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 5BFCC8DA252E3B9D000564E9 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 5BFCC8DE252E3BA0000564E9 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 5BFCC8DF252E3BA0000564E9 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 5BFCC8E2252E3BA0000564E9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 5BFCC8E3252E3BA0000564E9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 5BFCC8E5252E3BA0000564E9 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2574F357C51618E90C6EC20B /* Pods-VendoredXCFrameworkExample.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = VendoredXCFrameworkExample/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.VendoredXCFrameworkExample.VendoredXCFrameworkExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 5BFCC8E6252E3BA0000564E9 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0D045E4A577FAB4E914EE2DD /* Pods-VendoredXCFrameworkExample.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = VendoredXCFrameworkExample/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.VendoredXCFrameworkExample.VendoredXCFrameworkExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 5BFCC901252E56C0000564E9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 5BFCC902252E56C0000564E9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 5BFCC8CB252E3B9D000564E9 /* Build configuration list for PBXProject "VendoredXCFrameworkExample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5BFCC8E2252E3BA0000564E9 /* Debug */, + 5BFCC8E3252E3BA0000564E9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 5BFCC8E4252E3BA0000564E9 /* Build configuration list for PBXNativeTarget "VendoredXCFrameworkExample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5BFCC8E5252E3BA0000564E9 /* Debug */, + 5BFCC8E6252E3BA0000564E9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 5BFCC903252E56C0000564E9 /* Build configuration list for PBXAggregateTarget "ArchiveAndValidate" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5BFCC901252E56C0000564E9 /* Debug */, + 5BFCC902252E56C0000564E9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 5BFCC8C8252E3B9D000564E9 /* Project object */; +} diff --git a/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample.xcodeproj/xcshareddata/xcschemes/ArchiveAndValidate.xcscheme b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample.xcodeproj/xcshareddata/xcschemes/ArchiveAndValidate.xcscheme new file mode 100644 index 0000000000..f9f2a11f22 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample.xcodeproj/xcshareddata/xcschemes/ArchiveAndValidate.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/AppDelegate.swift b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/AppDelegate.swift new file mode 100644 index 0000000000..5bf5dea2a0 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/AppDelegate.swift @@ -0,0 +1,24 @@ +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + // MARK: UISceneSession Lifecycle + + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } + + func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. + } +} diff --git a/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000000..9221b9bb1a --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/Assets.xcassets/Contents.json b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/Assets.xcassets/Contents.json new file mode 100644 index 0000000000..73c00596a7 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/Base.lproj/LaunchScreen.storyboard b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000000..865e9329f3 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/Base.lproj/Main.storyboard b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/Base.lproj/Main.storyboard new file mode 100644 index 0000000000..25a763858e --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/Base.lproj/Main.storyboard @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/Info.plist b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/Info.plist new file mode 100644 index 0000000000..2a3483c0d2 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/Info.plist @@ -0,0 +1,64 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + UISceneStoryboardFile + Main + + + + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/SceneDelegate.swift b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/SceneDelegate.swift new file mode 100644 index 0000000000..813c432f21 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/SceneDelegate.swift @@ -0,0 +1,41 @@ +import UIKit + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + guard let _ = (scene as? UIWindowScene) else { return } + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } +} diff --git a/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/ViewController.swift b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/ViewController.swift new file mode 100644 index 0000000000..7463157494 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/VendoredXCFrameworkExample/ViewController.swift @@ -0,0 +1,11 @@ +import CoconutLib +import UIKit + +class ViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + Coconut().makeCoconuts() + } +} diff --git a/examples/Oddly-Named-XCF-Slices-Example/archiveAndValidate.sh b/examples/Oddly-Named-XCF-Slices-Example/archiveAndValidate.sh new file mode 100755 index 0000000000..120e32fc64 --- /dev/null +++ b/examples/Oddly-Named-XCF-Slices-Example/archiveAndValidate.sh @@ -0,0 +1,85 @@ +#!/usr/bin/env sh +# +# This script is executed by the ArchiveAndValidate target in the Xcode project. +# It will generate an archive build of the example project and then validate +# that the expected debug symbols (dSYMs and BCSymbolMaps) are present in the +# built archive. It will also validate that the symbols are not present in the +# embedded copy of the .frameworks. +# + +exitCode=0 + +archivePath="${BUILD_DIR}/VendoredXCFrameworkExample.xcarchive" + +xcodebuild archive \ + -workspace "${PROJECT_DIR}/Examples.xcworkspace" \ + -scheme "VendoredXCFrameworkExample" \ + -configuration "Release" \ + -archivePath "${archivePath}" \ + CODE_SIGN_IDENTITY="" \ + CODE_SIGNING_REQUIRED=NO \ + CODE_SIGN_ENTITLEMENTS="" \ + CODE_SIGNING_ALLOWED="NO" + +# --------------------------------------- +# Collecting debug symbols in archive +# --------------------------------------- + +# Ensure the expected dSYMs are in the root of the archive +dsymsPath="${archivePath}/dSYMs" + +if ! test -d "$dsymsPath/VendoredXCFrameworkExample.app.dSYM"; then + echo "error: Missing dSYM: VendoredXCFrameworkExample.app.dSYM" + exitCode=1 +fi + +if ! test -d "$dsymsPath/CoconutLib.framework.dSYM"; then + echo "error: Missing dSYM: CoconutLib.framework.dSYM" + exitCode=1 +fi + +appPath="${archivePath}/Products/Applications/VendoredXCFrameworkExample.app" + +if ! [[ "$(file -b "${appPath}/Frameworks/CoconutLib.framework/CoconutLib")" == *"arm64"* ]]; then + echo "error: wrong arch: $(file -b "${appPath}/Frameworks/CoconutLib.framework/CoconutLib")" + exitCode=1 +fi + +archivePath="${BUILD_DIR}/VendoredXCFrameworkExample-Simulator.xcarchive" + +xcodebuild archive \ + -workspace "${PROJECT_DIR}/Examples.xcworkspace" \ + -scheme "VendoredXCFrameworkExample" \ + -configuration "Release" \ + -sdk iphonesimulator \ + -archivePath "${archivePath}" \ + CODE_SIGN_IDENTITY="" \ + CODE_SIGNING_REQUIRED=NO \ + CODE_SIGN_ENTITLEMENTS="" \ + CODE_SIGNING_ALLOWED="NO" + +# --------------------------------------- +# Collecting debug symbols in archive +# --------------------------------------- + +# Ensure the expected dSYMs are in the root of the archive +dsymsPath="${archivePath}/dSYMs" + +if ! test -d "$dsymsPath/VendoredXCFrameworkExample.app.dSYM"; then + echo "error: Missing dSYM: VendoredXCFrameworkExample.app.dSYM" + exitCode=1 +fi + +if ! test -d "$dsymsPath/CoconutLib.framework.dSYM"; then + echo "error: Missing dSYM: CoconutLib.framework.dSYM" + exitCode=1 +fi + +appPath="${archivePath}/Products/Applications/VendoredXCFrameworkExample.app" + +if ! [[ "$(file -b "${appPath}/Frameworks/CoconutLib.framework/CoconutLib")" == *"x86_64"* ]]; then + echo "error: wrong arch: $(file -b "${appPath}/Frameworks/CoconutLib.framework/CoconutLib")" + exitCode=1 +fi + +exit $exitCode