A RESTful API service for iOS IPA file analysis and re-signing. This service provides an alternative to Esign and Universal-sign tools.
- Analyze IPA files to extract bundle ID and app name
- Re-sign IPA files with custom certificates and provisioning profiles
- Generate installation manifest files for iOS OTA installation
- Consistent UUID-based storage of files
- Caching of previously analyzed IPAs
- zsign must be installed on your deployment server
- Go 1.16 or later
git clone https://github.com/yourusername/ipa-resign.git
cd ipa-resign
go mod download
go build .
# Basic usage with default settings
./ipa-resign
# Custom base URL and port
./ipa-resign --base-url=https://example.com --port=9900
# Using environment variables
export BASE_URL=https://example.com
./ipa-resign --port=9900
POST /analyze
Parameters:
ipa_url
: Direct download URL to the IPA file
Response:
{
"uuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"bundle_id": "com.example.app",
"app_name": "Example App",
"source_url": "https://example.com/download/6ba7b810-9dad-11d1-80b4-00c04fd430c8/source.ipa",
"analyzed": true
}
POST /resign
Parameters:
- Either
ipa_uuid
(from previous analysis) oripa_url
(direct download link) p12
: Upload your signing certificate (multipart/form-data)mobileprovision
: Upload your provisioning profile (multipart/form-data)p12_password
: Password for the p12 certificatebundle_id
: (Optional) Custom bundle ID for the resigned appapp_name
: (Optional) Custom app name for the resigned app
Response:
{
"uuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"plist_url": "https://example.com/download/6ba7b810-9dad-11d1-80b4-00c04fd430c8/manifest.plist",
"source_url": "https://example.com/download/6ba7b810-9dad-11d1-80b4-00c04fd430c8/source.ipa",
"ipa_url": "https://example.com/download/6ba7b810-9dad-11d1-80b4-00c04fd430c8/resigned.ipa",
"bundle_id": "com.example.app",
"app_name": "Example App"
}
GET /download/:uuid/:filename
Supported filenames:
source.ipa
: Original IPA fileresigned.ipa
: Re-signed IPA filemanifest.plist
: Installation manifest for iOS OTA installation
After re-signing an IPA, you can install it on iOS devices using the Safari browser with the following URL format:
itms-services://?action=download-manifest&url=https://example.com/download/UUID/manifest.plist
A demo service is available at https://sign.missuo.me
Note: The front-end interface is not open source at this time. When using the service, all fields must be completed, and direct IPA file uploads are not supported. You must provide correct and complete download links.
ipa-resign/
├── main.go # Main application code
├── output/ # Generated files directory
│ └── [UUID]/ # Unique directories for each IPA
│ ├── source.ipa
│ ├── resigned.ipa
│ ├── manifest.plist
│ ├── cert.p12
│ └── profile.mobileprovision
└── screenshots/ # Screenshots for documentation