本文へ移動
Develop Tools
← 使い方ガイドへ戻る

SwiftコードをAIへ安全に貼る方法|APIキー・URL・クラス名をマスキング

Compile ErrorやCrashを相談するときは、再現に必要なSwift構造と外部へ出せないProject情報を分けます。

SwiftコードからSecretとProject固有識別子を隠してAIへ共有する流れ
SwiftコードからSecretとProject固有識別子を隠してAIへ共有する流れ

Swiftコードをブラウザ内でマスキングする

型・関数・識別子・値・コメントを選び、Swiftの構造を確認できる共有用コピーを作成します。入力SourceはDevelop Toolsのサーバーへ送信・保存されません。

Swiftコードマスキングツールを開く

結論

Token、Private URL、Bundle ID、Type名、Function名、Commentを確認し、Swiftの型・Optional・Concurrency Contextを残した共有用コピーを作ります。

共有前に秘密情報と調査Contextを分ける

final class InternalUserService {
    private let token = "dummy-secret"

    func fetchUser(id: String?) async throws -> User {
        // https://internal.example.test/users/(id!)
    }
}
残す候補隠す候補
class・func・async・throwsProject Type・Function・Property
URLSession、Result、Error TypeToken、内部URL、Bundle ID
Optional・Actor AnnotationComment、Build Path、組織名

Swiftコードマスキングツールで確認する手順

  • 1. 相談に必要な最小範囲を別Copyへ切り出します。
  • 2. 型、関数・メソッド、識別子、値、コメントを選択します。
  • 3. Optional、Generic、Closure、Concurrency Annotationを比較します。
  • 4. 右クリックで必要語だけ戻し、結果だけ共有します。

見落としを防ぐ確認表

分類確認対象
認証API Key、Token、Password
接続Host、Query、Path ID
識別子Type、Function、Property、Module
周辺Comment、Log、Build Path、Bundle ID

Swift固有構文と型Contextを壊していないか確認する

  • class・struct・enum・actor・protocol・extension・funcの宣言と参照が同じDummy名か
  • Argument Label、Parameter名、Generic、Associated Type、some・any、where Clauseが残っているか
  • Optionalの?・!、Optional Chaining、??、if let・guard let、Force Unwrapを勝手に変更していないか
  • ClosureのCapture List、[weak self]・[unowned self]、@escaping、@autoclosure、$0・$1が残っているか
  • async・await・Task・actor・@MainActor・Sendable・isolated・nonisolated等を利用中のToolchainで確認したか
  • String Interpolation、Raw String、Regex、KeyPath、#selector、CodingKeys、Macro・Property Wrapperを手動で揃えたか

現行ツールは@Sendable、@unchecked、@preconcurrency、$1以降、Interpolation、Regex、Custom Macro、KeyPathの意味解析を保証しません。該当箇所は右クリックで戻すかDummy名へ手動調整してください。

AI・Issue・Chatへ共有する前の最終チェック

  • API Key、Access Token、Password、Authorization、Cookie、Keychain Keyを検索する
  • 内部Host、URL、Query、Email、IP、Bundle Identifier、URL Scheme、File Pathを確認する
  • Type、Module、Function、Property、Notification Name、UserDefaults Key、CommentからProjectを推測できないか確認する
  • Compiler Diagnostic、Build Path、Crash Log、Stack Trace、ScreenshotもSourceとは別に点検する
  • Swift Version、Language Mode、Xcode Version、Error Type、Concurrency Annotation等の調査Contextを残す
  • 共有するのはマスキング結果だけにし、元Sourceと対応情報は権限管理された場所に残す

Secret管理とマスキングは別の対策です。漏えいしたCredentialは隠すだけでなく、失効・再発行と保存方式の見直しを行ってください。

現在のSwiftコードマスキングツールでできること・できないこと

確認項目現在の対応注意点
入力Swiftテキストの貼り付け.swiftファイルの直接読込やDownloadは行わない
宣言class、struct、enum、actor、protocol、extension、typealias、funcを分類Swift CompilerやSwiftSyntaxと同等の完全な構文解析ではない
識別子型・関数・識別子を同じ元名単位で置換Scope、Overload、Shadowing、Argument LabelをCompiler Symbolとして追跡しない
Concurrencyactor、async、await、MainActor等の一部標準語を保持@Sendable、@unchecked、@preconcurrency、Custom Global Actorは自動保護を保証しない
ClosureBrace、Capture List、weak、unownedを文字列上で保持$0は残るが、値を対象にすると$1以降の数字が0へ変わるため手動確認が必要
Literal通常・Raw・複数行Stringの区切りと数値表記を認識String Interpolation本文は保持せず、Regex Literal専用解析も行わない
Macro・Wrapper行頭の#Directiveを構文として表示し、一部標準Wrapperを保持@Observable、Custom Macro、Custom Property Wrapper、Macro展開後コードは専用解析しない
FrameworkSwift標準型と一部Foundation・SwiftUI名を保持UIKit、SwiftUI、Package固有APIを網羅したFramework Symbol Tableではない
動的参照#selector内の識別子等も通常規則で処理Selector、KeyPath、CodingKeys、String参照と宣言の自動同期は保証しない
出力結果コピー、全消去、結果側の右クリックによる個別解除Mapping一覧、Mapping Download、履歴保存は行わない
保存表示設定だけをLocalStorageへ保存入力Source・結果・MappingはLocalStorageへ保存しない
プライバシー入力と変換をブラウザ内で処理Sourceと結果をDevelop Toolsのサーバーへ送信・保存しない

マスキング結果は共有用コピーです。swiftc、Xcode Build、Test、SwiftLint、実機動作の確認を代替しません。

Swift公式資料と利用中のToolchainで仕様を確認する

SwiftのConcurrency、Macro、Access Control等はLanguage ModeとToolchainで挙動が変わります。Stable ReleaseとDevelopment Snapshotを混同せず、利用中のSwift・Xcodeの公式資料とBuild結果を確認してください。

具体例:Swift Compile ErrorをAIへ質問

Token、Private URL、Bundle ID、Type名、Function名、Commentを確認し、Swiftの型・Optional・Concurrency Contextを残した共有用コピーを作ります。

実Token、実顧客情報、内部URLではなくexample.test等のDummy Dataを使い、問題を再現する最小範囲で確認します。

  1. 最小再現Codeを別Copyへ切り出す
  2. 識別子・値・Commentをマスキングする
  3. Swift固有構文と型・Concurrency Contextを比較する
  4. マスキング結果だけを共有する

結果側の匿名箇所は右クリックで個別解除できます。解除した元情報が本当に共有に必要か、送信前に再確認してください。

よくある質問

.swiftファイルを直接読み込めますか?
直接読込には対応していません。必要なSwift Textを入力欄へ貼り付けます。Partial SwiftもTextとして処理しますが、Swift CompilerやSwiftSyntaxによる解析ではありません。
@Sendable、$1、文字列補間、Macroも自動で安全に保持できますか?
保証しません。@Sendable・@unchecked・@preconcurrency、$1以降、Interpolation、Regex、Custom Macro・Property Wrapper、動的参照は手動確認が必要です。必要箇所は右クリックで戻すかDummy名へ揃えます。
入力したSwift Sourceはサーバーへ送信されますか?
入力とマスキング結果はブラウザ内で処理され、Develop Toolsのサーバーへ送信・保存されません。LocalStorageへ保存されるのは表示設定だけです。