SignTools is a macOS application for processing and optimizing iOS IPA files. It allows you to inject dynamic libraries (dylibs) or frameworks into iOS applications and repackage them for installation.
- Unpack and repackage iOS IPA files
- Inject dylib files or frameworks into iOS applications
- Automatic handling of file dependencies
- Detailed logging of the processing steps
- Simple and intuitive user interface
- Multi-language support (English and Chinese)
- macOS 10.13 or later
- Command line tools:
zip,unzip,codesign(installed by default on macOS) - Full disk access permission (for handling files with special characters)
- Download the latest release from the Releases page
- Move the SignTools application to your Applications folder
- When first launching, you may need to grant full disk access permission
- Launch SignTools
- Drag your IPA file to the top field or use the Browse button
- (Optional) If you want to inject a dylib or framework, select it using the second field
- Click the Sign button to process the IPA
- The processed IPA will be saved in the same folder as the original file
SignTools supports both English and Chinese languages. The application will automatically use your system's language settings. To change the language:
- Open System Preferences
- Go to Language & Region
- Drag English or Chinese to the top of the Preferred Languages list
- Restart SignTools
You can launch SignTools with a specific language using the following Terminal commands:
For English:
defaults write com.yourusername.SignTools AppleLanguages '("en")'
open /Applications/SignTools.appFor Chinese:
defaults write com.yourusername.SignTools AppleLanguages '("zh-Hans")'
open /Applications/SignTools.appTo reset to system default:
defaults delete com.yourusername.SignTools AppleLanguagesIf you encounter issues:
- Make sure you have granted full disk access permission to SignTools
- Check the log area for detailed information about the process
- Ensure that the IPA file is not encrypted
- Verify that the dylib or framework you're trying to inject is compatible with the target application
SignTools uses standard macOS localization techniques. If you want to contribute or modify the localization:
- Localized strings are stored in
.lprojdirectories (e.g.,en.lproj,zh-Hans.lproj) - Each
.lprojdirectory containsLocalizable.stringsfiles - Use
NSLocalizedString()in code to reference localized strings
Example of localization in code:
// Using localized strings
NSString *message = NSLocalizedString(@"Hello World", nil);
// With comment for translators
NSString *message = NSLocalizedString(@"Hello World", @"Greeting message shown on startup");To add a new language:
- Create a new
.lprojdirectory with the language code (e.g.,fr.lprojfor French) - Copy
Localizable.stringsfrom an existing language folder - Translate all string values while keeping the keys unchanged
Example Localizable.strings file:
/* Button titles */
"Sign" = "Sign";
"Browse" = "Browse";
/* Messages */
"Processing completed" = "Processing completed";
"Error occurred" = "Error occurred";
To test your localization without changing system settings:
# Run app in a specific language
xcrun simctl launch --language=zh-Hans --region=CN com.yourusername.SignToolsThis project is licensed under the MIT License - see the LICENSE file for details.
SignTools 是一款用于处理和优化 iOS IPA 文件的 macOS 应用程序。它允许您将动态库(dylib)或框架(framework)注入到 iOS 应用程序中,并重新打包以供安装。
- 解包和重新打包 iOS IPA 文件
- 向 iOS 应用程序注入 dylib 文件或框架
- 自动处理文件依赖关系
- 详细记录处理步骤
- 简洁直观的用户界面
- 多语言支持(英文和中文)
- macOS 10.13 或更高版本
- 命令行工具:
zip、unzip、codesign(macOS 默认已安装) - 完全磁盘访问权限(用于处理带有特殊字符的文件)
- 从 Releases 页面下载最新版本
- 将 SignTools 应用程序移动到应用程序文件夹
- 首次启动时,您可能需要授予完全磁盘访问权限
- 启动 SignTools
- 将您的 IPA 文件拖到顶部字段或使用浏览按钮选择
- (可选)如果您想注入动态库或框架,使用第二个字段选择它
- 点击签名按钮处理 IPA
- 处理后的 IPA 文件将保存在与原始文件相同的文件夹中
SignTools 支持英文和中文两种语言。应用程序将自动使用您系统的语言设置。要更改语言:
- 打开系统偏好设置
- 前往语言与地区
- 将英文或中文拖到偏好语言列表的顶部
- 重新启动 SignTools
您可以使用以下终端命令以特定语言启动 SignTools:
英文:
defaults write com.yourusername.SignTools AppleLanguages '("en")'
open /Applications/SignTools.app中文:
defaults write com.yourusername.SignTools AppleLanguages '("zh-Hans")'
open /Applications/SignTools.app重置为系统默认设置:
defaults delete com.yourusername.SignTools AppleLanguages如果遇到问题:
- 确保您已授予 SignTools 完全磁盘访问权限
- 查看日志区域,了解处理过程的详细信息
- 确保 IPA 文件未加密
- 验证您尝试注入的动态库或框架与目标应用程序兼容
SignTools 使用标准的 macOS 本地化技术。如果您想贡献或修改本地化:
- 本地化字符串存储在
.lproj目录中(例如en.lproj、zh-Hans.lproj) - 每个
.lproj目录包含Localizable.strings文件 - 在代码中使用
NSLocalizedString()引用本地化字符串
代码中本地化的示例:
// 使用本地化字符串
NSString *message = NSLocalizedString(@"Hello World", nil);
// 带有翻译者注释
NSString *message = NSLocalizedString(@"Hello World", @"启动时显示的问候消息");要添加新语言:
- 创建一个带有语言代码的新
.lproj目录(例如,法语为fr.lproj) - 从现有语言文件夹复制
Localizable.strings - 翻译所有字符串值,同时保持键不变
Localizable.strings 文件示例:
/* 按钮标题 */
"Sign" = "签名";
"Browse" = "浏览";
/* 消息 */
"Processing completed" = "处理完成";
"Error occurred" = "发生错误";
要在不更改系统设置的情况下测试本地化:
# 以特定语言运行应用
xcrun simctl launch --language=zh-Hans --region=CN com.yourusername.SignTools本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
