restructure as standalone iOS app + iMessage extension
convert container from Messages-only app to regular iOS app, move shared code (models, api client, store) to Shared/ group, add app group entitlements for cross-process data sharing, rewrite StickerStore for shared UserDefaults + container, create SwiftUI app entry point, simplify extension to read-only browser Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -65,9 +65,21 @@
|
||||
path = "StickerCloner MessagesExtension";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3FD2D01C2F57098E00B76B50 /* Shared */ = {
|
||||
isa = PBXFileSystemSynchronizedRootGroup;
|
||||
path = Shared;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXFileSystemSynchronizedRootGroup section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
3FD2D01B2F57098E00B76B50 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
3FD2CFFD2F57098D00B76B50 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@@ -83,6 +95,7 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3FD2CFF92F57098B00B76B50 /* StickerCloner */,
|
||||
3FD2D01C2F57098E00B76B50 /* Shared */,
|
||||
3FD2D0072F57098D00B76B50 /* StickerCloner MessagesExtension */,
|
||||
3FD2D0042F57098D00B76B50 /* Frameworks */,
|
||||
3FD2CFF82F57098B00B76B50 /* Products */,
|
||||
@@ -113,6 +126,8 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3FD2D0172F57098E00B76B50 /* Build configuration list for PBXNativeTarget "StickerCloner" */;
|
||||
buildPhases = (
|
||||
3FD2D01A2F57098E00B76B50 /* Sources */,
|
||||
3FD2D01B2F57098E00B76B50 /* Frameworks */,
|
||||
3FD2CFF52F57098B00B76B50 /* Resources */,
|
||||
3FD2D0162F57098E00B76B50 /* Embed Foundation Extensions */,
|
||||
);
|
||||
@@ -123,13 +138,14 @@
|
||||
);
|
||||
fileSystemSynchronizedGroups = (
|
||||
3FD2CFF92F57098B00B76B50 /* StickerCloner */,
|
||||
3FD2D01C2F57098E00B76B50 /* Shared */,
|
||||
);
|
||||
name = StickerCloner;
|
||||
packageProductDependencies = (
|
||||
);
|
||||
productName = StickerCloner;
|
||||
productReference = 3FD2CFF72F57098B00B76B50 /* StickerCloner.app */;
|
||||
productType = "com.apple.product-type.application.messages";
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
3FD2CFFF2F57098D00B76B50 /* StickerCloner MessagesExtension */ = {
|
||||
isa = PBXNativeTarget;
|
||||
@@ -145,6 +161,7 @@
|
||||
);
|
||||
fileSystemSynchronizedGroups = (
|
||||
3FD2D0072F57098D00B76B50 /* StickerCloner MessagesExtension */,
|
||||
3FD2D01C2F57098E00B76B50 /* Shared */,
|
||||
);
|
||||
name = "StickerCloner MessagesExtension";
|
||||
packageProductDependencies = (
|
||||
@@ -209,6 +226,13 @@
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
3FD2D01A2F57098E00B76B50 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
3FD2CFFC2F57098D00B76B50 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@@ -231,6 +255,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon";
|
||||
CODE_SIGN_ENTITLEMENTS = "StickerCloner MessagesExtension/StickerClonerMessagesExtension.entitlements";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEVELOPMENT_TEAM = NG5W75WE8U;
|
||||
@@ -260,6 +285,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon";
|
||||
CODE_SIGN_ENTITLEMENTS = "StickerCloner MessagesExtension/StickerClonerMessagesExtension.entitlements";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEVELOPMENT_TEAM = NG5W75WE8U;
|
||||
@@ -410,6 +436,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_ENTITLEMENTS = StickerCloner/StickerCloner.entitlements;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEVELOPMENT_TEAM = NG5W75WE8U;
|
||||
@@ -433,6 +460,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_ENTITLEMENTS = StickerCloner/StickerCloner.entitlements;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEVELOPMENT_TEAM = NG5W75WE8U;
|
||||
|
||||
@@ -35,27 +35,21 @@
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
askForAppToLaunch = "Yes"
|
||||
launchAutomaticallySubstyle = "2"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<RemoteRunnable
|
||||
runnableDebuggingMode = "2"
|
||||
BundleIdentifier = "com.apple.MobileSMS"
|
||||
RemotePath = "/Applications/MobileSMS.app">
|
||||
</RemoteRunnable>
|
||||
<MacroExpansion>
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "3FD2CFFF2F57098D00B76B50"
|
||||
BuildableName = "StickerCloner MessagesExtension.appex"
|
||||
BlueprintName = "StickerCloner MessagesExtension"
|
||||
BlueprintIdentifier = "3FD2CFF62F57098B00B76B50"
|
||||
BuildableName = "StickerCloner.app"
|
||||
BlueprintName = "StickerCloner"
|
||||
ReferencedContainer = "container:StickerCloner.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</BuildableProductRunnable>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
@@ -63,6 +57,16 @@
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "3FD2CFF62F57098B00B76B50"
|
||||
BuildableName = "StickerCloner.app"
|
||||
BlueprintName = "StickerCloner"
|
||||
ReferencedContainer = "container:StickerCloner.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
|
||||
Reference in New Issue
Block a user