Remade project structure

This commit is contained in:
Joshua Higgins
2025-06-04 13:57:32 -04:00
parent b27b223a5e
commit 718436764d
57 changed files with 925 additions and 894 deletions

View File

@@ -1,813 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 77;
objects = {
/* Begin PBXBuildFile section */
1B3192822DEDCF86007850B9 /* GIFCollector MessagesExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1B3192812DEDCF86007850B9 /* GIFCollector MessagesExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
1B3192872DEDCF86007850B9 /* Messages.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B3192862DEDCF86007850B9 /* Messages.framework */; };
1BDF21552DEFEF6B00128C3C /* GIFCollector ShareExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1BDF21462DEFE9A500128C3C /* GIFCollector ShareExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
1BDF21722DEFF72800128C3C /* GIFCollector MessagesExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1B3192812DEDCF86007850B9 /* GIFCollector MessagesExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
1BDF21752DEFF72800128C3C /* GIFCollector ShareExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1BDF21462DEFE9A500128C3C /* GIFCollector ShareExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
1B3192832DEDCF86007850B9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1B3192722DEDCF83007850B9 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 1B3192802DEDCF86007850B9;
remoteInfo = "GIFCollector MessagesExtension";
};
1BDF21562DEFEF6B00128C3C /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1B3192722DEDCF83007850B9 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 1BDF21452DEFE9A500128C3C;
remoteInfo = "GIFCollector ShareExtension";
};
1BDF21732DEFF72800128C3C /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1B3192722DEDCF83007850B9 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 1B3192802DEDCF86007850B9;
remoteInfo = "GIFCollector MessagesExtension";
};
1BDF21762DEFF72800128C3C /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1B3192722DEDCF83007850B9 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 1BDF21452DEFE9A500128C3C;
remoteInfo = "GIFCollector ShareExtension";
};
1BDF21792DEFF72D00128C3C /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1B3192722DEDCF83007850B9 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 1BDF21452DEFE9A500128C3C;
remoteInfo = "GIFCollector ShareExtension";
};
1BDF217B2DEFF73000128C3C /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1B3192722DEDCF83007850B9 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 1B3192802DEDCF86007850B9;
remoteInfo = "GIFCollector MessagesExtension";
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
1B3192972DEDCF87007850B9 /* Embed Foundation Extensions */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 13;
files = (
1BDF21552DEFEF6B00128C3C /* GIFCollector ShareExtension.appex in Embed Foundation Extensions */,
1B3192822DEDCF86007850B9 /* GIFCollector MessagesExtension.appex in Embed Foundation Extensions */,
);
name = "Embed Foundation Extensions";
runOnlyForDeploymentPostprocessing = 0;
};
1BDF21782DEFF72800128C3C /* Embed Foundation Extensions */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 13;
files = (
1BDF21752DEFF72800128C3C /* GIFCollector ShareExtension.appex in Embed Foundation Extensions */,
1BDF21722DEFF72800128C3C /* GIFCollector MessagesExtension.appex in Embed Foundation Extensions */,
);
name = "Embed Foundation Extensions";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
1B3192782DEDCF83007850B9 /* GIFCollector.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GIFCollector.app; sourceTree = BUILT_PRODUCTS_DIR; };
1B3192812DEDCF86007850B9 /* GIFCollector MessagesExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "GIFCollector MessagesExtension.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
1B3192862DEDCF86007850B9 /* Messages.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Messages.framework; path = System/Library/Frameworks/Messages.framework; sourceTree = SDKROOT; };
1BDF21462DEFE9A500128C3C /* GIFCollector ShareExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "GIFCollector ShareExtension.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
1BDF21652DEFF71200128C3C /* GIFCollector App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "GIFCollector App.app"; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */
1B3192912DEDCF87007850B9 /* Exceptions for "GIFCollector MessagesExtension" folder in "GIFCollector MessagesExtension" target */ = {
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
membershipExceptions = (
Info.plist,
);
target = 1B3192802DEDCF86007850B9 /* GIFCollector MessagesExtension */;
};
1BDF214E2DEFE9A500128C3C /* Exceptions for "GIFCollector ShareExtension" folder in "GIFCollector ShareExtension" target */ = {
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
membershipExceptions = (
Info.plist,
);
target = 1BDF21452DEFE9A500128C3C /* GIFCollector ShareExtension */;
};
/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */
/* Begin PBXFileSystemSynchronizedRootGroup section */
1B31927A2DEDCF83007850B9 /* GIFCollector */ = {
isa = PBXFileSystemSynchronizedRootGroup;
path = GIFCollector;
sourceTree = "<group>";
};
1B3192882DEDCF86007850B9 /* GIFCollector MessagesExtension */ = {
isa = PBXFileSystemSynchronizedRootGroup;
exceptions = (
1B3192912DEDCF87007850B9 /* Exceptions for "GIFCollector MessagesExtension" folder in "GIFCollector MessagesExtension" target */,
);
path = "GIFCollector MessagesExtension";
sourceTree = "<group>";
};
1BDF21472DEFE9A500128C3C /* GIFCollector ShareExtension */ = {
isa = PBXFileSystemSynchronizedRootGroup;
exceptions = (
1BDF214E2DEFE9A500128C3C /* Exceptions for "GIFCollector ShareExtension" folder in "GIFCollector ShareExtension" target */,
);
path = "GIFCollector ShareExtension";
sourceTree = "<group>";
};
/* End PBXFileSystemSynchronizedRootGroup section */
/* Begin PBXFrameworksBuildPhase section */
1B31927E2DEDCF86007850B9 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
1B3192872DEDCF86007850B9 /* Messages.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
1BDF21432DEFE9A500128C3C /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
1BDF21622DEFF71200128C3C /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
1B3192712DEDCF83007850B9 = {
isa = PBXGroup;
children = (
1B31927A2DEDCF83007850B9 /* GIFCollector */,
1B3192882DEDCF86007850B9 /* GIFCollector MessagesExtension */,
1BDF21472DEFE9A500128C3C /* GIFCollector ShareExtension */,
1B3192852DEDCF86007850B9 /* Frameworks */,
1B3192792DEDCF83007850B9 /* Products */,
);
sourceTree = "<group>";
};
1B3192792DEDCF83007850B9 /* Products */ = {
isa = PBXGroup;
children = (
1B3192782DEDCF83007850B9 /* GIFCollector.app */,
1B3192812DEDCF86007850B9 /* GIFCollector MessagesExtension.appex */,
1BDF21462DEFE9A500128C3C /* GIFCollector ShareExtension.appex */,
1BDF21652DEFF71200128C3C /* GIFCollector App.app */,
);
name = Products;
sourceTree = "<group>";
};
1B3192852DEDCF86007850B9 /* Frameworks */ = {
isa = PBXGroup;
children = (
1B3192862DEDCF86007850B9 /* Messages.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
1B3192772DEDCF83007850B9 /* GIFCollector */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1B3192982DEDCF87007850B9 /* Build configuration list for PBXNativeTarget "GIFCollector" */;
buildPhases = (
1B3192762DEDCF83007850B9 /* Resources */,
1B3192972DEDCF87007850B9 /* Embed Foundation Extensions */,
);
buildRules = (
);
dependencies = (
1B3192842DEDCF86007850B9 /* PBXTargetDependency */,
1BDF21572DEFEF6B00128C3C /* PBXTargetDependency */,
);
fileSystemSynchronizedGroups = (
1B31927A2DEDCF83007850B9 /* GIFCollector */,
);
name = GIFCollector;
packageProductDependencies = (
);
productName = GIFCollector;
productReference = 1B3192782DEDCF83007850B9 /* GIFCollector.app */;
productType = "com.apple.product-type.application.messages";
};
1B3192802DEDCF86007850B9 /* GIFCollector MessagesExtension */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1B3192922DEDCF87007850B9 /* Build configuration list for PBXNativeTarget "GIFCollector MessagesExtension" */;
buildPhases = (
1B31927D2DEDCF86007850B9 /* Sources */,
1B31927E2DEDCF86007850B9 /* Frameworks */,
1B31927F2DEDCF86007850B9 /* Resources */,
);
buildRules = (
);
dependencies = (
);
fileSystemSynchronizedGroups = (
1B3192882DEDCF86007850B9 /* GIFCollector MessagesExtension */,
);
name = "GIFCollector MessagesExtension";
packageProductDependencies = (
);
productName = "GIFCollector MessagesExtension";
productReference = 1B3192812DEDCF86007850B9 /* GIFCollector MessagesExtension.appex */;
productType = "com.apple.product-type.app-extension.messages";
};
1BDF21452DEFE9A500128C3C /* GIFCollector ShareExtension */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1BDF214F2DEFE9A500128C3C /* Build configuration list for PBXNativeTarget "GIFCollector ShareExtension" */;
buildPhases = (
1BDF21422DEFE9A500128C3C /* Sources */,
1BDF21432DEFE9A500128C3C /* Frameworks */,
1BDF21442DEFE9A500128C3C /* Resources */,
);
buildRules = (
);
dependencies = (
);
fileSystemSynchronizedGroups = (
1BDF21472DEFE9A500128C3C /* GIFCollector ShareExtension */,
);
name = "GIFCollector ShareExtension";
packageProductDependencies = (
);
productName = "GIFCollector ShareExtension";
productReference = 1BDF21462DEFE9A500128C3C /* GIFCollector ShareExtension.appex */;
productType = "com.apple.product-type.app-extension";
};
1BDF21642DEFF71200128C3C /* GIFCollector App */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1BDF216F2DEFF71300128C3C /* Build configuration list for PBXNativeTarget "GIFCollector App" */;
buildPhases = (
1BDF21612DEFF71200128C3C /* Sources */,
1BDF21622DEFF71200128C3C /* Frameworks */,
1BDF21632DEFF71200128C3C /* Resources */,
1BDF21782DEFF72800128C3C /* Embed Foundation Extensions */,
);
buildRules = (
);
dependencies = (
1BDF21742DEFF72800128C3C /* PBXTargetDependency */,
1BDF21772DEFF72800128C3C /* PBXTargetDependency */,
1BDF217A2DEFF72D00128C3C /* PBXTargetDependency */,
1BDF217C2DEFF73000128C3C /* PBXTargetDependency */,
);
name = "GIFCollector App";
packageProductDependencies = (
);
productName = "GIFCollector App";
productReference = 1BDF21652DEFF71200128C3C /* GIFCollector App.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
1B3192722DEDCF83007850B9 /* Project object */ = {
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = 1;
LastSwiftUpdateCheck = 1640;
LastUpgradeCheck = 1640;
TargetAttributes = {
1B3192772DEDCF83007850B9 = {
CreatedOnToolsVersion = 16.4;
};
1B3192802DEDCF86007850B9 = {
CreatedOnToolsVersion = 16.4;
};
1BDF21452DEFE9A500128C3C = {
CreatedOnToolsVersion = 16.4;
};
1BDF21642DEFF71200128C3C = {
CreatedOnToolsVersion = 16.4;
};
};
};
buildConfigurationList = 1B3192752DEDCF83007850B9 /* Build configuration list for PBXProject "GIFCollector" */;
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 1B3192712DEDCF83007850B9;
minimizedProjectReferenceProxies = 1;
preferredProjectObjectVersion = 77;
productRefGroup = 1B3192792DEDCF83007850B9 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
1B3192772DEDCF83007850B9 /* GIFCollector */,
1B3192802DEDCF86007850B9 /* GIFCollector MessagesExtension */,
1BDF21452DEFE9A500128C3C /* GIFCollector ShareExtension */,
1BDF21642DEFF71200128C3C /* GIFCollector App */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
1B3192762DEDCF83007850B9 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
1B31927F2DEDCF86007850B9 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
1BDF21442DEFE9A500128C3C /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
1BDF21632DEFF71200128C3C /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
1B31927D2DEDCF86007850B9 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
1BDF21422DEFE9A500128C3C /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
1BDF21612DEFF71200128C3C /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
1B3192842DEDCF86007850B9 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 1B3192802DEDCF86007850B9 /* GIFCollector MessagesExtension */;
targetProxy = 1B3192832DEDCF86007850B9 /* PBXContainerItemProxy */;
};
1BDF21572DEFEF6B00128C3C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 1BDF21452DEFE9A500128C3C /* GIFCollector ShareExtension */;
targetProxy = 1BDF21562DEFEF6B00128C3C /* PBXContainerItemProxy */;
};
1BDF21742DEFF72800128C3C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 1B3192802DEDCF86007850B9 /* GIFCollector MessagesExtension */;
targetProxy = 1BDF21732DEFF72800128C3C /* PBXContainerItemProxy */;
};
1BDF21772DEFF72800128C3C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 1BDF21452DEFE9A500128C3C /* GIFCollector ShareExtension */;
targetProxy = 1BDF21762DEFF72800128C3C /* PBXContainerItemProxy */;
};
1BDF217A2DEFF72D00128C3C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 1BDF21452DEFE9A500128C3C /* GIFCollector ShareExtension */;
targetProxy = 1BDF21792DEFF72D00128C3C /* PBXContainerItemProxy */;
};
1BDF217C2DEFF73000128C3C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 1B3192802DEDCF86007850B9 /* GIFCollector MessagesExtension */;
targetProxy = 1BDF217B2DEFF73000128C3C /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
1B3192932DEDCF87007850B9 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon";
CODE_SIGN_ENTITLEMENTS = "GIFCollector MessagesExtension/GIFCollector MessagesExtension.entitlements";
CODE_SIGN_IDENTITY = "";
CODE_SIGN_INJECT_BASE_ENTITLEMENTS = YES;
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "GIFCollector MessagesExtension/Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = "GIF Collector";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 100.2.0;
PRODUCT_BUNDLE_IDENTIFIER = com.abunchofknowitalls.GIFCollector.MessagesExtension;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
1B3192942DEDCF87007850B9 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon";
CODE_SIGN_ENTITLEMENTS = "GIFCollector MessagesExtension/GIFCollector MessagesExtension.entitlements";
CODE_SIGN_IDENTITY = "";
CODE_SIGN_INJECT_BASE_ENTITLEMENTS = YES;
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "GIFCollector MessagesExtension/Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = "GIF Collector";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 100.2.0;
PRODUCT_BUNDLE_IDENTIFIER = com.abunchofknowitalls.GIFCollector.MessagesExtension;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
1B3192952DEDCF87007850B9 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
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++20";
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_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
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;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;
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 = 18.0;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
1B3192962DEDCF87007850B9 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
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++20";
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_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
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;
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;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 18.0;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
1B3192992DEDCF87007850B9 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "";
CODE_SIGN_INJECT_BASE_ENTITLEMENTS = YES;
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_CFBundleDisplayName = "GIF Collector";
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
MARKETING_VERSION = 100.2.0;
PRODUCT_BUNDLE_IDENTIFIER = com.abunchofknowitalls.GIFCollector;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
1B31929A2DEDCF87007850B9 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "";
CODE_SIGN_INJECT_BASE_ENTITLEMENTS = YES;
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_CFBundleDisplayName = "GIF Collector";
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
MARKETING_VERSION = 100.2.0;
PRODUCT_BUNDLE_IDENTIFIER = com.abunchofknowitalls.GIFCollector;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
1BDF21502DEFE9A500128C3C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_ENTITLEMENTS = "GIFCollector ShareExtension/GIFCollector ShareExtension.entitlements";
CODE_SIGN_IDENTITY = "";
CODE_SIGN_INJECT_BASE_ENTITLEMENTS = YES;
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "GIFCollector ShareExtension/Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = "GIFCollector ShareExtension";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 100.2.0;
PRODUCT_BUNDLE_IDENTIFIER = com.abunchofknowitalls.GIFCollector.ShareExtension;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
1BDF21512DEFE9A500128C3C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_ENTITLEMENTS = "GIFCollector ShareExtension/GIFCollector ShareExtension.entitlements";
CODE_SIGN_IDENTITY = "";
CODE_SIGN_INJECT_BASE_ENTITLEMENTS = YES;
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "GIFCollector ShareExtension/Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = "GIFCollector ShareExtension";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 100.2.0;
PRODUCT_BUNDLE_IDENTIFIER = com.abunchofknowitalls.GIFCollector.ShareExtension;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
1BDF21702DEFF71300128C3C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
IPHONEOS_DEPLOYMENT_TARGET = 18.5;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.abunchofknowitalls.GIFCollector-App";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
1BDF21712DEFF71300128C3C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
IPHONEOS_DEPLOYMENT_TARGET = 18.5;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.abunchofknowitalls.GIFCollector-App";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
1B3192752DEDCF83007850B9 /* Build configuration list for PBXProject "GIFCollector" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1B3192952DEDCF87007850B9 /* Debug */,
1B3192962DEDCF87007850B9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
1B3192922DEDCF87007850B9 /* Build configuration list for PBXNativeTarget "GIFCollector MessagesExtension" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1B3192932DEDCF87007850B9 /* Debug */,
1B3192942DEDCF87007850B9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
1B3192982DEDCF87007850B9 /* Build configuration list for PBXNativeTarget "GIFCollector" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1B3192992DEDCF87007850B9 /* Debug */,
1B31929A2DEDCF87007850B9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
1BDF214F2DEFE9A500128C3C /* Build configuration list for PBXNativeTarget "GIFCollector ShareExtension" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1BDF21502DEFE9A500128C3C /* Debug */,
1BDF21512DEFE9A500128C3C /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
1BDF216F2DEFF71300128C3C /* Build configuration list for PBXNativeTarget "GIFCollector App" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1BDF21702DEFF71300128C3C /* Debug */,
1BDF21712DEFF71300128C3C /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 1B3192722DEDCF83007850B9 /* Project object */;
}

