Page 1 of 5 123 ... LastLast
Results 1 to 20 of 94

Your favorite Apple, iPhone, iPad, iOS, Jailbreak, and Cydia site.


Thread: How to release an app?

  1. #1
    Default How to release an app?
    I have one, perhaps two applications I have been working on that are ready for release. But that said I have not been able to find documentation for the installer that defines all of the script commands, etc.

    Basically how does a developer get a program packaged for release? Does the developer build the package, or does someone who is hosting perform this task?

    For reference the first application puts the phone into airplane mode on a user defined schedule (e.g. nighttime). A preference application and daemon are employed. The magic here is getting the phone to wake from sleep to execute something.

    The second application implements extended notifications for SMS, etc beyond the 20 seconds the phone stays awake on a wake up event (e.g. arrival of a SMS). In short the code exploits what was learned in the first application.

  2. #2
    There is some information here: http://iphone.nullriver.com/beta/

    The package itself has scripts in it, and Installer simply executes them. There aren't many commands used by installer itself. I'm guessing for most repositories, the person hosting will take care of that. (p_f, am I correct?)

    I like the first app idea! I think on MMi, poetic folly wants you to release the .zip file to the public first, to see if it is stable, before it can be put on the MMi source.
    If you like or found helpful anything I have said, please click that nice little Thanks button!

  3. #3
    Former Owner / Founder of ModMyi Kyle Matthews's Avatar
    Join Date
    May 2007
    Location
    Tampa, Florida, United States
    Posts
    8,516
    Thanks
    577
    Thanked 4,905 Times in 1,247 Posts

    Yes, we do not release untested software on the public source. Once we've had a few testers without major issues, we can release publicly.
    .


    ↑ ↑ ↓ ↓ ← → ← → B A [select] [start] Kyle Matthews

  4. #4
    attach the zip here are in a new thread and explain what it does and what its for and im sure people will try it out but give proper warnings if needed

  5. #5
    Default Auto Airplane Mode - iPhone Versions 1.1.3 or later
    Updated:

    Latest code in this post. Fixed bug that prevented airplane mode from being activated if an iPhone alarm is set. Note that the preference file was corrupt and the updated code should clean that up on its own the first time you hit the save button.

    -----

    Attached is an application to put the iPhone into airplane mode on a user defined nightly schedule. The software has been tested for several months and it is ready for a wider audience.

    The components are a daemon invoked by launchd, a launchd plist and a GUI preferences application (screen shot below) to permit the user to enable/disable the daemon, as well as configure the enable and disable airplane mode times. Note that the enable / disable event always occurs on the hour.

    The version attached only supports iPhone version 1.1.3 or 1.1.4.

    To install the software unzip the attached zip and upload the files to the iPhone with the following locations,

    AirplaneMode -> /sbin
    com.mode.plist -> /Library/LaunchDaemons
    com.mode.tz.plist -> /Library/LaunchDaemons
    AutoMode.app -> /Applications

    If one is using scp the following should accomplish this task,

    scp AirplaneMode root@ipaddr:/sbin
    scp com.mode.plist root@ipaddr:/Library/LaunchDaemons
    scp com.mode.tz.plist root@ipaddr:/Library/LaunchDaemons
    scp -r AutoMode.app root@ipaddr:/Applications
    Once the code is copied up to the iPhone, restart SpringBoard to get the preferences application to show up. Fire up the preferences app, set the enable / disable times, select enable and press save.

    In limited alpha testing to date only one issue came up. If you find that the enable setting does not save, check that AirplaneMode has execute permission. If the preferences application refuses to execute, most likely execute permission was lost in uploading the app to the phone.


    Attached Thumbnails Attached Thumbnails -screenshot.png  
    Attached Files Attached Files
    Last edited by vsc; 2008-04-05 at 03:10 PM.

  6. The Following 2 Users Say Thank You to vsc For This Useful Post:

    Birdyvcl (2008-06-01), iPhoneFrank (2008-04-01)

  7. #6
    looks pretty good! I'll try it out when I get my new router. Mine died :-(

    Setting permissions really can't be considered an "issue". Most apps require you to do that.
    If you like or found helpful anything I have said, please click that nice little Thanks button!

  8. #7
    Default Unread SMS / Email and Unanswered Phone Call Reminder - Versions 1.1.3 or Later Only
    Attached is an application that provides reminders when an unread SMS message / email or unanswered phone call occurs on the iPhone. Configurable options are status bar icons, periodic vibration events or audio playback of a ring tone. For vibration and ring tone playback the user can select the interval and number of cycles.

    This code is early beta quality at this juncture and has been tested on 1.1.3 and 1.1.4.

    Notable is that for vibration and ringtone playback the iPhone is setup to prevent sleep until user selected cycles are completed. Only then is the iPhone permitted to return to sleep. (Note that this was a problem with Nate True's scheme based upon a shell script.)

    As background the concept behind the architecture of this software is the use of launchd to start the daemon when a database file changes (e.g. SMS, email or phone call). The daemon provides event specific reminders based upon configuration via command line switches. At this juncture the configuration is based upon the contents of the launchd plists.

    Attached is a zip file with the daemon and two directories. The first directory contains the status bar icons which must be copied, as shown below, into the Springboard directory. The second directory contains plists for launchd which serve to launch the daemon when a database file changes.

    Once the zip file is unpacked the files need to be copied as follows,

    Reminder -> /sbin
    Default_CALLT.png -> /System/Library/CoreServices/SpringBoard.app
    Default_EMAILT.png -> /System/Library/CoreServices/SpringBoard.app
    Default_SMST.png -> /System/Library/CoreServices/SpringBoard.app
    FSO_CALLT.png -> /System/Library/CoreServices/SpringBoard.app
    FSO_EMAILT.png -> /System/Library/CoreServices/SpringBoard.app
    FSO_SMST.png -> /System/Library/CoreServices/SpringBoard.app
    com.mailReminder.plist -> /Library/LaunchDaemons
    com.phoneReminder.plist -> /Library/LaunchDaemons
    com.smsReminder.plist -> /Library/LaunchDaemons
    Springboard must be restarted for the status bar icons to be noticed. Restart the iPhone, or use "SysInfo" to "respring" Springboard.

    Next using UICTL, or launchctl, the daemon must be enabled for each reminder class (mail, phone and sms). If you use launchctl on the iPhone then the following should be executed in the LaunchDaemons directory,

    cd /Library/LaunchDaemons
    launchctl load -w com.mailReminder.plist
    launchctl load -w com.phoneReminder.plist
    launchctl load -w com.smsReminder.plist
    To disable reminder either use UICTL or launchctl as follows,

    cd //Library/LaunchDaemons
    launchctl unload -w com.mailReminder.plist
    launchctl unload -w com.phoneReminder.plist
    launchctl unload -w com.smsReminder.plist
    Command line arguments to the reminder daemon are,

    Code:
    Usage: Reminder [OPTION]
    -i	xx	Interval in seconds between events
    -c	xx	Number of events
    -v		Vibrate at event time
    -r	xx	Play ringtone name at event time
    -s		SMS Reminder
    -p		Unanswered phone call reminder
    -m		Unread mail reminder
    -d		Delete icons from status bar
    An example launchctl plist is the SMS plist shown below. Two arguments are provided to the reminder daemon, "-s" and "-r". The "-s" tells the daemon that a SMS event occurred and "-r" followed by a ringtone name indicates that the ringtone should be played periodically.


    HTML Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    	<key>Label</key>
    	<string>com.smsReminder</string>
    	<key>OnDemand</key>
    	<true/>
    	<key>ProgramArguments</key>
    	<array>
    		<string>/sbin/Reminder</string>
    		<string>-s</string>
    		<string>-r</string>
    		<string>Harp</string>
    	</array>
    	<key>StandardErrorPath</key>
    	<string>/dev/null</string>
    	<key>StandardOutPath</key>
    	<string>/dev/null</string>
    	<key>UserName</key>
    	<string>mobile</string>
    	<key>WatchPaths</key>
    	<array>
    		<string>/var/mobile/Library/SMS/sms.db</string>
    	</array>
    </dict>
    </plist>

    Limitations / Issues / Other Notes:

    1) Ringtones must reside in /Library/Ringtones. This could change if people want to supply a full path to the file.
    2) The email database can be locked by the iPhone for extended periods of time, thus preventing the daemon from accessing the database file. The daemon retries a number of times to access the database, but if it never gets access the reminder does not occur.
    3) The default reminder interval is 15 seconds and the count is 4. Use "-i" and "-c" to specify an alternative interval and/or count.
    4) The code is event based. As such it only uses power when a sms, phone call, email event occurs.
    5) The "-d" command line switch is for debug and wouldn't be used in the launchd plist.
    6) The code only supports iPhone version 1.1.3 or later.
    7) Each of the sample plists in the AudioReminder subdirectory has an arbitrary ringtone specified. Edit the plist, unload and reload the daemon (or reboot the iPhone) for the change to take effect.
    8) No code from "taskbar notifier" was employed in this effort. This effort was based upon limitations found in Nate True's shell script approach.

    Deinstall:

    To deinstall reminder unload each reminder class as shown above using UICTL or launchctl with the unload -w arguments. Once the daemon has be unloaded, delete the files from the install locations.

    Acknowledgments:
    Erica Sadun - Provided help on the status bar icon code.
    stuart.william.taylor - Status bar icons.
    Attached Files Attached Files
    Last edited by vsc; 2008-03-02 at 06:10 PM.

  9. #8
    Can this APP be installed on an iPhone that has not been jailbroken or unlocked?

  10. #9
    Livin the iPhone Life Eurisko's Avatar
    Join Date
    Aug 2007
    Location
    Toronto, Canada
    Posts
    3,307
    Thanks
    12
    Thanked 562 Times in 483 Posts

    Quote Originally Posted by patriotman21 View Post
    Can this APP be installed on an iPhone that has not been jailbroken or unlocked?
    Until the SDK comes out and Developers can install through iTunes, no modifications can be made to the iPhone without being jailbroken.
    Get "iPod & iTunes for Dummies", it'll change your life.

  11. #10
    Quote Originally Posted by vsc View Post
    Attached is an application to put the iPhone into airplane mode on a user defined nightly schedule. The software has been tested for several months and it is ready for a wider audience.

    The components are a daemon invoked by launchd, a launchd plist and a GUI preferences application (screen shot below) to permit the user to enable/disable the daemon, as well as configure the enable and disable airplane mode times. Note that the enable / disable event always occurs on the hour.

    The version attached only supports iPhone version 1.1.3 or 1.1.4.

    To install the software unzip the attached zip and upload the files to the iPhone with the following locations,

    AirplaneMode -> /sbin
    com.mode.plist -> /Library/LaunchDaemons
    AutoMode.app -> /Applications

    If one is using scp the following should accomplish this task,



    Once the code is copied up to the iPhone, restart SpringBoard to get the preferences application to show up. Fire up the preferences app, set the enable / disable times, select enable and press save.

    In limited alpha testing to date only one issue came up. If you find that the enable setting does not save, check that AirplaneMode has execute permission. If the preferences application refuses to execute, most likely execute permission was lost in uploading the app to the phone.

    hey,
    Really great app, will check it on 1.1.4 and post the results. Also can u please improve the interface like replace the Enable option with an Option for enable disable airplane mode as in Preferences.
    Also please give the liberty to choose the exat time to enable and disable like the one in the iphone's clock for setting alarm. Please improve these things to make this app perfect.
    thanks

  12. #11
    I would have liked to add to the stock preferences application. In fact it would have been less work on my part. But that said right now there doesn't seem to be a way to deconflict additions with what other developers might be adding.

    Using a time picker (what you suggested) for enable / disable times is on the top of my list with regard to changes to the application. I'm on travel on and off for the next two weeks, so release depends on getting enough time on my mac pro.

    Quote Originally Posted by eternal View Post
    hey,
    Really great app, will check it on 1.1.4 and post the results. Also can u please improve the interface like replace the Enable option with an Option for enable disable airplane mode as in Preferences.
    Also please give the liberty to choose the exat time to enable and disable like the one in the iphone's clock for setting alarm. Please improve these things to make this app perfect.
    thanks
    Quote Originally Posted by Eurisko View Post
    Until the SDK comes out and Developers can install through iTunes, no modifications can be made to the iPhone without being jailbroken.
    Concur
    Last edited by vsc; 2008-03-05 at 03:37 AM. Reason: Automerged Doublepost

  13. #12
    hey,
    thanks for the quick reply, also i have noticed that when the app starts airplane and the I adjust the clock to time in which in which it has to get out of it for testing purpose it still is in airplane. maybe this is because your app uses an inbuilt timer and set to sleep mode for the time difference between the starting point and ending point and this timer does not get adjusted with the iphone clock.so please make it work according to the iphone clock and not an inbuilt timer.
    thanks
    thanks

    hey,
    thanks for the quick reply, also i have noticed that when the app starts airplane and the I adjust the clock to time in which in which it has to get out of it for testing purpose it still is in airplane. maybe this is because your app uses an inbuilt timer and set to sleep mode for the time difference between the starting point and ending point and this timer does not get adjusted with the iphone clock.so please make it work according to the iphone clock and not an inbuilt timer.
    thanks
    Last edited by eternal; 2008-03-05 at 11:44 AM. Reason: Automerged Doublepost

  14. #13
    I'm not sure what you are getting at.

    When an event occurs the next event is scheduled at that time. If during the period between events you cross into another time zone, adjust the iPhone's clock, etc the schedule event might not occur at the expected time. For example you cross a time zone and there is a 2 hour difference between what the phone scheduled and the time in the new zone. Then the event will occur with a 2 hour error. There is little hope of fixing this right now, that is unless I figure out where the zone is stored.

    Quote Originally Posted by eternal View Post
    hey,
    thanks for the quick reply, also i have noticed that when the app starts airplane and the I adjust the clock to time in which in which it has to get out of it for testing purpose it still is in airplane. maybe this is because your app uses an inbuilt timer and set to sleep mode for the time difference between the starting point and ending point and this timer does not get adjusted with the iphone clock.so please make it work according to the iphone clock and not an inbuilt timer.
    thanks
    thanks

  15. #14
    Quote Originally Posted by vsc View Post
    I'm not sure what you are getting at.

    When an event occurs the next event is scheduled at that time. If during the period between events you cross into another time zone, adjust the iPhone's clock, etc the schedule event might not occur at the expected time. For example you cross a time zone and there is a 2 hour difference between what the phone scheduled and the time in the new zone. Then the event will occur with a 2 hour error. There is little hope of fixing this right now, that is unless I figure out where the zone is stored.
    hey,
    that is what I was talking about. please fix it asap. and by the way there is 12pm in the enable category which should be changed to 12 am.
    thanks

  16. #15
    Update: Latest code attached to the first post in this thread.


    Bugged me as well. Here is a cut at the time zone issue. Note that the code is tested in the sense that it won't do anything bad, but I can't test changing time zones for real without traveling.

    To install use the prefs app and set enable to no. Copy the files into place as before and set enable to yes.

    Note that there is one new file that needs to be placed as follows,

    com.mode.tz.plist -> /Library/LaunchDaemons

    When the phone changes the time zone the daemon will relaunch and adjust the next event to occur at the proper time within the new time zone.

    Seems to work properly when I force a zone change, but as cited above I can't test it fully until I travel outside of my current time zone.

    Tell me the results.


    Quote Originally Posted by eternal View Post
    hey,
    that is what I was talking about. please fix it asap. and by the way there is 12pm in the enable category which should be changed to 12 am.
    thanks
    Last edited by vsc; 2008-04-05 at 02:57 PM.

  17. #16
    Thanks so much! I haven't traveled, so I am not sure either, but I will put it on here and see next time I travel.
    If you like or found helpful anything I have said, please click that nice little Thanks button!

  18. #17
    Default Unread SMS / Email and Unanswered Phone Call Reminder - Update
    Small update related to locked mail database issue.
    Attached Files Attached Files

  19. The Following User Says Thank You to vsc For This Useful Post:

    vandy1997 (2008-03-30)

  20. #18
    Hey, I like that, Let us all know when it is tested and ready for installation!

    GenghisPhlip

  21. #19
    Quote Originally Posted by vsc View Post
    Bugged me as well. Here is a cut at the time zone issue. Note that the code is tested in the sense that it won't do anything bad, but I can't test changing time zones for real without traveling.

    To install use the prefs app and set enable to no. Copy the files into place as before and set enable to yes.

    Note that there is one new file that needs to be placed as follows,

    com.mode.tz.plist -> /Library/LaunchDaemons

    When the phone changes the time zone the daemon will relaunch and adjust the next event to occur at the proper time within the new time zone.

    Seems to work properly when I force a zone change, but as cited above I can't test it fully until I travel outside of my current time zone.

    Tell me the results.
    hey,
    sorry was busy for last 3 days, but will test today.
    thanks

    hey,
    tested. my problem is not the time zone. i want it to adjust the timer with the adjustment in clock irrespective of time zone i.e. if i set it to wake up at 5am and it is 12 pm now and I and change the time manually to 4.59am it should turn off after 1 min.
    thanks

    also what is alarm mode.
    Last edited by eternal; 2008-03-09 at 10:50 PM. Reason: Automerged Doublepost

  22. #20
    Hmm, I just noticed an interesting thing. It doesn't appear to be working at all for me. I had it set for 12-7, but I had never looked at it this late. Yesterday, I woke up at 6:55AM and looked at it, and interestingly, was not in Airplane mode. Any reason why?
    If you like or found helpful anything I have said, please click that nice little Thanks button!

Page 1 of 5 123 ... LastLast
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •