Giter VIP home page Giter VIP logo

ipahelper's Introduction

ipaHelper

==========

Tools and script for examining and resigning ipa files

Installation

To install, double click ipaHelperInstall.app and enter your system password.

ipaHelperInstall.app copies:

  • ipaHelper Bash script into /usr/bin/
  • man page for ipaHelper into /usr/share/man/man1/
  • ipaHelper.qlgenerator QuickLook plugin into ~/Library/Quicklook/
  • Resign.workflow resign Automator service into ~/Library/Services/

You may need to restart your computer for the QuickLook plugin and Automator service to work

QuickLook Plugin

The ipaHelper.qlgenerator QuickLook plugin uses the ipaHelper script to quickly display a summary of relevant information for:

  • ipa files
  • app files
  • xcarchive files
  • zip files containing an app file one level deep
  • provisioning profiles

When in finder with a file of one of these file types selected just hit spacebar to display the QuickLook summary.

Resign Automator Service

The Resign service uses the ipaHelper script to resign the following file types:

  • ipa files
  • app files
  • xcarchive files
  • zip files containing an app file one level deep

To use the Resign service, right click a file of one of these file types and select "Resign with..." from the service menu. Then select a provisioning profile to resign the file with.

The Resign service uses the following ipaHelper command:

ipaHelper resign [file] --force -p [provisioning profile] 2>&1

Using the --force option, the Resign service will force match the file's bundle ID to the profile's App ID.

The resigned file will be named filename-resigned.filetype,for example:

MyApp.ipa would be resigned as MyApp-resigned.ipa

xcarchive files will only be resigned as app files, for example:

MyXCArchive.xcarchive would be resigned as MyXCArchive-resigned.app

ipaHelper Script

BASIC USAGE

Get a summary of a file

$ ipaHelper summary /path/to/the/file.ipa

The Summary command works for .app, .ipa, .xcarchive, .mobileprovision, and .zip files (if the .zip file has an .app file one level deep)

Resign an app with a profile

$ ipaHelper resign [theApp] -p [theProfile]

The resign command works on .app, .ipa, .xcarchive, and .zip files (if the .zip file has an .app file one level deep)

The p option is not necessary if there is only one provisioning profile in the same directory as the app.

Resign an app with a profile in your library that matches the app's bundle ID

$ ipaHelper resign [theApp] --find --double-check

The double-check option is not necessary, but it is a good idea to double check that the profile found by the find option is the one you want.

Resign an app with a profile in your library matching the app and other criteria

$ ipaHelper resign [theApp] --find --matching [criteria1] [criteria2] --double-check

The matching command could be used to specify "distribution" to make sure it is not matched to a development profile. Or a specific name of a profile, if there are several matching the same bundle ID.

USAGE

ipaHelper profile [ file ] [ options ]
ipaHelper find [ file ] [ options ]
ipaHelper info [ file ] [ options ]
ipaHelper summary [ file ]
ipaHelper clean [ file | --all ]
ipaHelper rezip [ outputfile ]
ipaHelper verify [ file ]
ipaHelper resign [ file ] [ options ]
ipaHelper help [ -v ] [ commands ]
ipaHelper open [ file ]

DESCRIPTION

PROFILE

ipaHelper profile [ file ] [ options ]

Checks the profile of an ipa, app, xcarchive, or zip file containing an app file, or shows the information about a mobileprovision file If no file is provided, the first (alphabetically) ipa file in the working directory is used. If no options are present, a summary of the provisioning profile is displayed.

Profile Options

-v, --verbose
display the entire profile in xml format

-e, --entitlements
display the entitlements on the profile

FIND

ipaHelper find [ file ] [ options ]

Looks for profiles saved in the users library matching the bundle ID of the ipa, app, xcarchive or zip file containing an app file.

If no file is provided, the first (alphabetically) ipa file in the working directory is used.

Find Options:

-m pattern , --matching pattern
only display profiles matching pattern

-n, --no-wildcard
only display profiles with exact matches to the bundle ID, and not matching wildcard profiles

-a, --all
display all profiles in the users library. Ignores --no-wildcard option

--json
return the profile information in a JSON dictionary

INFO

ipaHelper info [ file ] [ options ]

Checks the Info.plist of an ipa, app, xcarchive, or zip file containing an app file, or shows the information about and Info.plist file If no file is provided, the first (alphabetically) ipa file in the working directory is used. If no options are present, a summary of the Info.plist is displayed.

Info Options:

-e editor , --edit editor
edit the Info.plist with editor. If no editor is provided, the default $EDITOR is used.