View File

@@ -1,21 +0,0 @@
import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Create window
window = UIWindow(frame: UIScreen.main.bounds)
// Create and set the root view controller
let viewController = ViewController()
window?.rootViewController = viewController
// Make the window visible
window?.makeKeyAndVisible()
return true
}
}

View File

@@ -0,0 +1,11 @@
{
"colors" : [
{
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,61 @@
//
// ContentView.swift
// gif
//
// Created by Joshua Higgins on 6/4/25.
//
import SwiftUI
import SwiftData
struct ContentView: View {
@Environment(\.modelContext) private var modelContext
@Query private var items: [Item]
var body: some View {
NavigationSplitView {
List {
ForEach(items) { item in
NavigationLink {
Text("Item at \(item.timestamp, format: Date.FormatStyle(date: .numeric, time: .standard))")
} label: {
Text(item.timestamp, format: Date.FormatStyle(date: .numeric, time: .standard))
}
}
.onDelete(perform: deleteItems)
}
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
EditButton()
}
ToolbarItem {
Button(action: addItem) {
Label("Add Item", systemImage: "plus")
}
}
}
} detail: {
Text("Select an item")
}
}
private func addItem() {
withAnimation {
let newItem = Item(timestamp: Date())
modelContext.insert(newItem)
}
}
private func deleteItems(offsets: IndexSet) {
withAnimation {
for index in offsets {
modelContext.delete(items[index])
}
}
}
}
#Preview {
ContentView()
.modelContainer(for: Item.self, inMemory: true)
}

