简体中文 | English
Professional Swift Code Obfuscation Tool
Obfuscate Swift source code by renaming code identifiers without changing code logic to protect your source code
Validated by 100+ SDKs, no matter how complex your code is, it can accurately identify and perfectly obfuscate
Supports large-scale projects and complex dependencies, providing enterprise-grade security protection for your code
Battle-tested in production environments, you can confidently use it in your production projects
Official Website: https://www.swiftyshield.com
Visit the official website to download the latest version of SwiftyShield
✅ Notarized by Apple - This application has been notarized by Apple, ensuring security and reliability
- Smart Obfuscation: Only changes code names without affecting code logic
- Global Declaration Obfuscation: Obfuscates class names, method names, property names and other global identifiers
- Temporary Variable Obfuscation: Optional temporary variable obfuscation feature
- Incremental Obfuscation: Supports incremental obfuscation based on history records, old code reuses historical mappings, only new code is obfuscated
- Module Selection: Freely choose modules to obfuscate
- Ignore Lists: Configure ignored protocol names and variable names
- Build Modes: Supports both Debug and Release build modes
- Smart Module Association Handling: Automatically handles dependencies between modules
- Obfuscation History: Saves all obfuscation operation records locally
- Detailed Information: Records obfuscation duration, obfuscation count, module information, etc.
- Import/Export: Supports JSON import and export of obfuscation records
- Quick Reuse: Perform incremental obfuscation based on history records
- Apple ID Login: Secure login with Apple ID
- Premium Membership: Upgrade to Premium to unlock more features
- Personalized Customization: Premium users can customize obfuscation features
- Open the SwiftyShield app
- Click the Sign in with Apple button
- Complete login verification with your Apple ID
💡 Tip: You need to login before using the obfuscation feature
- On the homepage, click to select a
.xcworkspaceor.xcodeprojfile - Choose build mode:
- Debug Mode: For development and debugging
- Release Mode: For production releases
- Click to start building
After successful build, the system will automatically enter the module selection page:
- View the list of all obfuscatable modules
- Click on a module to expand and view its file list
- Select modules to obfuscate (supports select all/deselect all)
- The system automatically handles module associations
- Click Next to continue
📌 Note: If module A is associated with module B, selecting A will automatically check B
Configure the following options on the obfuscation configuration page:
- Enable or disable temporary variable obfuscation
- Click "Show Examples" to view obfuscation effect examples
- Add protocol names that should not be obfuscated
- Supports adding multiple protocol names
- Input restriction: Only English characters, max 40 characters
- Add variable names that should not be obfuscated
- Supports adding multiple variable names
- Input restriction: Only English characters, max 40 characters
Click Next after configuration is complete
If there are historical obfuscation records for the current project, the system will ask whether to perform incremental obfuscation based on history:
- Select Parent Record: New code will be obfuscated, old code reuses historical mappings
- Don't Select: Perform fresh obfuscation, all code regenerates obfuscation mappings
💡 Tip: Incremental obfuscation maintains code consistency and avoids repeatedly modifying already obfuscated code
During the obfuscation process, it displays in real-time:
- Global Declarations Progress: Progress of global declaration obfuscation
- Temp Declarations Progress: Progress of temporary variable obfuscation (if enabled)
- Obfuscation Logs: Real-time output of obfuscation operation logs
You can click the Stop Obfuscation button to interrupt the operation during the process
After obfuscation is complete, click Next to view results
Click the Obfuscation History entry on the homepage to:
- View all obfuscation operation records
- Display grouped by Scheme
- View detailed obfuscation information (duration, count, modules, etc.)
- Export obfuscation records as JSON files
- Copy JSON to clipboard
- Delete unwanted records
- Import history records
⚠️ Important: All obfuscation records are saved locally, please backup regularly
- ✅ Unlimited Obfuscation: No limit on obfuscation times
- ✅ Personalized Customization: Customize obfuscation features according to your needs
- ✅ Priority Support: Get priority technical support and issue resolution
- Click Upgrade Premium in the user info panel on the homepage
- Click the Purchase Premium button in the popup
- The browser will open the payment page, complete the payment
- Check your email after successful payment to get the Payment ID
- Click the Redeem Code entry on the homepage
- Enter your Payment ID (format:
pay_xxxxxx) - Click the Activate button
- Enjoy Premium benefits immediately after successful activation
🔒 Security Note: Each Payment ID can only be used once and cannot be shared, please keep it safe
If you have any questions or suggestions, feel free to contact us:
- Official Website: https://www.swiftyshield.com
- Contact Me: Click the "Contact Me" button on the app homepage
A: No. SwiftyShield only changes identifier names in the code, not the code logic, so it will not affect code functionality.
A: No, the obfuscated code cannot be automatically restored. Since we cannot determine whether you have made any modifications to the obfuscated code, we recommend using Git for version control to manage your code and preserve the original version before obfuscation.
A: The obfuscation records contain all the mapping relationships that you can view. You can check the detailed mapping of identifiers before and after obfuscation in the obfuscation history records.
A: Supports Swift 5.0 and above.
A: Yes, but it's recommended to only obfuscate your own code.
A: After completing payment, the Payment ID will be sent to your registered email, please check (may take a few minutes).