Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
feat: update build settings, add new Swift package dependencies, remo…
…ve application group entitlement, and adjust `ReviewComment` mutability.
  • Loading branch information
legalbegal2121 committed Dec 16, 2025
commit 90cb164d3b05493fe1cdc37af10036ca9be9819e
72 changes: 67 additions & 5 deletions Copilot for Xcode.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
C8738B7F2BE5363900609E7F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C8738B7E2BE5363900609E7F /* Assets.xcassets */; };
C8738B822BE5363900609E7F /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C8738B812BE5363900609E7F /* Preview Assets.xcassets */; };
C8738B882BE5365000609E7F /* Client in Frameworks */ = {isa = PBXBuildFile; productRef = C8738B872BE5365000609E7F /* Client */; };
C8738B8A2BE540D000609E7F /* bridgeLaunchAgent.plist in Copy Launch Agent */ = {isa = PBXBuildFile; fileRef = C8738B6D2BE4F3E800609E7F /* bridgeLaunchAgent.plist */; };
C8738B8A2BE540D000609E7F /* bridgeLaunchAgent.plist in Copy Launch Agent */ = {isa = PBXBuildFile; fileRef = C8738B6D2BE4F3E800609E7F /* bridgeLaunchAgent.plist */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
C8738B8B2BE540DD00609E7F /* CommunicationBridge in Embed XPCService */ = {isa = PBXBuildFile; fileRef = C8738B632BE4D4B900609E7F /* CommunicationBridge */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
C8758E7029F04BFF00D29C1C /* CustomCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8758E6F29F04BFF00D29C1C /* CustomCommand.swift */; };
C8758E7229F04CF100D29C1C /* SeparatorCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8758E7129F04CF100D29C1C /* SeparatorCommand.swift */; };
Expand All @@ -70,6 +70,21 @@
C8DD9CB12BC673F80036641C /* CloseIdleTabsCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8DD9CB02BC673F80036641C /* CloseIdleTabsCommand.swift */; };
/* End PBXBuildFile section */

/* Begin PBXBuildRule section */
1034711F2E9E620100577B9C /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = com.apple.compilers.proxy.script;
dependencyFile = "$(DERIVED_FILES_DIR)/$(INPUT_FILE_PATH).d";
fileType = pattern.proxy;
inputFiles = (
);
isEditable = 1;
outputFiles = (
);
script = "# Type a script or drag a script file from your workspace to insert its path.\n";
};
/* End PBXBuildRule section */

