chore: wire up AutoFill extension target and rebrand bundle prefix

Adds the AutoFill Credential Provider Extension target (App Group +
Keychain Sharing capabilities, autofill-credential-provider
entitlement), removes the leftover SwiftData bootstrap from
MyPassApp.swift now that Item.swift is gone, and switches the bundle
ID / App Group / Keychain group prefix from com.christophevila to
org.antiloop222 to match the project's existing identifier.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WYqycDFsynHH9VnnK7LNSf
This commit is contained in:
2026-09-19 15:33:23 +02:00
co-authored by Claude Sonnet 5
parent 838e078304
commit 6279488416
1290 changed files with 364 additions and 6505 deletions
+215 -1
View File
@@ -6,6 +6,12 @@
objectVersion = 77;
objects = {
/* Begin PBXBuildFile section */
205678DB2FC0EB5200251C6B /* MyPassCore in Frameworks */ = {isa = PBXBuildFile; productRef = 205678DA2FC0EB5200251C6B /* MyPassCore */; };
2096B432305EC2B200C2F253 /* AuthenticationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 205678E32FC0F52A00251C6B /* AuthenticationServices.framework */; };
2096B43D305EC2B200C2F253 /* autofill.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 2096B431305EC2B200C2F253 /* autofill.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
205678A32FBF9CBC00251C6B /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
@@ -21,14 +27,47 @@
remoteGlobalIDString = 205678922FBF9CBB00251C6B;
remoteInfo = MyPass;
};
2096B43B305EC2B200C2F253 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 2056788B2FBF9CBB00251C6B /* Project object */;
proxyType = 1;
remoteGlobalIDString = 2096B430305EC2B200C2F253;
remoteInfo = autofill;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
205678F42FC0F52A00251C6B /* Embed Foundation Extensions */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 13;
files = (
2096B43D305EC2B200C2F253 /* autofill.appex in Embed Foundation Extensions */,
);
name = "Embed Foundation Extensions";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
205678932FBF9CBB00251C6B /* MyPass.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MyPass.app; sourceTree = BUILT_PRODUCTS_DIR; };
205678A22FBF9CBC00251C6B /* MyPassTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MyPassTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
205678AC2FBF9CBC00251C6B /* MyPassUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MyPassUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
205678E32FC0F52A00251C6B /* AuthenticationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AuthenticationServices.framework; path = System/Library/Frameworks/AuthenticationServices.framework; sourceTree = SDKROOT; };
2096B431305EC2B200C2F253 /* autofill.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = autofill.appex; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */
2096B440305EC2B200C2F253 /* Exceptions for "autofill" folder in "autofill" target */ = {
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
membershipExceptions = (
Info.plist,
);
target = 2096B430305EC2B200C2F253 /* autofill */;
};
/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */
/* Begin PBXFileSystemSynchronizedRootGroup section */
205678952FBF9CBB00251C6B /* MyPass */ = {
isa = PBXFileSystemSynchronizedRootGroup;
@@ -45,6 +84,14 @@
path = MyPassUITests;
sourceTree = "<group>";
};
2096B433305EC2B200C2F253 /* autofill */ = {
isa = PBXFileSystemSynchronizedRootGroup;
exceptions = (
2096B440305EC2B200C2F253 /* Exceptions for "autofill" folder in "autofill" target */,
);
path = autofill;
sourceTree = "<group>";
};
/* End PBXFileSystemSynchronizedRootGroup section */
/* Begin PBXFrameworksBuildPhase section */
@@ -52,6 +99,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
205678DB2FC0EB5200251C6B /* MyPassCore in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -69,6 +117,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
2096B42E305EC2B200C2F253 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
2096B432305EC2B200C2F253 /* AuthenticationServices.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
@@ -78,6 +134,8 @@
205678952FBF9CBB00251C6B /* MyPass */,
205678A52FBF9CBC00251C6B /* MyPassTests */,
205678AF2FBF9CBC00251C6B /* MyPassUITests */,
2096B433305EC2B200C2F253 /* autofill */,
205678E22FC0F52A00251C6B /* Frameworks */,
205678942FBF9CBB00251C6B /* Products */,
);
sourceTree = "<group>";
@@ -88,10 +146,19 @@
205678932FBF9CBB00251C6B /* MyPass.app */,
205678A22FBF9CBC00251C6B /* MyPassTests.xctest */,
205678AC2FBF9CBC00251C6B /* MyPassUITests.xctest */,
2096B431305EC2B200C2F253 /* autofill.appex */,
);
name = Products;
sourceTree = "<group>";
};
205678E22FC0F52A00251C6B /* Frameworks */ = {
isa = PBXGroup;
children = (
205678E32FC0F52A00251C6B /* AuthenticationServices.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@@ -102,16 +169,19 @@
2056788F2FBF9CBB00251C6B /* Sources */,
205678902FBF9CBB00251C6B /* Frameworks */,
205678912FBF9CBB00251C6B /* Resources */,
205678F42FC0F52A00251C6B /* Embed Foundation Extensions */,
);
buildRules = (
);
dependencies = (
2096B43C305EC2B200C2F253 /* PBXTargetDependency */,
);
fileSystemSynchronizedGroups = (
205678952FBF9CBB00251C6B /* MyPass */,
);
name = MyPass;
packageProductDependencies = (
205678DA2FC0EB5200251C6B /* MyPassCore */,
);
productName = MyPass;
productReference = 205678932FBF9CBB00251C6B /* MyPass.app */;
@@ -163,6 +233,28 @@
productReference = 205678AC2FBF9CBC00251C6B /* MyPassUITests.xctest */;
productType = "com.apple.product-type.bundle.ui-testing";
};
2096B430305EC2B200C2F253 /* autofill */ = {
isa = PBXNativeTarget;
buildConfigurationList = 2096B441305EC2B200C2F253 /* Build configuration list for PBXNativeTarget "autofill" */;
buildPhases = (
2096B42D305EC2B200C2F253 /* Sources */,
2096B42E305EC2B200C2F253 /* Frameworks */,
2096B42F305EC2B200C2F253 /* Resources */,
);
buildRules = (
);
dependencies = (
);
fileSystemSynchronizedGroups = (
2096B433305EC2B200C2F253 /* autofill */,
);
name = autofill;
packageProductDependencies = (
);
productName = autofill;
productReference = 2096B431305EC2B200C2F253 /* autofill.appex */;
productType = "com.apple.product-type.app-extension";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@@ -170,7 +262,7 @@
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = 1;
LastSwiftUpdateCheck = 2650;
LastSwiftUpdateCheck = 2660;
LastUpgradeCheck = 2650;
TargetAttributes = {
205678922FBF9CBB00251C6B = {
@@ -184,6 +276,9 @@
CreatedOnToolsVersion = 26.5;
TestTargetID = 205678922FBF9CBB00251C6B;
};
2096B430305EC2B200C2F253 = {
CreatedOnToolsVersion = 26.6;
};
};
};
buildConfigurationList = 2056788E2FBF9CBB00251C6B /* Build configuration list for PBXProject "MyPass" */;
@@ -195,6 +290,9 @@
);
mainGroup = 2056788A2FBF9CBB00251C6B;
minimizedProjectReferenceProxies = 1;
packageReferences = (
205678D92FC0EB5200251C6B /* XCLocalSwiftPackageReference "MyPassCore" */,
);
preferredProjectObjectVersion = 77;
productRefGroup = 205678942FBF9CBB00251C6B /* Products */;
projectDirPath = "";
@@ -203,6 +301,7 @@
205678922FBF9CBB00251C6B /* MyPass */,
205678A12FBF9CBC00251C6B /* MyPassTests */,
205678AB2FBF9CBC00251C6B /* MyPassUITests */,
2096B430305EC2B200C2F253 /* autofill */,
);
};
/* End PBXProject section */
@@ -229,6 +328,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
2096B42F305EC2B200C2F253 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -253,6 +359,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
2096B42D305EC2B200C2F253 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
@@ -266,6 +379,11 @@
target = 205678922FBF9CBB00251C6B /* MyPass */;
targetProxy = 205678AD2FBF9CBC00251C6B /* PBXContainerItemProxy */;
};
2096B43C305EC2B200C2F253 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 2096B430305EC2B200C2F253 /* autofill */;
targetProxy = 2096B43B305EC2B200C2F253 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
@@ -388,8 +506,10 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = MyPass/MyPass.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = F2KB6W8N4R;
ENABLE_APP_SANDBOX = YES;
ENABLE_PREVIEWS = YES;
ENABLE_USER_SELECTED_FILES = readonly;
@@ -410,6 +530,9 @@
MACOSX_DEPLOYMENT_TARGET = 26.5;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = org.antiloop222.MyPass;
"PRODUCT_BUNDLE_IDENTIFIER[sdk=iphoneos*]" = org.antiloop222.MyPass;
"PRODUCT_BUNDLE_IDENTIFIER[sdk=macosx*]" = org.antiloop222.MyPass;
"PRODUCT_BUNDLE_IDENTIFIER[sdk=xros*]" = org.antiloop222.MyPass;
PRODUCT_NAME = "$(TARGET_NAME)";
REGISTER_APP_GROUPS = YES;
SDKROOT = auto;
@@ -430,8 +553,10 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = MyPass/MyPass.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = F2KB6W8N4R;
ENABLE_APP_SANDBOX = YES;
ENABLE_PREVIEWS = YES;
ENABLE_USER_SELECTED_FILES = readonly;
@@ -452,6 +577,9 @@
MACOSX_DEPLOYMENT_TARGET = 26.5;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = org.antiloop222.MyPass;
"PRODUCT_BUNDLE_IDENTIFIER[sdk=iphoneos*]" = org.antiloop222.MyPass;
"PRODUCT_BUNDLE_IDENTIFIER[sdk=macosx*]" = org.antiloop222.MyPass;
"PRODUCT_BUNDLE_IDENTIFIER[sdk=xros*]" = org.antiloop222.MyPass;
PRODUCT_NAME = "$(TARGET_NAME)";
REGISTER_APP_GROUPS = YES;
SDKROOT = auto;
@@ -565,6 +693,69 @@
};
name = Release;
};
2096B43E305EC2B200C2F253 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_ENTITLEMENTS = autofill/autofill.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = F2KB6W8N4R;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = autofill/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = autofill;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 26.5;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = org.antiloop222.MyPass.autofill;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SWIFT_APPROACHABLE_CONCURRENCY = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
2096B43F305EC2B200C2F253 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_ENTITLEMENTS = autofill/autofill.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = F2KB6W8N4R;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = autofill/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = autofill;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 26.5;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = org.antiloop222.MyPass.autofill;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SWIFT_APPROACHABLE_CONCURRENCY = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@@ -604,7 +795,30 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
2096B441305EC2B200C2F253 /* Build configuration list for PBXNativeTarget "autofill" */ = {
isa = XCConfigurationList;
buildConfigurations = (
2096B43E305EC2B200C2F253 /* Debug */,
2096B43F305EC2B200C2F253 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
/* Begin XCLocalSwiftPackageReference section */
205678D92FC0EB5200251C6B /* XCLocalSwiftPackageReference "MyPassCore" */ = {
isa = XCLocalSwiftPackageReference;
relativePath = MyPassCore;
};
/* End XCLocalSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
205678DA2FC0EB5200251C6B /* MyPassCore */ = {
isa = XCSwiftPackageProductDependency;
productName = MyPassCore;
};
/* End XCSwiftPackageProductDependency section */
};
rootObject = 2056788B2FBF9CBB00251C6B /* Project object */;
}