View File

@@ -4,7 +4,7 @@
<dict>
<key>com.apple.security.application-groups</key>
<array>
<string>group.com.abunchofknowitalls.gif</string>
<string>group.com.abunchofknowitalls.GIFCollector</string>
</array>
</dict>
</plist>

18
GIFCollector/Item.swift Normal file
View File

@@ -0,0 +1,18 @@
//
// Item.swift
// gif
//
// Created by Joshua Higgins on 6/4/25.
//
import Foundation
import SwiftData
@Model
final class Item {
var timestamp: Date
init(timestamp: Date) {
self.timestamp = timestamp
}
}

View File

@@ -1,29 +0,0 @@
import UIKit
class ViewController: UIViewController {
private let helloLabel: UILabel = {
let label = UILabel()
label.text = "Hello World!"
label.font = UIFont.systemFont(ofSize: 24, weight: .bold)
label.textAlignment = .center
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
}
private func setupUI() {
view.backgroundColor = .white
view.addSubview(helloLabel)
NSLayoutConstraint.activate([
helloLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor),
helloLabel.centerYAnchor.constraint(equalTo: view.centerYAnchor)
])
}
}

32
GIFCollector/gifApp.swift Normal file
View File

@@ -0,0 +1,32 @@
//
// gifApp.swift
// gif
//
// Created by Joshua Higgins on 6/4/25.
//
import SwiftUI
import SwiftData
@main
struct gifApp: App {
var sharedModelContainer: ModelContainer = {
let schema = Schema([
Item.self,
])
let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false)
do {
return try ModelContainer(for: schema, configurations: [modelConfiguration])
} catch {
fatalError("Could not create ModelContainer: \(error)")
}
}()
var body: some Scene {
WindowGroup {
ContentView()
}
.modelContainer(sharedModelContainer)
}
}

