Giter VIP home page Giter VIP logo

resign's Introduction

This is a OSX utility app to get all the infos about an IPA file and to resign it.

Main features:

  • Minimum OS: OS 10.11
  • ARC
  • Language used: Objective-C
  • Only resign and get information about IPA file for iPads

#INSTALLATION

You can open the xcode project and build it or open directly the app.

#GETTING INFO FROM IPA FILES

Just open the ipa file by tapping the button "Open the ipa file" or dragging it in the relative field. Then you have information about:

  • provisioning profile
  • signign certificate
  • bundle id
  • display name
  • short version and build version
  • normal icon (76x76 pixels) and retina icon (152x152 pixels)

At the bottom you have also a console textview, you can clean it by tapping the "Clean" button. If you tap on the "?" icons near some feature, the console prints the relative informations.

#RESIGN IPA FILES

Once you opened an ipa file, the console prints this message to tell that the app is ready to resign the ipa file:

---READY---

Now you can decide to resign the ipa file changing some feature of it by tapping the "Resign" button:

  • provisioning profile: tap on the combobox in order to change it
  • signign cettificate: tap on the combobox in order to change it
  • bundle id: deselect the ratio button "Default Bundle ID" in order change it
  • display name: deselect the ratio button "Default display name" in order change it
  • short version and build version: deselect the ratio buttons "Default IPA short version" and "Default IPA build version" in order change them
  • normal icon (76x76 pixels) and retina icon (152x152 pixels): deselect the ratio button "Default icons" in order change them and then just tap on the icons to open other icons, please select a normal icon of 76x76 pixels and a retina icon of 152x152 pixels

When the resign finished successfully, the console prints the message:

---RESIGN DONE---

Then you can:

  • resign the same source ipa file loaded before by simply changing other features and tapping the "Resign" button another time
  • tap the "Reset all" button in order to delete all the infos about the last ipa file loaded, and load another ipa file to resign it

If you loaded an ipa file, if you change some features of it then you can always tap the "Use default values" button in order to reset all the above features to the default ones. You can decide the destination ipa path where to save the resigned ipa file, the default one is Desktop.

#HELPER CLASSES

  • NSScrollView+MultiLine

Category of NSScrollView to access directly to the textview of the scrollview. You have two utility methods:

To append a string to the existing string value of the textview of the scrollview.

- (void)appendStringValue:(NSString*)string;

To set the string to the existing string value of the textview of the scrollview.

- (void)setStringValue:(NSString*)string;

  • FileHandler

Class that handles all the IPA operations. It's a singleton so you can call it by:

+ (instancetype)sharedInstance;

You have a lot of public properties you can access:

// array of provisioning profiles available
@property (nonatomic, strong) NSMutableArray *provisioningArray;

// path of the edited normal icon (76x76 pixel)
@property (nonatomic, strong) NSString *iconPath;

// path of the edited retina icon (152x152 pixel)
@property (nonatomic, strong) NSString *iconRetinaPath;

// array of certificates available
@property (nonatomic, strong) NSMutableArray *certificatesArray;

// source ipa path
@property (nonatomic, strong) NSString *sourcePath;

// temp working directory
@property (nonatomic, strong) NSString *workingPath;

// path of the unzipped ipa (inside the workingPath)
@property (nonatomic, strong) NSString *appPath;

// destination ipa path
@property (nonatomic, strong) NSString *destinationPath;

You have also a lot of public methods you can use:

// init
+ (instancetype)sharedInstance;

// utility
- (void)clearAll;
+ (NSString*)getDocumentFolderPath;
+ (NSString*)getDesktopFolderPath;
- (BOOL)removeWorkingDirectory;
- (BOOL)removeCodeSignatureDirectory;

// bundle id
- (void)getDefaultBundleIDWithSuccess:(SuccessBlock)success error:(ErrorBlock)error;

// short version
- (void)getDefaultShortVersionWithSuccess:(SuccessBlock)success error:(ErrorBlock)error;

// build version
- (void)getDefaultBuildVersionWithSuccess:(SuccessBlock)success error:(ErrorBlock)error;

// product name
- (void)getDefaultProductNameWithSuccess:(SuccessBlock)success error:(ErrorBlock)error;

// icons
- (void)getDefaultIconFilesWithSuccess:(SuccessBlock)success error:(ErrorBlock)error;

// zip/unzip
- (BOOL)searchForZipUtility;
- (void)unzipIpaFromSource:(NSString*)ipaFileName log:(LogBlock)log error:(ErrorBlock)error success:(SuccessBlock)success;

// app info
- (void)showIpaInfoWithSuccess:(SuccessBlock)success error:(ErrorBlock)error;
- (void)showProvisioningProfileWithSuccess:(SuccessBlock)success error:(ErrorBlock)error;
- (void)showSignignCertificatesWithSuccess:(SuccessBlock)success error:(ErrorBlock)error;

// provisioning profiles
- (void)getProvisioningProfiles;
- (NSString*)getProvisioningInfoAtIndex:(NSInteger)index;
- (int)getProvisioningIndexFromApp:(YAProvisioningProfile*)profile;

// signign certificates
- (void)getCertificatesSuccess:(SuccessBlock)success error:(ErrorBlock)error;
- (NSInteger)getCertificateIndexFromApp:(NSString*)cert;

// resign
- (void)resignWithProvisioningIndex:(int)provisioningIndex editProvisioning:(BOOL)editProvisioning editIcons:(BOOL)editIcons certificateIndex:(int)certificateIndex log:(LogBlock)log error:(ErrorBlock)error success:(SuccessBlock)success;

Screens:

alt text

resign's People

Contributors

ligeiarowena avatar fcorsini avatar

Watchers

James Cloos 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.