GithubHelp home page GithubHelp logo

provise's Introduction

Provise

Gem Version

CLI used to change the provisioning profile of an iOS App (.ipa file). Also makes possible changing the bundle identifier if the new provisioning has a different one.

Installation

$ gem install provise

Usage

To simply change the provisioning

$ resign ipa -i Application.ipa -p foo/bar.mobileprovision -c \"iPhone Distribution: Bla Bla\"

To change the peovisionig and also the bundle identifier

$ resign ipa -i Application.ipa -p foo/bar.mobileprovision -c "iPhone Distribution: Bla Bla" -b br.com.new.bundle.identifier

Help

$ resign ipa --help

Reference

Based on Erik's (http://stackoverflow.com/users/487353/erik) original answer at http://stackoverflow.com/a/6921689/429521

Changelog

  • 0.0.3
    • Fixes #5 - iOS ipa codesign on XCode 6.1 & Yosemite
  • 0.0.2
    • Added bundle version and entitlements file parameters (thanks eilers)
  • 0.0.1
    • Initial release

Contact

Felipe Sabino

License

Provise is available under the MIT license. See the LICENSE file for more info.

provise's People

Contributors

felipesabino avatar eilers avatar

Stargazers

 avatar Manfred Endres avatar zzyhappyzzy avatar Masashi "Masa" Beheim avatar Emil avatar ZeroX avatar  avatar Vienta avatar Helmut Januschka avatar Joe Gorecki avatar Robin Chou avatar Stewart Gleadow avatar easonoutlook avatar jaymz campbell avatar Greg P avatar  avatar Evgeny Karkan avatar Urmil Setia avatar Maurício Hanika avatar Madjid Mahdjoubi avatar Tam Dinh Thai Minh avatar  avatar  avatar Marcio Horoiwa avatar

Watchers

 avatar James Cloos avatar Greg P avatar  avatar

provise's Issues

install fails on resigned 'trans-org' enterprise app - archived-expanded-entitlements.xcent not updated

Firstly - thanks for provise. Been using it happily for a bit when resigning apps from within an organization.

Having some trouble trying to resign an app between organizations.

Process goes like this:

  1. Compile an IPA with an explicit bundle id and matching MPP, with push notifications enabled and configured, and signed with an 'in-house' (enterprise) key. This IPA installs correctly and recieves push notifications as expected.
  2. Call resign using a certificate and MPP from another developer org enrolled in the apple enterprise dev program while changing bundle id to match new MPP. Completes without error.
  3. Attempt OTA installation of the new IPA. This fails with:

Mar 25 12:03:33 Michaels-iPad itunesstored[2512] : 0x20bf000 __MobileInstallationInstallForLaunchServices_block_invoke240: Returned error Error Domain=MIInstallerErrorDomain Code=63 "Application is missing the application-identifier entitlement." UserInfo=0x145c0c60 {LegacyErrorString=ApplicationVerificationFailed, FunctionName=-[MIInstallableBundle performVerificationWithError:], NSLocalizedDescription=Application is missing the application-identifier entitlement., SourceFileLine=473}


In the resigned IPA, the correct NEW app id and bundle id appear in embedded.mobileprovision file under 'Entitlements' -> 'application-identifier'. The file 'archived-expanded-entitlements.xcent' in the new IPA still contains references to the old app id and bundle id, though. I >think< this is why the device declines to install the IPA.

automation around entitlements and change of team id and bundle id

This is a feature request, not a bug.

I'm thinking provise could be more useful with some changes around how entitlements are handled

Specifically:

  • default behavior should be to preserve entitlements from old .ipa to new. This can be achieved with the --preserve-metadata=entitlements parameter to codesign.
  • in addition to a new bundle id, user should be able to specify a new team identifier and provise should change appropriate values in the entitlements to match. This would involve dumping the current entitlements (codesign -d --entitlements :tmp-entitlements.plist), doing a search and replace on team identifier and/or bundle id, and then specifying use of the new entitlements during signing (codesign -f --entitlements entitlements.xml).

I have validated that these process work manually. Am willing to create a pull request if you reckon this is a good idea.

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.