View File

@@ -4,7 +4,7 @@
<dict>
<key>com.apple.security.application-groups</key>
<array>
<string>group.com.abunchofknowitalls.gif</string>
<string>group.com.abunchofknowitalls.GIFCollector</string>
</array>
</dict>
</plist>

View File

Before

Width:  |  Height:  |  Size: 261 KiB

After

Width:  |  Height:  |  Size: 261 KiB

View File

Before

Width:  |  Height:  |  Size: 387 KiB

After

Width:  |  Height:  |  Size: 387 KiB

View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.application-groups</key>
<array>
<string>group.com.abunchofknowitalls.GIFCollector</string>
</array>
</dict>
</plist>

View File

@@ -8,6 +8,20 @@
<dict>
<key>NSExtensionActivationRule</key>
<dict>
<key>NSExtensionActivationRule</key>
<string>SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
(
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO &quot;com.compuserve.gif&quot;
)
).@count == $extensionItem.attachments.@count
).@count == 1</string>
<key>NSExtensionActivationSupportsFileWithMaxCount</key>
<integer>1</integer>
<key>NSExtensionActivationSupportsImageWithMaxCount</key>

View File

@@ -0,0 +1,661 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 77;
objects = {
/* Begin PBXBuildFile section */
1B29521A2DF0B6A1002148EF /* Messages.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B2952192DF0B6A1002148EF /* Messages.framework */; };
1B2952262DF0B6A3002148EF /* GIFCollectorIM.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1B2952172DF0B6A1002148EF /* GIFCollectorIM.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
1B29523A2DF0B734002148EF /* GIFCollectorShare.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1B2952302DF0B734002148EF /* GIFCollectorShare.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
1B2952242DF0B6A3002148EF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1B2951FB2DF0B611002148EF /* Project object */;
proxyType = 1;
remoteGlobalIDString = 1B2952162DF0B6A1002148EF;
remoteInfo = "GIF Collector";
};
1B2952382DF0B734002148EF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1B2951FB2DF0B611002148EF /* Project object */;
proxyType = 1;
remoteGlobalIDString = 1B29522F2DF0B734002148EF;
remoteInfo = share;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
1B29522B2DF0B6A3002148EF /* Embed Foundation Extensions */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 13;
files = (
1B29523A2DF0B734002148EF /* GIFCollectorShare.appex in Embed Foundation Extensions */,
1B2952262DF0B6A3002148EF /* GIFCollectorIM.appex in Embed Foundation Extensions */,
);
name = "Embed Foundation Extensions";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
1B2952032DF0B611002148EF /* GIFCollector.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GIFCollector.app; sourceTree = BUILT_PRODUCTS_DIR; };
1B2952172DF0B6A1002148EF /* GIFCollectorIM.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = GIFCollectorIM.appex; sourceTree = BUILT_PRODUCTS_DIR; };
1B2952192DF0B6A1002148EF /* Messages.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Messages.framework; path = System/Library/Frameworks/Messages.framework; sourceTree = SDKROOT; };
1B2952302DF0B734002148EF /* GIFCollectorShare.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = GIFCollectorShare.appex; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */
1B2952272DF0B6A3002148EF /* Exceptions for "GIFCollectorIM" folder in "GIFCollectorIM" target */ = {
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
membershipExceptions = (
Info.plist,
);
target = 1B2952162DF0B6A1002148EF /* GIFCollectorIM */;
};
1B29523B2DF0B734002148EF /* Exceptions for "GIFCollectorShare" folder in "GIFCollectorShare" target */ = {
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
membershipExceptions = (
Info.plist,
);
target = 1B29522F2DF0B734002148EF /* GIFCollectorShare */;
};
/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */
/* Begin PBXFileSystemSynchronizedRootGroup section */
1B2952052DF0B611002148EF /* GIFCollector */ = {
isa = PBXFileSystemSynchronizedRootGroup;
path = GIFCollector;
sourceTree = "<group>";
};
1B29521B2DF0B6A2002148EF /* GIFCollectorIM */ = {
isa = PBXFileSystemSynchronizedRootGroup;
exceptions = (
1B2952272DF0B6A3002148EF /* Exceptions for "GIFCollectorIM" folder in "GIFCollectorIM" target */,
);
path = GIFCollectorIM;
sourceTree = "<group>";
};
1B2952312DF0B734002148EF /* GIFCollectorShare */ = {
isa = PBXFileSystemSynchronizedRootGroup;
exceptions = (
1B29523B2DF0B734002148EF /* Exceptions for "GIFCollectorShare" folder in "GIFCollectorShare" target */,
);
path = GIFCollectorShare;
sourceTree = "<group>";
};
/* End PBXFileSystemSynchronizedRootGroup section */
/* Begin PBXFrameworksBuildPhase section */
1B2952002DF0B611002148EF /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
1B2952142DF0B6A1002148EF /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
1B29521A2DF0B6A1002148EF /* Messages.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
1B29522D2DF0B734002148EF /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
1B2951FA2DF0B611002148EF = {
isa = PBXGroup;
children = (
1B2952052DF0B611002148EF /* GIFCollector */,
1B29521B2DF0B6A2002148EF /* GIFCollectorIM */,
1B2952312DF0B734002148EF /* GIFCollectorShare */,
1B2952182DF0B6A1002148EF /* Frameworks */,
1B2952042DF0B611002148EF /* Products */,
);
sourceTree = "<group>";
};
1B2952042DF0B611002148EF /* Products */ = {
isa = PBXGroup;
children = (
1B2952032DF0B611002148EF /* GIFCollector.app */,
1B2952172DF0B6A1002148EF /* GIFCollectorIM.appex */,
1B2952302DF0B734002148EF /* GIFCollectorShare.appex */,
);
name = Products;
sourceTree = "<group>";
};
1B2952182DF0B6A1002148EF /* Frameworks */ = {
isa = PBXGroup;
children = (
1B2952192DF0B6A1002148EF /* Messages.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
1B2952022DF0B611002148EF /* GIFCollector */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1B2952102DF0B613002148EF /* Build configuration list for PBXNativeTarget "GIFCollector" */;
buildPhases = (
1B2951FF2DF0B611002148EF /* Sources */,
1B2952002DF0B611002148EF /* Frameworks */,
1B2952012DF0B611002148EF /* Resources */,
1B29522B2DF0B6A3002148EF /* Embed Foundation Extensions */,
);
buildRules = (
);
dependencies = (
1B2952252DF0B6A3002148EF /* PBXTargetDependency */,
1B2952392DF0B734002148EF /* PBXTargetDependency */,
);
fileSystemSynchronizedGroups = (
1B2952052DF0B611002148EF /* GIFCollector */,
);
name = GIFCollector;
packageProductDependencies = (
);
productName = gif;
productReference = 1B2952032DF0B611002148EF /* GIFCollector.app */;
productType = "com.apple.product-type.application";
};
1B2952162DF0B6A1002148EF /* GIFCollectorIM */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1B2952282DF0B6A3002148EF /* Build configuration list for PBXNativeTarget "GIFCollectorIM" */;
buildPhases = (
1B2952132DF0B6A1002148EF /* Sources */,
1B2952142DF0B6A1002148EF /* Frameworks */,
1B2952152DF0B6A1002148EF /* Resources */,
);
buildRules = (
);
dependencies = (
);
fileSystemSynchronizedGroups = (
1B29521B2DF0B6A2002148EF /* GIFCollectorIM */,
);
name = GIFCollectorIM;
packageProductDependencies = (
);
productName = "GIF Collector";
productReference = 1B2952172DF0B6A1002148EF /* GIFCollectorIM.appex */;
productType = "com.apple.product-type.app-extension.messages";
};
1B29522F2DF0B734002148EF /* GIFCollectorShare */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1B29523C2DF0B734002148EF /* Build configuration list for PBXNativeTarget "GIFCollectorShare" */;
buildPhases = (
1B29522C2DF0B734002148EF /* Sources */,
1B29522D2DF0B734002148EF /* Frameworks */,
1B29522E2DF0B734002148EF /* Resources */,
);
buildRules = (
);
dependencies = (
);
fileSystemSynchronizedGroups = (
1B2952312DF0B734002148EF /* GIFCollectorShare */,
);
name = GIFCollectorShare;
packageProductDependencies = (
);
productName = share;
productReference = 1B2952302DF0B734002148EF /* GIFCollectorShare.appex */;
productType = "com.apple.product-type.app-extension";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
1B2951FB2DF0B611002148EF /* Project object */ = {
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = 1;
LastSwiftUpdateCheck = 1640;
LastUpgradeCheck = 1640;
TargetAttributes = {
1B2952022DF0B611002148EF = {
CreatedOnToolsVersion = 16.4;
};
1B2952162DF0B6A1002148EF = {
CreatedOnToolsVersion = 16.4;
};
1B29522F2DF0B734002148EF = {
CreatedOnToolsVersion = 16.4;
};
};
};
buildConfigurationList = 1B2951FE2DF0B611002148EF /* Build configuration list for PBXProject "gif" */;
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 1B2951FA2DF0B611002148EF;
minimizedProjectReferenceProxies = 1;
preferredProjectObjectVersion = 77;
productRefGroup = 1B2952042DF0B611002148EF /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
1B2952022DF0B611002148EF /* GIFCollector */,
1B2952162DF0B6A1002148EF /* GIFCollectorIM */,
1B29522F2DF0B734002148EF /* GIFCollectorShare */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
1B2952012DF0B611002148EF /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
1B2952152DF0B6A1002148EF /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
1B29522E2DF0B734002148EF /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
1B2951FF2DF0B611002148EF /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
1B2952132DF0B6A1002148EF /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
1B29522C2DF0B734002148EF /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
1B2952252DF0B6A3002148EF /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 1B2952162DF0B6A1002148EF /* GIFCollectorIM */;
targetProxy = 1B2952242DF0B6A3002148EF /* PBXContainerItemProxy */;
};
1B2952392DF0B734002148EF /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 1B29522F2DF0B734002148EF /* GIFCollectorShare */;
targetProxy = 1B2952382DF0B734002148EF /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
1B29520E2DF0B613002148EF /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
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++20";
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_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
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;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;
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 = 18.5;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
1B29520F2DF0B613002148EF /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
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++20";
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_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
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;
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;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 18.5;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
1B2952112DF0B613002148EF /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = GIFCollector/GIFCollector.entitlements;
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_CFBundleDisplayName = "GIF Collector";
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 100.3.0;
PRODUCT_BUNDLE_IDENTIFIER = com.abunchofknowitalls.GIFCollector;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
1B2952122DF0B613002148EF /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = GIFCollector/GIFCollector.entitlements;
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_CFBundleDisplayName = "GIF Collector";
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 100.3.0;
PRODUCT_BUNDLE_IDENTIFIER = com.abunchofknowitalls.GIFCollector;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
1B2952292DF0B6A3002148EF /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon";
CODE_SIGN_ENTITLEMENTS = GIFCollectorIM/GIFCollectorIM.entitlements;
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = GIFCollectorIM/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "GIF Collector";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 100.3.0;
PRODUCT_BUNDLE_IDENTIFIER = com.abunchofknowitalls.GIFCollector.iMessage;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
1B29522A2DF0B6A3002148EF /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon";
CODE_SIGN_ENTITLEMENTS = GIFCollectorIM/GIFCollectorIM.entitlements;
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = GIFCollectorIM/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "GIF Collector";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 100.3.0;
PRODUCT_BUNDLE_IDENTIFIER = com.abunchofknowitalls.GIFCollector.iMessage;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
1B29523D2DF0B734002148EF /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_ENTITLEMENTS = GIFCollectorShare/GIFCollectorShare.entitlements;
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = GIFCollectorShare/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "GIF Collector";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 100.3.0;
PRODUCT_BUNDLE_IDENTIFIER = com.abunchofknowitalls.GIFCollector.Share;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
1B29523E2DF0B734002148EF /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_ENTITLEMENTS = GIFCollectorShare/GIFCollectorShare.entitlements;
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = GIFCollectorShare/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "GIF Collector";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 100.3.0;
PRODUCT_BUNDLE_IDENTIFIER = com.abunchofknowitalls.GIFCollector.Share;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
1B2951FE2DF0B611002148EF /* Build configuration list for PBXProject "gif" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1B29520E2DF0B613002148EF /* Debug */,
1B29520F2DF0B613002148EF /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
1B2952102DF0B613002148EF /* Build configuration list for PBXNativeTarget "GIFCollector" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1B2952112DF0B613002148EF /* Debug */,
1B2952122DF0B613002148EF /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
1B2952282DF0B6A3002148EF /* Build configuration list for PBXNativeTarget "GIFCollectorIM" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1B2952292DF0B6A3002148EF /* Debug */,
1B29522A2DF0B6A3002148EF /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
1B29523C2DF0B734002148EF /* Build configuration list for PBXNativeTarget "GIFCollectorShare" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1B29523D2DF0B734002148EF /* Debug */,
1B29523E2DF0B734002148EF /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 1B2951FB2DF0B611002148EF /* Project object */;
}

