GithubHelp home page GithubHelp logo

ipasigner's Introduction

IPASigner

A simple, quickly code sign tool for *.ipa file.

中文

IPASigner use CommandLine to parse arguments and print help banner.

Install

  1. clone or download this repo
  2. do$ pod install
  3. open IPASigner.xcworkspace with Xcode.app
  4. Select IPASigner (Release) scheme and build.
  5. do $ ipasigner, You will get:
Usage:

    $ ipasigner <COMMAND>

    An signer tools for ipa file.

Commands:

    + sign        Sign IPA with standard mode.
    + resign      Sign IPA with custom mode.
    + provision   Lookin for local provision profiles.

Options:

    --version     Show the version of the tool
    --verbose     Show more information
    --help        Show help banner of specified command
    --silent      Show nothing
    --no-ansi     Show output without ANSI codes

It's meaning that ipasigner has be installed in /usr/local/bin.

Uninstall

$ rm /usr/local/bin/ipasigner

Usage

Sign with Any Profile

iOS will not verify the bundle id, so you can sign with any profile (contains different bundle id). And ipasigner will sign App Extension、Watch App with the same profile.

IPASigner provide resign command to resign with any profile:

$ ipasigner resign --help

You must type-in a profile argument -p <profile> with one of follow values:

  • path:Profile Path, A provision profile path.
  • name:Profile Name, it will search in installed profiles, and select newest.
  • uuid:Profile UUID, it will select one in installed profiles.
  • bundleid:Profile Bundle ID, it will search in installed profiles, and select newest.

And it also requires an input path, and an optional output path.

Such as:

$ ipasigner resign -p Wildcard ./WeChat.ipa
# Sign WeChat.ipa with a wildcard profile named `Wildcard`
# You will get WeChat.signed.ipa
$ ipasigner resign -p temp.mobileprovision ./QQ.ipa ./QQ_sign.ipa
# Sign QQ.ipa with temp.mobileprovision
# You will get QQ_sign.ipa

For more detail informations and arguments, do ipasigner resign --help.

Sign in Standard Mode

IPASigner will verify bundle id,and sign App Extensions, Watch Apps with different profile。

IPASigner provide sign command to sign in standard mode:

$ ipasigner sign development --help
$ ipasigner sign ad-hoc --help
$ ipasigner sign distribution--help
$ ipasigner sign in-house --help

You must type-in SIGN_TYPE follow sign:

  • development Development Profile
  • ad-hoc AD Hoc Profile
  • distribution Distribution Profile
  • in-house Enterprice Profile

And it also requires an input path, and an optional output path.

You can modify bundle id with argument --bundle-id. Attention:

  1. It will search profile with new bundle id
  2. It will modify App Extensions, Watch Apps bundle id in the mean time, And search profile with new bundle id.

Such as:

$ ipasigner sign ad-hoc --bundle-id com.my.bundleid ./WeChat.ipa
# Modify WeChat.ipa's bundle id as `com.my.bundleid` and sign with ad-hoc profile
# You will get WeChat.signed.ipa
$ ipasigner sign in-house ./QQ.ipa ./QQ_sign.ipa
# Use default bundle id (com.tencent.xin) and sign with in-house profile
# You will get QQ_sign.ipa

For more detail informations and arguments, do

$ ipasigner sign <development|ad-hoc|distribution|in-house> --help

Sign with custom package

Info.plist

# Bundle identifier
--bundle-id <NEW_BUNDLE_ID>

# Bundle version
--bundle-version <NEW_BUNDLE_VERSION>

# Build version
--build-version <NEW_BUILD_VERSION>

# Bundle display name
--bundle-display-name <NEW_BUNDLE_DISPLAY_NAME>

# Remove UISupportDevices flag
--support-add-devices

# Enable or disable iTunes file sharing
--file-sharing
--no-file-sharing

# Enable or disable opening documents in place
--file-place
--no-file-place

Binary

# Thin all binary to single platform
--thin arm64

# Inject dylib into main binary
--inject /path/to/dylib1 --inject /path/to/dylib2 ...

# Custom entitlements
--entitlements /path/to/.entitlements
--get-task-allow <1|0>

App Extensions

# Remove PlugIns
--rm-plugins

# Remove Watches
--rm-watched

# Remove PlugIns & Watches
--rm-ext

Main Bundle

# Fix Icon Error
--fix-icons

ipasigner's People

Contributors

magic-unique avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.