/* Begin PBXContainerItemProxy section */
C81291AF2994F92700196E12 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
Expand Down Expand Up @@ -580,6 +595,7 @@
C8738B612BE4D4B900609E7F /* CopyFiles */,
);
buildRules = (
1034711F2E9E620100577B9C /* PBXBuildRule */,
);
dependencies = (
);
Expand Down Expand Up @@ -652,6 +668,10 @@
mainGroup = C8189B0D2938972F00C9DCDA;
packageReferences = (
C8216B792980373800AD38C7 /* XCRemoteSwiftPackageReference "swift-argument-parser" */,
103471212E9E633300577B9C /* XCRemoteSwiftPackageReference "swift-algorithms" */,
103471222E9E663000577B9C /* XCRemoteSwiftPackageReference "swift-system" */,
103471232E9E752700577B9C /* XCRemoteSwiftPackageReference "swift-async-algorithms" */,
103471242E9E756B00577B9C /* XCRemoteSwiftPackageReference "claude-agent-sdk-python" */,
);
productRefGroup = C8189B172938972F00C9DCDA /* Products */;
projectDirPath = "";
Expand Down Expand Up @@ -838,6 +858,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_ENTITLEMENTS = EditorExtension/EditorExtension.entitlements;
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = "$(APP_BUILD)";
Expand Down Expand Up @@ -928,6 +949,8 @@
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_ENTITLEMENTS[sdk=*]" = "";
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
Expand Down Expand Up @@ -991,11 +1014,14 @@
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_ENTITLEMENTS[sdk=*]" = "";
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
Expand All @@ -1007,6 +1033,7 @@
MACOSX_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SWIFT_COMPILATION_MODE = wholemodule;
Expand All @@ -1021,7 +1048,7 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
AUTOMATION_APPLE_EVENTS = YES;
CODE_SIGN_ENTITLEMENTS = "Copilot for Xcode/Copilot_for_Xcode.entitlements";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = "$(APP_BUILD)";
Expand Down Expand Up @@ -1122,6 +1149,7 @@
isa = XCBuildConfiguration;
buildSettings = {
AUTOMATION_APPLE_EVENTS = NO;
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "-";
CODE_SIGN_STYLE = Automatic;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 85XJ3N6338;
Expand Down Expand Up @@ -1182,7 +1210,7 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
AUTOMATION_APPLE_EVENTS = NO;
CODE_SIGN_ENTITLEMENTS = ExtensionService/ExtensionService.entitlements;
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = "$(APP_BUILD)";
Expand Down Expand Up @@ -1277,9 +1305,10 @@
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "-";
CODE_SIGN_STYLE = Automatic;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = VEKTX9H2N7;
DEVELOPMENT_TEAM = 85XJ3N6338;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;
Expand Down Expand Up @@ -1322,12 +1351,13 @@
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = SandboxedClientTester/SandboxedClientTester.entitlements;
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_ASSET_PATHS = "\"SandboxedClientTester/Preview Content\"";
DEVELOPMENT_TEAM = VEKTX9H2N7;
DEVELOPMENT_TEAM = 85XJ3N6338;
ENABLE_APP_SANDBOX = YES;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
Expand Down Expand Up @@ -1458,6 +1488,38 @@
/* End XCConfigurationList section */

/* Begin XCRemoteSwiftPackageReference section */
103471212E9E633300577B9C /* XCRemoteSwiftPackageReference "swift-algorithms" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/apple/swift-algorithms.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 1.2.1;
};
};
103471222E9E663000577B9C /* XCRemoteSwiftPackageReference "swift-system" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/apple/swift-system.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 1.6.3;
};
};
103471232E9E752700577B9C /* XCRemoteSwiftPackageReference "swift-async-algorithms" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/apple/swift-async-algorithms.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 1.0.4;
};
};
103471242E9E756B00577B9C /* XCRemoteSwiftPackageReference "claude-agent-sdk-python" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/anthropics/claude-agent-sdk-python";
requirement = {
branch = main;
kind = branch;
};
};
C8216B792980373800AD38C7 /* XCRemoteSwiftPackageReference "swift-argument-parser" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/apple/swift-argument-parser.git";
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 1 addition & 3 deletions Copilot for Xcode/Copilot_for_Xcode.entitlements
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
<plist version="1.0">
<dict>
<key>com.apple.security.application-groups</key>
<array>
<string>$(TeamIdentifierPrefix)group.$(BUNDLE_IDENTIFIER_BASE)</string>
</array>
<array/>
</dict>
</plist>
4 changes: 1 addition & 3 deletions EditorExtension/EditorExtension.entitlements
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.application-groups</key>
<array>
<string>$(TeamIdentifierPrefix)group.$(BUNDLE_IDENTIFIER_BASE)</string>
</array>
<array/>
<key>com.apple.security.temporary-exception.mach-lookup.global-name</key>
<array>
<string>$(BUNDLE_IDENTIFIER_BASE).CommunicationBridge</string>
Expand Down
4 changes: 1 addition & 3 deletions ExtensionService/ExtensionService.entitlements
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
<plist version="1.0">
<dict>
<key>com.apple.security.application-groups</key>
<array>
<string>$(TeamIdentifierPrefix)group.$(BUNDLE_IDENTIFIER_BASE)</string>
</array>
<array/>
</dict>
</plist>
2 changes: 2 additions & 0 deletions Tool/Sources/AXExtension/AXUIElement.swift
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,8 @@ public extension AXUIElement {
}

#if hasFeature(RetroactiveAttribute)
extension AXError: @retroactive _BridgedNSError {}
extension AXError: @retroactive _ObjectiveCBridgeableError {}
extension AXError: @retroactive Error {}
#else
extension AXError: Error {}
Expand Down
6 changes: 1 addition & 5 deletions Tool/Sources/ChatTab/ChatTab.swift
Original file line number Diff line number Diff line change
Expand Up @@ -126,10 +126,6 @@ open class BaseChatTab {
public init(store: StoreOf<ChatTabItem>) {
chatTabStore = store

storeObserver.observe { [weak self] in
guard let self else { return }
self.title = store.title ?? ""
self.id = store.id
}
}

Expand Down Expand Up @@ -205,7 +201,7 @@ open class BaseChatTab {
tab.start()
}
}
}


/// A factory of a chat tab.
public protocol ChatTabBuilder {
Expand Down
2 changes: 1 addition & 1 deletion Tool/Sources/ConversationServiceProvider/LSPTypes.swift
Original file line number Diff line number Diff line change
Expand Up @@ -540,7 +540,7 @@ public struct ReviewChangesParams: Codable, Equatable {

public struct ReviewComment: Codable, Equatable, Hashable {
// Self-defined `id` for using in comment operation. Add an init value to bypass decoding
public let id: String = UUID().uuidString
public var id: String = UUID().uuidString
public let uri: DocumentUri
public let range: LSPRange
public let message: String
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ public final class ConversationStorage: ConversationStorageProtocol {

try withDBTransaction { db in

let now = Date().timeIntervalSince1970
_ = Date().timeIntervalSince1970

for operation in request.operations {
switch operation {
Expand Down Expand Up @@ -137,7 +137,7 @@ public final class ConversationStorage: ConversationStorageProtocol {
let table = turnTable.table
let column = turnTable.column

var query = table
let query = table
.filter(column.conversationID == conversationID)
.order(column.rowID.asc)
let rowIterator = try db.prepareRowIterator(query)
Expand Down
2 changes: 1 addition & 1 deletion Tool/Sources/Preferences/UserDefaults.swift
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ extension String: UserDefaultsStorable {}
extension Data: UserDefaultsStorable {}
extension URL: UserDefaultsStorable {}

extension Array: RawRepresentable where Element: Codable {
extension Array: @retroactive RawRepresentable where Element: Codable {
public init?(rawValue: String) {
guard let data = rawValue.data(using: .utf8),
let result = try? JSONDecoder().decode([Element].self, from: data)
Expand Down