View File

@@ -16,10 +16,10 @@
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1B3192802DEDCF86007850B9"
BuildableName = "GIFCollector MessagesExtension.appex"
BlueprintName = "GIFCollector MessagesExtension"
ReferencedContainer = "container:GIFCollector.xcodeproj">
BlueprintIdentifier = "1B2952162DF0B6A1002148EF"
BuildableName = "GIFCollectorIM.appex"
BlueprintName = "GIFCollectorIM"
ReferencedContainer = "container:gif.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
@@ -30,10 +30,10 @@
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1B3192772DEDCF83007850B9"
BlueprintIdentifier = "1B2952022DF0B611002148EF"
BuildableName = "GIFCollector.app"
BlueprintName = "GIFCollector"
ReferencedContainer = "container:GIFCollector.xcodeproj">
ReferencedContainer = "container:gif.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
@@ -57,26 +57,16 @@
debugServiceExtension = "internal"
allowLocationSimulation = "YES"
launchAutomaticallySubstyle = "2">
<RemoteRunnable
runnableDebuggingMode = "1"
BundleIdentifier = "com.apple.MobileSMS">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1B3192802DEDCF86007850B9"
BuildableName = "GIFCollector MessagesExtension.appex"
BlueprintName = "GIFCollector MessagesExtension"
ReferencedContainer = "container:GIFCollector.xcodeproj">
</BuildableReference>
</RemoteRunnable>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1B3192772DEDCF83007850B9"
BlueprintIdentifier = "1B2952022DF0B611002148EF"
BuildableName = "GIFCollector.app"
BlueprintName = "GIFCollector"
ReferencedContainer = "container:GIFCollector.xcodeproj">
ReferencedContainer = "container:gif.xcodeproj">
</BuildableReference>
</MacroExpansion>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
@@ -90,10 +80,10 @@
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1B3192772DEDCF83007850B9"
BlueprintIdentifier = "1B2952022DF0B611002148EF"
BuildableName = "GIFCollector.app"
BlueprintName = "GIFCollector"
ReferencedContainer = "container:GIFCollector.xcodeproj">
ReferencedContainer = "container:gif.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>

