feat: add CredentialProviderViewController skeleton, strip unused storyboard UI
Replace the Xcode boilerplate in AutoFill/CredentialProviderViewController.swift with real logic: prepareCredentialList(for:) builds ExtensionRootView (added in Task 19) inside a UIHostingController, provideCredentialWithoutUserInteraction(for:) silently unlocks via the shared Keychain token and completes/cancels the request. Strip the storyboard's now-unused static nav-bar/button/actions, keeping the same customClass so the system still instantiates this exact class. Also add AutoFill target membership for MyPass/Services/FileBookmarkService.swift and BiometricAuthService.swift (app-target files, referenced directly by the extension per the plan) via explicit PBXFileReference/PBXBuildFile entries, since Xcode's synchronized-group file system only auto-includes them in the MyPass target by default. Expected build state: exactly one error, "cannot find 'ExtensionRootView' in scope" (reported once per simulator architecture), until Task 19 adds that type. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WYqycDFsynHH9VnnK7LNSf
This commit is contained in:
@@ -7,9 +7,11 @@
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
EABAC2B148F845C8A20EC2CC /* FileBookmarkService.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADBBB9F1BA62473294D2B5B5 /* FileBookmarkService.swift */; };
|
||||
982CE38F924E4FD387BC2C20 /* BiometricAuthService.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6C7DFA4A59640D7BF6B4960 /* BiometricAuthService.swift */; };
|
||||
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 */; platformFilters = (ios, ); settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
2096B43D305EC2B200C2F253 /* AutoFill.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 2096B431305EC2B200C2F253 /* AutoFill.appex */; platformFilter = ios; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
67DE2FCFC21FD6DF5E761C87 /* MyPassCore in Frameworks */ = {isa = PBXBuildFile; productRef = 205678DA2FC0EB5200251C6B /* MyPassCore */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
@@ -52,6 +54,8 @@
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
ADBBB9F1BA62473294D2B5B5 /* FileBookmarkService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = FileBookmarkService.swift; path = MyPass/Services/FileBookmarkService.swift; sourceTree = SOURCE_ROOT; };
|
||||
D6C7DFA4A59640D7BF6B4960 /* BiometricAuthService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = BiometricAuthService.swift; path = MyPass/Services/BiometricAuthService.swift; sourceTree = SOURCE_ROOT; };
|
||||
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; };
|
||||
@@ -130,6 +134,15 @@
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
1A2B3C4D5E6F7A8B9C0D1E2F /* AutoFill Shared Services */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
ADBBB9F1BA62473294D2B5B5 /* FileBookmarkService.swift */,
|
||||
D6C7DFA4A59640D7BF6B4960 /* BiometricAuthService.swift */,
|
||||
);
|
||||
name = "AutoFill Shared Services";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
2056788A2FBF9CBB00251C6B = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -137,6 +150,7 @@
|
||||
205678A52FBF9CBC00251C6B /* MyPassTests */,
|
||||
205678AF2FBF9CBC00251C6B /* MyPassUITests */,
|
||||
2096B433305EC2B200C2F253 /* AutoFill */,
|
||||
1A2B3C4D5E6F7A8B9C0D1E2F /* AutoFill Shared Services */,
|
||||
205678E22FC0F52A00251C6B /* Frameworks */,
|
||||
205678942FBF9CBB00251C6B /* Products */,
|
||||
);
|
||||
@@ -366,6 +380,8 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
EABAC2B148F845C8A20EC2CC /* FileBookmarkService.swift in Sources */,
|
||||
982CE38F924E4FD387BC2C20 /* BiometricAuthService.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -384,7 +400,7 @@
|
||||
};
|
||||
2096B43C305EC2B200C2F253 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
platformFilters = (ios, );
|
||||
platformFilter = ios;
|
||||
target = 2096B430305EC2B200C2F253 /* AutoFill */;
|
||||
targetProxy = 2096B43B305EC2B200C2F253 /* PBXContainerItemProxy */;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user