Packaging & Installing using PackageMaker

Discussion in 'Mac Programming' started by satyam90, Dec 23, 2007.

  1. satyam90 macrumors regular


    Jul 30, 2007
    Bangalore, India
    I am working on Cocoa framework, XCode 2.4.1 with Obj-C

    My whole application is divided into two - Say "A" and "B". "A" runs in background for connecting to transfer and provides communication between client and server using gsoap. "B" is a GUI which contacts "A" for all operations performed. "A" depends on "Mono - 1.2.2 version or above".

    When installed properly with user defaults "A" (background) must be placed in a place like "$HOME" (which I decide during packaging), i mean "A" must not be "relocated" while installation and "B" will be under "Applications"

    I am using "packagemaker" and making a "mpkg" file and placing it in one empty directory eg: temp. Now I will use the following command to make "dmg". I am providing licence, readme etc details that are necessary.
    hdiutil  create  -srcfolder <temp folder>  -volname <vol name>  <dest-folder>/<dmg name>.dmg
    Now the package is made successfull.

    While installing the dmg, it will show a window with "mpkg" file. double click it, it will show installation window for license agreement etc. It will have an option to "customize".
    1. Now in this I want to make this button "in-active" as I don't want to make my "A" and "B" relocatable.
    2. At the time of installation it must check for the availability of "Mono and its version 1.2.2 or above". If not available, it must throw an error and halt installation.

    How to achieve this?
    I think it is clear. Please excuse me it not clear. I will provide u the necessary details if any missing.
  2. numero macrumors regular

    Jul 23, 2002
    In reply to #1: If you are using PackageMaker from 10.5 then click under "Contents" on your application (or folder of stuff). In the right hand pane, click on "Configuration" and then uncheck the box for "Allow custom location".

    If you are using the 10.4 PackageMaker just let me know and I'll look up the specifics.

    For #2 you will need a shell script that can perform the test for you. The shell script should return 0 if everything is OK and 97 if you don't have the version you want. Name the script InstallationCheck for 10.4 compatibility, but I don't think it matters for 10.5. Instead of clicking the "Configuration" tab as you did in #1, click on the "Scripts" tab and put this script in the "Preinstall" slot. If the script returns a failure code then the installation will halt. Look up the docs on the InstallationCheck script. I just pulled the 97 from a script I have from my previous project.

    Let me know if this answers your questions.

  3. satyam90 thread starter macrumors regular


    Jul 30, 2007
    Bangalore, India
    The application has yet to migrate to 10.5
    I am using OSX 10.4.11 with XCode 2.4.1. After starting "packagemaker" appliation, I will use "Assist Me" button and enter my title and org details, then in contents I will select "A" and "B" directores which consists of executables only, enter bundle id, then description, select welcome-license etc and finally the name of the appliation and where to save.

    Let me know if I will package in 10.5, will it work with 10.4 for installing the product?
  4. ksukhava39 macrumors newbie

    May 15, 2009
    User Input while Installation

    Hi Guys,
    How are you doing :), I have a query for you.
    while the end user installting our software i need to provide an textbox or option where the user enters the number of days into it, The label to that text box is "The number of days the software needs to be installed on your system".

    So, After the given number of days over we will uninstall that software(This we can take care.)

    But can we have a provision in package maker for the above requirement of taking input from user while installing software. This is an urgent requirement.

    thank you all
    kiran kumar
  5. iSee macrumors 68040


    Oct 25, 2004
    A postflight script might be able to do what you want.

    However, usually this kind of user-driven configuration is done on first run.

    That is, when the user first runs the app after installation, they are prompted to complete a config wizard.

    I'm not sure if that will work for you (e.g. maybe you expect the person installing the software to be different than the person running it).

Share This Page