View File

@@ -15,10 +15,10 @@
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1B3192772DEDCF83007850B9"
BlueprintIdentifier = "1B2952022DF0B611002148EF"
BuildableName = "GIFCollector.app"
BlueprintName = "GIFCollector"
ReferencedContainer = "container:GIFCollector.xcodeproj">
ReferencedContainer = "container:gif.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
@@ -44,10 +44,10 @@
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1B3192772DEDCF83007850B9"
BlueprintIdentifier = "1B2952022DF0B611002148EF"
BuildableName = "GIFCollector.app"
BlueprintName = "GIFCollector"
ReferencedContainer = "container:GIFCollector.xcodeproj">
ReferencedContainer = "container:gif.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
@@ -61,10 +61,10 @@
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1B3192772DEDCF83007850B9"
BlueprintIdentifier = "1B2952022DF0B611002148EF"
BuildableName = "GIFCollector.app"
BlueprintName = "GIFCollector"
ReferencedContainer = "container:GIFCollector.xcodeproj">
ReferencedContainer = "container:gif.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>

View File

@@ -0,0 +1,97 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1640"
wasCreatedForAppExtension = "YES"
version = "2.0">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES"
buildArchitectures = "Automatic">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1B29522F2DF0B734002148EF"
BuildableName = "GIFCollectorShare.appex"
BlueprintName = "GIFCollectorShare"
ReferencedContainer = "container:gif.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1B2952022DF0B611002148EF"
BuildableName = "GIFCollector.app"
BlueprintName = "GIFCollector"
ReferencedContainer = "container:gif.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = ""
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
launchStyle = "0"
askForAppToLaunch = "Yes"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES"
launchAutomaticallySubstyle = "2">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1B2952022DF0B611002148EF"
BuildableName = "GIFCollector.app"
BlueprintName = "GIFCollector"
ReferencedContainer = "container:gif.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES"
askForAppToLaunch = "Yes"
launchAutomaticallySubstyle = "2">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1B2952022DF0B611002148EF"
BuildableName = "GIFCollector.app"
BlueprintName = "GIFCollector"
ReferencedContainer = "container:gif.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>