Code Monkey home page Code Monkey logo

mprovision's Introduction

mprovision

A command line tool to manage local provisioning profiles. Mostly useful in iOS development or for mobile CI/CD engineers.

Usage

Type mprovision help in your terminal to see the list of subcommands and options. Most of subcommands work on ~/Library/MobileDevice/Provisioning Profiles directory by default but you can specify a full path using a --source argument.

Use cases

1. See all profiles in your system

mprovision list will show the list of all provisioning profiles installed in your system.

2. Search and Remove

  • The list subcommand accepts an optional argument -t or --text that allows you to filter the list of provisioning profiles by some text.
  • The remove subcommand removes one or more profiles by their uuids or bundle ids.

3. View details of a provisioning profile

The show subcommand followed by uuid of a provisioning profile allows you to see details in xml format. Alternatively, you can use show-file subcommand if you know exact path to a file.

4. View profiles that will expire soon

The list subcommand accepts an optional argument -d or --expire-in-days followed by a number of days and shows the list of profiles that will expire. For example, the mprovision list -d 0 command will show profiles that have already been expired.

5. Remove expired profiles

The clean subcommand removes expired provisioning profiles.

NOTE: you can see provisioning profiles that will be removed using the mprovision list -d 0 command.

6. Number of profiles

There is no special command for that but you can use the following hack:

mprovision list --oneline | wc -l

7. Extract provisioning profiles from an ipa file

Use the extract subcommand and pass source and destination.

mprovision extract MyApp.ipa MyApp/

License

MIT

mprovision's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar zummenix avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

houweifeng

mprovision's Issues

Expand and change CLI api.

Current CLI api is the following:

mprovision search <text> [<directory>]
mprovision remove <uuid> [<directory>]
mprovision show-xml <uuid> [<directory>]
mprovision show-expired --days <days> [<directory>]
mprovision remove-expired [<directory>]

I would want to have something like this:

mprovision list [--filter <text>] [--expires-in-days <days>] [<directory>]

mprovision show uuid <uuid> [<directory>]
mprovision show path <path>

mprovision remove uuid <uuid> [<directory>]
mprovision remove path <path>

mprovision cleanup [<directory>]

Optimize usage of println! in main.rs

From a reddit comment:

Another one is using println! when doing lots of output, because println! locks stdout with each call. It's much faster to lock stdout only once manually and use something like write!

Introduce cargo workspace

The cli tool and the lib can be separated to have their own set of dependencies. This also "unblocks" me to release them separately on crates.io

Extend 'show' subcommand to show profile by a file path

Currently the 'show' subcommand is only able to show a profile by its uuid.
I want to be able to run:

mprovision show path/to/profile.mobileprovision

Internally we can distinguish if the show arg is a path or uuid and proceed accordingly.

Add `--oneline` flag to the `list` subcommand

This will be useful for viewing and to count number of listed profiles using wc -l

Proposed format:

<uuid> <expiration date> <app id> <profile name>
58d55c37-2a5c-47a4-8322-7eaa4c92a0c5 2021-02-26 PPSKAJG384.com.business.myapp MYAPP Appstore

We need to color this output for user to be able to visibly distinguish each field.

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.