-v, --verbose
display the entire Info.plist in xml format

SUMMARY

ipaHelper summary [ file ]

Displays profile and info.plist information about an ipa, app, xcarchive, or zip file containing an app file. If no file is provided the first (alphabetically) ipa file in the working directory is used.

Summary Options:

--json
return the summary information in a JSON dictionary. Also adds the a key "AppDirectory" for the temporary unzipped app

-dc, --dont-clean
do not remove or zip the temporary app directory after returning summary information

CLEAN

ipaHelper clean [ file | --all ]

Cleans temporary files left over from previous command with the --dont-clean option. If run with the --all option, the entire temp folder for ipaHelper is deleted. If file is supplied, the folder associated with that file is deleted.

REZIP

ipaHelper rezip [ outputfile ]

Rezips left over temporary files from Summary command with the --dont-clean option as outputfile

Outputfile must be an app, ipa, appex, or zip file.

VERIFY

ipaHelper verify [ file ]

Checks to make sure the necessary code signing components are in place for an ipa, app, xcarchive, or zip file containing an app file. If no file is provided the first (alphabetically) ipa file in the working directory is used.

RESIGN

ipaHelper resign [ file ] [ options ]

Removes the code signature from an ipa, app, xcarchive, appex, or zip file containing an app file, and replaces it either with the first profile (alphabetically) in the directory with file or a specified profile. Resigns file using the certificate on the profile and entitlements matching the profile, zips the resigned ipa file with the output filename. If no output filename is provided, [filename]-resigned.ipa is used. If no file is provided, the first (alphabetically) ipa file in the working directory is used.

Resign Options:

-p profile , --profile profile
use profile for resigning the ipa

-f, --find
look for a profile in the user's library matching the file's bundle ID

-m patterns , --matching patterns
restricts the --find option to only profiles matching patterns

-o filename , --output filename
resign the ipa file as filename instead of [ipa filename]-resigned.ipa

--overwrite
overwrites the original file with the resigned file (ignores the --output option)

-d, --double-check
display information about the file, its Info.plist, and the provisioning profile and have be given an option to continue with the resign or quit

-F, --force
overwrite output file on resign without asking. Uses the profiles App ID if the App ID and Bundle ID do not match.

OPEN

ipaHelper open [ file ]

Copies file into a temporary file location, unzipped and prints the path to the app file.

If no file is provided, the first (alphabetically) ipa file in the working directory is used.

HELP

ipaHelper help [ -v ] [ commands... ]

Displays usage information for the commands.

If -v option is present it shows the usage information for all of the commands.

AUTHOR

Marcus Smith

ipahelper's People

Contributors

marcussmith avatar peterbuerer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ipahelper's Issues

Hide payload folder

I had done this before, but was zipping wrong so I changed it back. I can unzip the file into a hidden folder, but then zip only the standard payload folder, which would be much better.

Verify Command

I have never seen this actually be useful. Look more into it and decide whether or not to keep it. If keeping it, add to help and man page.

zip files

Make ipaHelper able to open zip files as well.

Man page and help

Update man page and help command to match changed profile and info options. And to include the summary command.

Edit function

Add "edit" option for info and profile functions.

hidden payload

Use a hidden payload folder instead of the standard Payload folder. I did this before, but had an issue when zipping the ipa. This should be an easy fix, and was better how I had it with this minor change

Summary command

Make a summary command for commonly needed information for the whole ipa, not just profiles or info.plists

Make zip back up command

This will eliminate duplicate code. Also useful for already opened, but uncleaned .ipa_payload folders

app files

Make ipaHelper able to open app files as well.

List function

Add "list" option for info and profile functions.

""

Go through the whole script and make sure all directory or filename variables are double quoted in all of the places they should be.

Account <-> Certificate Function

Make a function that can be used to edit a plist that links certificates to iTunesConnect accounts to speed up upload function.

Add error handling

Add error handling to deal with external commands. (security cms, codesign, etc)

factor make_ad out of commands

Put before any commands needing an ipa.
If filetype isn't valid, change filetype to "invalid"
Instead of assert_ipa, exit after make_ad if filetype is "invalid"

install package

I need to find out how this is generally done, to get the script into bin and the man page into the correct place.

Profile command

Remove unnecessary options. Evaluate what needs to be in the quick summary.

Expiration Date

Make this an option in profile, also make it display in the quick summary of the profile

Info Command

Remove unnecessary options. Evaluate what needs to be in the quick summary of the plist

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.