The make file “make” line to create Postfix 3.xx with extras

Just a repository.

make -f Makefile.init dynamicmaps=yes CCARGS='-DHAS_MYSQL -I/usr/local/include/mysql -DUSE_TLS -DHAS_PCRE -I/opt/local/include' 'AUXLIBS=-L/opt/local/lib -lssl -lcrypto' 'AUXLIBS_MYSQL=-L/usr/local/lib -lmysqlclient -lz -lm' 'AUXLIBS_PCRE=-L/opt/local/lib -lpcre' makefiles

Now, can I add SASL.

make -f Makefile.init dynamicmaps=yes CCARGS='-DHAS_MYSQL -I/usr/local/include/mysql -DUSE_TLS -DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovecot\" -DHAS_PCRE -I/opt/local/include' 'AUXLIBS=-L/opt/local/lib -lssl -lcrypto' 'AUXLIBS_MYSQL=-L/usr/local/lib -lmysqlclient -lz -lm' 'AUXLIBS_PCRE=-L/opt/local/lib -lpcre' makefiles

Yes – it works.
This builds Postfix 3.0.1 and 3.1 with the various options yo see in the CCARGS.

And just for good measure – this one builds it with Cyrus+Dovecot+Mysql+Pcre

make -f Makefile.init dynamicmaps=yes CCARGS='-DHAS_MYSQL -I/usr/local/include/mysql -DUSE_TLS -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/opt/local/include/sasl -DDEF_SERVER_SASL_TYPE=\"dovecot\" -DHAS_PCRE -I/opt/local/include' 'AUXLIBS=-L/opt/local/lib -lsasl2 -lssl -lcrypto' 'AUXLIBS_MYSQL=-L/usr/local/lib -lmysqlclient -lz -lm' 'AUXLIBS_PCRE=-L/opt/local/lib -lpcre' makefiles

and let me tell you – you really need to make sure these lines are exactly ASCII text. Anything else and they won’t work.
If you press [Enter] and you get an > showing. You’ve not got it right ….

This took me Days and Days and Days even to nut out.

Posted in Default Category | Leave a comment

Successfully added postfix-3.1-20150330

Well it looks like I’ve cracked it, with compiling this code.


make -f Makefile.init dynamicmaps=yes CCARGS='-DUSE_TLS -DHAS_PCRE -DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovecot\" -I/opt/local/include' AUXLIBS='-L/opt/local/lib -lssl -lcrypto' AUXLIBS_PCRE='-L/opt/local/lib -lpcre' makefiles

With help from Viktor, on the postfix mailing list. How very helpful.

I’m running the cutedgesystem’s Mailserve for Yosemite, and copied the main.cf file into /etc/postfix, which is the default postfix directory.

After a lot of experimenting over the last few days with getting the “make” right, I finally did the “sudo make upgrade” thing, and started Mailserve.. the output from mail log is now this.

This is the contents of the Mail Log at /var/log/mail.log, latest entries listed first.

The current Postfix version is 3.1-20150330
The current Dovecot version is 2.2.14
This is fetchmail release 6.3.26+SSL.

Apr 14 10:32:11 zeus.quantum-radio.net postfix/master[87514]: daemon started -- version 3.1-20150330, configuration /usr/local/cutedge/postfix/etc
Apr 14 10:32:10 zeus.quantum-radio.net postfix/postfix-script[87512]: starting the Postfix mail system
Apr 14 10:32:10 zeus.quantum-radio.net postfix[87385]: To disable backwards compatibility use "postconf compatibility_level=2" and "postfix reload"
Apr 14 10:32:10 zeus.quantum-radio.net postfix[87385]: See http://www.postfix.org/COMPATIBILITY_README.html for details
Apr 14 10:32:10 zeus.quantum-radio.net postfix[87385]: Postfix is running with backwards-compatible default settings

I’m not running fetch mail, it just shows up in the Mailserve log because it’s part of that package. But I don’t have it turned on.

Posted in Default Category | Leave a comment

Installing latest versions of Postfix(3.0.0) and Dovecot(2.1.17)

Postfix & Dovecot

I have OS X 10.10.3 on a Mac Mini.

If your installation varies, then probably so will a few other things. For example, your installed version. Check this with

robert$ postconf mail_version

It will return your currently running version. As of 11th April, 2015, the version is 3.0.0, downloadable from here http://www.postfix.org/documentation.html

I’ve done a find on anything postfix, just to check here.

robert$sudo find / -name postfix -print

/private/etc/postfix
/private/var/lib/postfix
/private/var/spool/postfix
/usr/libexec/postfix
/usr/local/cutedge/postfix
/usr/local/var/mysql/postfix
/usr/sbin/postfix
/usr/share/doc/postfix

Ok, download your postfix-3.0.0 into your Downloads directory, and unpack it there. if you DON’T want to over write your existing version of Postfix, just do the make – DO NOT DO “make install”….

Change into that directory.

zeus:~ robert$ cd Downloads/postfix-3.0.0
zeus:postfix-3.0.0 robert$ ls -l

zeus:postfix-3.0.0 robert$ make

zeus:postfix-3.0.0 robert$ sudo make install
Password:

…..

ends with this. Accept all defaults unless you REALLY know what you are doing.

….
postfix: Postfix is running with backwards-compatible default settings
postfix: See http://www.postfix.org/COMPATIBILITY_README.html for details
postfix: To disable backwards compatibility use "postconf compatibility_level=2" and "postfix reload"

Note: the following files or directories still exist but are
no longer part of Postfix:

/usr/libexec/postfix/main.cf /usr/libexec/postfix/master.cf

zeus:postfix-3.0.0 robert$

Then, when all is done, do

zeus:postfix-3.0.0 robert$ postconf mail_version

mail_version = 3.0.0

zeus:postfix-3.0.0 robert$

Next, install Dovecot. A little bit more complex, but not too bad.

============================ check existing paths ===================

zeus:~ robert$ echo $PATH
/usr/local/php5/bin:/opt/local/share/man:/opt/local/bin:/opt/local/sbin:/usr/local/mysql/bin:/usr/local/apache-maven-3.2.3/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
zeus:~ robert$

============================
Download the latest Dovecot sources – from http://dovecot.org/download.html
Go to the instructions. http://wiki2.dovecot.org
Then go to Compiling From Sources here: http://wiki2.dovecot.org/CompilingSource

These are the steps. Compiling can take a fairly long time, so don’t rush it. My Mac Mini has 16GB of RAM and a 7200rpm hdd, and and i7Processor, so it’s fairly fast, but if you have limited RAM, your waiting times may be much longer. It doesn’t matter, just be patient.

When it’s finished – check for ERRORS. There shouldn’t be any if you have the latest Yosemite installed (10.10.3 as of this build)
Now….

I’ve unpacked the sources in the download directory, into their own directory called dovecot-2.1.17 (the release I’m using now)
/Users/robert/Downloads/dovecot-2.1.17

Do the following steps

zeus:dovecot-2.1.17 robert$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
............ and so on for many pages of checking and building. With no errors, it should get to here.....
...
config.status: creating dovecot-config.in
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands

Install prefix . : /usr/local
File offsets ... : 64bit
I/O polling .... : kqueue
I/O notifys .... : kqueue
SSL ............ : yes (OpenSSL)
GSSAPI ......... : no
passdbs ........ : static passwd passwd-file pam checkpassword
: -shadow -bsdauth -sia -ldap -sql -vpopmail
userdbs ........ : static prefetch passwd passwd-file checkpassword
: -ldap -sql -vpopmail -nss
SQL drivers .... :
: -pgsql -mysql -sqlite
Full text search : squat
: -lucene -solr
zeus:dovecot-2.1.17 robert$

============================ end of configure ===========

The first “Make”

$make
...... pages and pages ....
...... finally .......
Making all in wiki
make[3]: Nothing to be done for `all'.
Making all in example-config
Making all in conf.d
make[4]: Nothing to be done for `all'.
cat ./README.in | sed "s|@exampledir@|/usr/local/share/doc/dovecot/example-config|" > README
make[3]: Nothing to be done for `all-am'.
zeus:dovecot-2.1.17 robert$

============================= end of make =================

Now, to install it. Still following the instructions…. REMEMBER to do sudo, or it WILL break.

zeus:dovecot-2.1.17 robert$ sudo make install
Password:
Making install in .
/bin/sh ./update-version.sh . .
/Applications/Xcode.app/Contents/Developer/usr/bin/make install-exec-hook
././install-sh -c -d /usr/local/lib/dovecot; \
...... lots of stuff .......
...... finally it finishes ......
make[3]: Nothing to be done for `install-exec-am'.
.././install-sh -c -d '/usr/local/share/doc/dovecot'
/usr/bin/install -c -m 644 documentation.txt securecoding.txt thread-refs.txt mkcert.sh dovecot-openssl.cnf solr-schema.xml '/usr/local/share/doc/dovecot'
zeus:dovecot-2.1.17 robert$

========================== finished sudo make install ===============

The next bit of the instructions may take some figuring out, and seems to say in the detail, that you can change these users mentioned. Use the dovecot.cf settings shown below.

You’ll need to create two users for Dovecot’s internal use:
dovenull: Used by untrusted imap-login and pop3-login processes (default_login_user setting).
dovecot: Used by slightly more trusted Dovecot processes (default_internal_user setting).
Both of them should also have their own dovenull and dovecot groups. See UserIds for more information.

This bit may or may not be tricky, but you can check if you already have such users

$dscacheutil -q group | grep dove

Don’t worry about this too much for now. If you need to actually add them, the log files will tell you.
========================================================================

Check your install went ok.

zeus:sbin robert$ dovecot –version
2.1.17
zeus:sbin robert$

If you are doing this from scratch – go now, back to http://wiki2.dovecot.org and read
Dovecot installantion
and
Dovecot configuration

OSX 10.10.3 now has a slightly different way of adding users and groups from the command line.
These steps should outline it. The command is “dscl” – so do a $man dscl or Google it.

There is some additional info in http://www.greenend.org.uk/rjk/tech/useradd.html this post, but you must replace the ‘/’ with a dot. ‘.’ Otherwise it still seems current.

GROUPS
$sudo dscl . -list /Groups | grep dovecot

In my case, it produces this, havingalready createda dovecot group.

robert$ dovecot 500

If you already have a dovecot group, it will show, otherwise – read carefully

You must pick UID and GID yourself. A command like dscl . -list /Groups PrimaryGroupID will produce a list of groups and their IDs, allowing you to avoid existing ones. UIDs above 500 will appear in the account preferences window; those below 501 will not. I don’t know where this is documented, unfortunately.

Remember to use ‘sudo’

To create a group: where GROUP is for example ‘dovecot’

dscl . -create /Groups/GROUP
dscl . -create /Groups/GROUP PrimaryGroupID GID
dscl . -create /Groups/GROUP Password \*

USERS

zeus:users robert$ sudo dscl . -create /Users/dovecot
Password:
zeus:users robert$ dscl . -read /Users/dovecot

So now you have uses and groups of dovecot and dovenull

However, my predone configuration files shown later in  different post may be all you need.
==========================================================================

Check what you have so far.

cd /usr/local/bin
zeus:bin robert$ ./doveconf -n

You should now have an operational latest version of “postfix” and “dovecot”

But they won’t run yet of their own accord.

That requires a couple of LaunchDaemons, and a fair bit of configuration of various files.

I’ll try and get that in a related post soon.

 

Posted in Default Category | Comments Off on Installing latest versions of Postfix(3.0.0) and Dovecot(2.1.17)

Setting up Postfix & Dovecot on Yosemite Part 2

Continued finally from the original, last year, where the two programs were updated from sources. Yosemite comes with postfix, so really, use that. Just need to install Dovecot.

So, to Postfix:

Everything you need first up will be found in /etc/postfix which means of course that any modification will require you to use the sudo prefix. Don’t su to root user, it’s way too dangerous.

Start with creating some necessary additions to the main.cf file, and creating some postfix databases, or db’s.

Step 1. Edit Postfix config file
Open a terminal and edit the file main.cf

sudo vi /etc/postfix/main.cf

First check Postfix is configured correctly, look for the following lines:
PLEASE NOTE:
these two lines:
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain

May or may not be necessary in your setup. IF you are experiencing this error.

(SASL authentication failed; cannot authenticate to server smtp.gmail.com[64.233.167.109]: generic failure)

then you probably do need to add these lines.

mydomain_fallback is now unused I believe.

#mydomain_fallback = localhost
mail_owner = _postfix
setgid_group = _postdrop

Now add the following lines at the very end of the file:

#Gmail SMTP
relayhost=smtp.gmail.com:587
# Enable SASL authentication in the Postfix SMTP client.
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
# Enable Transport Layer Security (TLS), i.e. SSL.
smtp_use_tls=yes
smtp_tls_security_level=encrypt
tls_random_source=dev:/dev/urandom

This is telling Postfix to use a GMAIL SMTP server with Simple Authentication and Security Layer (SASL). Which will be stored in the path “/etc/postfix/sasl_passwd“. You can use any other SMTP provider (Hotmail, Yahoo, ETC…). You only need to know the SMTP host and port. For example for hotmail you should replace the relayhost for the following:

#Hotmail SMTP
relayhost=smtp.live.com:587

Step 2. Create the sasl_passwd file
We need to create the sasl_passwd file with the SMTP credentials

sudo vi /etc/postfix/sasl_passwd

Write the following content and save:

smtp.gmail.com:587 your_address@gmail.com:password

Create the Postfix lookup table from the sasl_passwd file.

sudo postmap /etc/postfix/sasl_passwd

This will create the file sasl_passwd.db

There are other databases that need creating, but we will do those in the next edition, or as we get to them. Most notably “access”, “aliases” and “virtual”.
But hey, lets do these ones now. So we have them ready.
1. access
This file contains all of the users and domains that have access to your mail server.

# sample access file
10.0.1 OK
spammer@yahoo.com REJECT
losangelesticketlawyers.com REJECT
192.168.0 OK
robert@chalmers.com.au OK
robert@quantum-radio.net OK
station.manager@quantum-radio.net OK

again, use ‘postmap’ to create the db file. Remember, if you change the text file, rerun this command.

sudo postmap /etc/postfix/access

‘aliases’ is a slightly special case. Read the existing ‘aliases’ file before you try and modify it, and understand what it’s telling you.
For a start, run this,

$ postconf alias_maps
alias_maps = hash:/etc/aliases

Which will tell you where it’s expecting to find the aliases file.
Regardless, don’t make any changes to this file just yet, just do the database making thing.

sudo newaliases

The aliases.db will be created/recreated in /etc/postfix, alongside the aliases text file.
Now, if yo look in /etc for aliases, you should see a link to your new postfix/aliases.db

/etc/aliases -> postfix/aliases
and
/etc/aliases.db

Be careful with this one – it’s tricky.

#
# Sample aliases file. Install in the location as specified by the
# output from the command "postconf alias_maps". Typical path names
# are /etc/aliases or /etc/mail/aliases.

This means. Run “postconf alias_maps”, move your “aliases” text file to that location, and then run “newaliases” on it.

Next….

‘virtual’ tables are also another tricky beast. Read the contents of the original first… way before you make any changes to it.

# DESCRIPTION
#        The  optional  virtual(5)  alias  table rewrites recipient
#        addresses for all local, all virtual, and all remote  mail
#        destinations.   This  is unlike the aliases(5) table which
#        is used only for local(8) delivery.  Virtual  aliasing  is
#        recursive,  and  is  implemented by the Postfix cleanup(8)
#        daemon before mail is queued.

Step 3. Restart Postfix
To apply all new changes we have to restart Postfix:

sudo postfix reload

Step 4. Test it!
Let’s send a mail to our own account to be sure everything is working fine:

date | mail -s testing name@gmail.com

You can check the mail queue and the posible delivery errors using “mailq“

mailq

Other useful commands
To clear the mail queue:

sudo postsuper -d ALL

Monitoring the mail logs (Ctrl + C to exit log)

tail -f /var/log/mail.log
Posted in OSX | Comments Off on Setting up Postfix & Dovecot on Yosemite Part 2

iWS – Read Your Clientraw.txt file on your iPhone

iWS

iWS

By R.A.Chalmers

Open iTunes to buy and download apps.
Listen on your iPhone/iPod or iPad – easily, no fuss,
no advertising.

Description

iWS can quickly collect weather data from your Weather Display station clientraw.txt file, and display it in a meaningful summary. You can enter other client raw.txt locations in the settings screen, so you can watch weather almost anywhere in the world.
The design is simple, and quick to use. Enter details in the Settings screen, Save it, then go to the Home screen and tap Reload. Within moments there is your weather data.
If you are only watching your weather station, open the app and there it is. If you want to update the information, simply tap Reload. You weather data will be reloaded.
Uses minimum resources as it does not update live, and is so easy to use even kids can do it. It’s made for when you are out and about, and just need a quick look at what’s happening at your Weather Station.
As there are any number of weather stations out there using clientraw.txt files, a Google search will locate a worldwide collection-from where you can check the weather almost anywhere in the world.

What’s New in Version 3.0

Updating internal functions for newer devices.
Bug fixes. Now really designed for use on iPhone 5 and above, and iPad Retina devices. Added a database for holding clientraw.txt URL’s of a range of weather stations around the world that the user can input, making it easier to keep track of stations of interest.
Cosmetic fixes.
iPhone 4 support is retired.

Screenshots

iPhone Screenshot 1
iPhone Screenshot 2
iPhone Screenshot 3
iPhone Screenshot 4

View In iTunes

This app is designed for both iPhone and iPad
  • £0.79
  • Category: Weather
  • Updated: 14 August 2014
  • Version: 3.0
  • Size: 13.6 MB
  • Language: English
  • Developer: Robert Chalmers

Compatibility: Requires iOS 7.1 or later. Compatible with iPhone, iPad, and iPod touch. This app is optimised for iPhone 5.

Customer Ratings

We have not received enough ratings to display an average for the current version of this application.

Posted in Default Category | Comments Off on iWS – Read Your Clientraw.txt file on your iPhone

All my apps on the Apple Store

iOA Apps by RA Chalmers, of Quantum Radio are available on the Apple App Store. A widely varied collection of useful apps that can be pure fun, like Witch Hunt (formerly K’Plunk), up to iCam, a video grabbing app that is used to quickly capture raw video footage into files suitable for combining and editing. In between there is Pin Point Xtra, great for locating your exact position quickly, and reporting it to Twitter or Facebook feeds, Daytime, and app for the unfortunate situations that arise when people suffer dementia and similar problems that simply displays the Day, and the time of day.

apps

Have a look at the following, and you will be sure to find something of use and value to you. All of the apps have a small price, this keeps them advert free. No nag screens popping up all the time to annoy you,

Posted in Default Category | Comments Off on All my apps on the Apple Store

Naming of Apple Launch Images & Other Images for iOS

Naming of Apple Launch Images, Icons and other images used in iOS  Original Link

Technical Q&A QA1686

App Icons on iPad and iPhone

Q:  How are the icon files in my application bundle used on iPad and iPhone?

A: Below are guidelines for handling icon files for iPhone-only apps, iPad-only apps, and universal apps.

If you don’t provide artwork for one of the listed optional icons, the system will automatically scale one of your existing icon images to an appropriate size. It is strongly recommended that your application include artwork for all the icons listed, at the specific sizes needed.

Prior to iOS 3.2, icon images were required to follow a strict naming convention. These legacy names are still listed in the tables below along with example names for the more recent icons. Except for iTunesArtwork, icon images included in your app can have arbitrary names.

Icons for iPhone-only Apps

iPhone-only applications use the following icons. Items marked with “Required” must be included.

Table 1  iPhone-only app icon requirements.
Image Size (px) File Name Used For App Store Ad Hoc
512×512 iTunesArtwork App list in iTunes Do not include Optional but recommended
1024×1024 iTunesArtwork@2x App list in iTunes on devices with retina display Do not include Optional but recommended
120×120 Icon-60@2x.png Home screen on iPhone/iPod Touch with retina display Required Required
180×180 Icon-60@3x.png Home screen on iPhone 6 Plus Optional but recommended Optional but recommended
76×76 Icon-76.png Home screen on iPad Optional but recommended Optional but recommended
152×152 Icon-76@2x.png Home screen on iPad with retina display Optional but recommended Optional but recommended
40×40 Icon-Small-40.png Spotlight Optional but recommended Optional but recommended
80×80 Icon-Small-40@2x.png Spotlight on devices with retina display Optional but recommended Optional but recommended
120×120 Icon-Small-40@3x.png Spotlight on iPhone 6 Plus Optional but recommended Optional but recommended
29×29 Icon-Small.png Settings Recommended if you have a Settings bundle, optional otherwise Recommended if you have a Settings bundle, optional otherwise
58×58 Icon-Small@2x.png Settings on devices with retina display Recommended if you have a Settings bundle, optional otherwise Recommended if you have a Settings bundle, optional otherwise
87×87 Icon-Small@3x.png Settings on iPhone 6 Plus Recommended if you have a Settings bundle, optional otherwise Recommended if you have a Settings bundle, optional otherwise

In addition to the above icons, iPhone-only applications with a deployment target of iOS 6.1 or earlier use the following icons. Items marked with “Required” must be included if the application’s deployment target is iOS 6.1 or earlier.

Table 2  iPhone-only app icon requirements (iOS 6.1 and earlier).
Image Size (px) File Name Used For App Store Ad Hoc
57×57 Icon.png Home screen on iPhone/iPod touch (iOS 6.1 and earlier) Required Required
114×114 Icon@2x.png Home screen on iPhone/iPod Touch with retina display (iOS 6.1 and earlier) Optional but recommended Optional but recommended
72×72 Icon-72.png Home screen on iPad (iOS 6.1 and earlier) Optional but recommended Optional but recommended
144×144 Icon-72@2x.png Home screen on iPad with retina display (iOS 6.1 and earlier) Optional but recommended Optional but recommended
29×29 Icon-Small.png Spotlight on iPhone/iPod Touch (iOS 6.1 and earlier) and Settings Recommended if you have a Settings bundle, otherwise optional but recommended Recommended if you have a Settings bundle, otherwise optional but recommended
58×58 Icon-Small@2x.png Spotlight on iPhone/iPod Touch with retina display (iOS 6.1 and earlier) and Settings on devices with retina display Recommended if you have a Settings bundle, otherwise optional but recommended Recommended if you have a Settings bundle, otherwise optional but recommended
50×50 Icon-Small-50.png Spotlight on iPad (iOS 6.1 and earlier) Optional but recommended Optional but recommended
100×100 Icon-Small-50@2x.png Spotlight on iPad with retina display (iOS 6.1 and earlier) Optional but recommended Optional but recommended

You can include distinct images for the iPhone and iPad icons in categories where the required sizes are equivalent, for example, Settings.

Icons for iPad-only Apps

iPad-only applications use the following icons. Items marked with “Required” must be included.

Table 3  iPad-only app icon requirements.
Image Size (px) File Name Used For App Store Ad Hoc
512×512 iTunesArtwork Ad Hoc iTunes Do not include Optional but recommended
1024×1024 iTunesArtwork@2x Ad Hoc iTunes on devices with retina display Do not include Optional but recommended
76×76 Icon-76.png Home screen on iPad Required Required
152×152 Icon-76@2x.png Home screen on iPad with retina display Optional but recommended Optional but recommended
40×40 Icon-Small-40.png Spotlight on iPad Optional but recommended Optional but recommended
80×80 Icon-Small-40@2x.png Spotlight on iPad with retina display Optional but recommended Optional but recommended
29×29 Icon-Small.png Settings on iPad Recommended if you have a Settings bundle, otherwise optional but recommended Recommended if you have a Settings bundle, otherwise optional but recommended
58×58 Icon-Small@2x.png Settings on iPad with retina display Recommended if you have a Settings bundle, otherwise optional but recommended Recommended if you have a Settings bundle, otherwise optional but recommended

In addition to the above icons, iPad-only applications with a deployment target of iOS 6.1 or earlier use the following icons. Items marked with “Required” must be included if the application’s deployment target is iOS 6.1 or earlier.

Table 4  iPad-only app icon requirements (iOS 6.1 and earlier).
Image Size (px) File Name Used For App Store Ad Hoc
72×72 Icon-72.png Home screen on iPad (iOS 6.1 and earlier) Required Required
144×144 Icon-72@2x.png Home screen on iPad with retina display (iOS 6.1 and earlier) Optional but recommended Optional but recommended
50×50 Icon-Small-50.png Spotlight on iPad (iOS 6.1 and earlier) Optional but recommended Optional but recommended
100×100 Icon-Small-50@2x.png Spotlight on iPad with retina display (iOS 6.1 and earlier) Optional but recommended Optional but recommended

Icons for Universal Apps

Universal applications use the following icons. Items marked with “Required” must be included.

Table 5  Universal app icon requirements.
Image Size (px) File Name Used For App Store Ad Hoc
512×512 iTunesArtwork App list in iTunes Do not include Optional but recommended
1024×1024 iTunesArtwork@2x App list in iTunes for devices with retina display Do not include Optional but recommended
120×120 Icon-60@2x.png Home screen on iPhone/iPod Touch with retina display Required Required
180×180 Icon-60@3x.png Home screen on iPhone 6 Plus Optional but recommended Optional but recommended
76×76 Icon-76.png Home screen on iPad Required Required
152×152 Icon-76@2x.png Home screen on iPad with retina display Optional but recommended Optional but recommended
40×40 Icon-Small-40.png Spotlight Optional but recommended Optional but recommended
80×80 Icon-Small-40@2x.png Spotlight on devices with retina display Optional but recommended Optional but recommended
120×120 Icon-Small-40@3x.png Spotlight on iPhone 6 Plus Optional but recommended Optional but recommended
29×29 Icon-Small.png Settings Recommended if you have a Settings bundle, optional otherwise Recommended if you have a Settings bundle, optional otherwise
58×58 Icon-Small@2x.png Settings on devices with retina display Recommended if you have a Settings bundle, optional otherwise Recommended if you have a Settings bundle, optional otherwise
87×87 Icon-Small@2x.png Settings on iPhone 6 Plus Recommended if you have a Settings bundle, optional otherwise Recommended if you have a Settings bundle, optional otherwise

In addition to the above icons, universal applications with a deployment target of iOS 6.1 or earlier use the following icons. Items marked with “Required” must be included if the application’s deployment target is iOS 6.1 or earlier.

Table 6  Universal app icon requirements (iOS 6.1 and earlier).
Image Size (px) File Name Used For App Store Ad Hoc
57×57 Icon.png Home screen on iPhone/iPod touch (iOS 6.1 and earlier) Required Required
114×114 Icon@2x.png Home screen on iPhone/iPod Touch with retina display (iOS 6.1 and earlier) Optional but recommended Optional but recommended
72×72 Icon-72.png Home screen on iPad (iOS 6.1 and earlier) Required Required
144×144 Icon-72@2x.png Home screen on iPad with retina display (iOS 6.1 and earlier) Optional but recommended Optional but recommended
29×29 Icon-Small.png Spotlight on iPhone/iPod Touch (iOS 6.1 and earlier) and Settings Recommended if you have a Settings bundle, otherwise optional but recommended Recommended if you have a Settings bundle, otherwise optional but recommended
58×58 Icon-Small@2x.png Spotlight on iPhone/iPod Touch with retina display (iOS 6.1 and earlier) and Settings on devices with retina display Recommended if you have a Settings bundle, otherwise optional but recommended Recommended if you have a Settings bundle, otherwise optional but recommended
50×50 Icon-Small-50.png Spotlight on iPad (iOS 6.1 and earlier) Optional but recommended Optional but recommended
100×100 Icon-Small-50@2x.png Spotlight on iPad with retina display (iOS 6.1 and earlier) Optional but recommended Optional but recommended

You can include distinct images for the iPhone and iPad icons in categories where the required sizes are equivalent, for example, Settings.

Adding Icons to Your App

Asset catalogs are the preferred way to manage your application’s icons. New projects are configured to use asset catalogs by default. Migrating an App Icon Set or Launch Image Set in the Asset Catalog Help describes how to migrate an existing project to use asset catalogs. If your application must support iOS 4.3, or you prefer not to use asset catalogs, you can manually configure your application’s icons by editing the information property list for your application. See Configuring Icons Without an Asset Catalog.

Adding Icon Images to an Asset Catalog

  1. Select the asset catalog in the project navigator. It is named Images.xcassets by default.
  2. From the left column of the editor, select the icon set. For new or migrated projects it will be named ‘AppIcon’. You may need to create an icon set by clicking the (+) button in the bottom left of the editor and choosing ‘New App Icon’ from the context menu.

Figure 1  The AppIcon set selected in the asset catalog.

The set will only contain image wells for icons that are relevant depending upon your project’s configuration at the time the asset catalog was created. If an image well is missing, expand the settings inspector and check the appropriate boxes under the App Icon pane depending upon your project’s deployment target and supported devices.


Figure 2  Enable the necessary image wells under the App Icon pane of the settings inspector.

  1. Drag images from the Finder onto each image well to configure the associated icon.

Figure 3  Complete icon set for a universal app with a deployment target less than iOS 7.0

Asset catalogs create a copy of images added to them. If you had previously added the images as resources to your project you can safely remove them.

  1. Configure your app to use the new icon set.
    1. Select the name of the project in the project navigator.
    2. Select the name of your app from the list in the left column of the project editor.
    3. Select the General tab at the top of the project editor.
    4. Choose your icon set from the App Icons Source popup menu under the App Icons And Launch Images pane.

Figure 4  Configure the icon set for your app’s target.

Configuring Icons Without an Asset Catalog

  1. Follow the steps in the Xcode Project Navigator Help to add each icon image to your project as a resource.
  2. Locate your application’s information property list in the Xcode File Navigator. By default it will be named <ProductName>-Info.plist, where <ProductName> is the name of your application. Right click it and choose Open As > Source Code.
  3. The final step varies depending upon whether your app must support iOS 4.3.

If your application supports iOS 4.3 you must include the CFBundleIconFiles key to specify your application’s icon images. The value for this key is an array of strings, each identifying an image in the bundle. If you have included images for the iPad-specific icons, you may either list them under the CFBundleIconFiles key, or you can list them under the device specific CFBundleIconFiles~ipad key. iPad-only applications should list their icon images under the CFBundleIconFiles key.

Listing 1  Example configuration for a universal app with deployment target of iOS 4.3.

<key>CFBundleIconFiles</key>
<array>
    <string>Icon-Small</string>
    <string>Icon-Small-40</string>
    <string>Icon-Small-50</string>
    <string>Icon</string>
    <string>Icon-60</string>
    <string>Icon-72</string>
</array>
<key>CFBundleIconFiles~ipad</key>
<array>
    <string>Icon-Small</string>
    <string>Icon-Small-40</string>
    <string>Icon-Small-50</string>
    <string>Icon-72</string>
    <string>Icon-76</string>
</array>

If your application supports iOS 5.0 or above, you should include the CFBundleIcons key to specify your application’s icon images. The value for this key is a dictionary with two child keys: CFBundlePrimaryIcon and UINewsstandIcon. The UINewsstandIcon key is for newsstand apps and can otherwise be omitted. The value for the CFBundlePrimaryIcon key is a dictionary that identifies the icon images associated with the app bundle. It may contain two child keys: CFBundleIconFiles and UIPrerenderedIcon. The value for the UIPrerenderedIcon key is a boolean that specifies whether your icon files already incorporates a shine effect. The value for CFBundleIconFiles key is an array of strings, each identifying an image in the bundle.

Listing 2  Example configuration for a universal app with deployment target of iOS 5.0 or greater.

<key>CFBundleIcons</key>
<dict>
    <key>CFBundlePrimaryIcon</key>
    <dict>
        <key>CFBundleIconFiles</key>
        <array>
            <string>Icon-Small</string>
            <string>Icon-Small-40</string>
            <string>Icon-Small-50</string>
            <string>Icon</string>
            <string>Icon-60</string>
            <string>Icon-72</string>
        </array>
    </dict>
</dict>
<key>CFBundleIcons~ipad</key>
<dict>
    <key>CFBundlePrimaryIcon</key>
    <dict>
        <key>CFBundleIconFiles</key>
        <array>
            <string>Icon-Small</string>
            <string>Icon-Small-40</string>
            <string>Icon-Small-50</string>
            <string>Icon-72</string>
            <string>Icon-76</string>
        </array>
    </dict>
</dict>

Troubleshooting

This section describes common problems and how to fix them.

My application fails to validate

There are multiple icon-related problems that will result in your application failing validation by Xcode or iTunes Connect. The underlying issue depends upon the error.

Error: Invalid Image Path

Your application’s information property list references one or more icon images that were not included in the compiled bundle.

If your application is using asset catalogs to manage its icons then the information property list should not include any icon related keys; they will be added at build time by the asset catalog compiler.

  1. Open the information property list for your app’s target. It can be found under the Info tab in the project editor or in the File Navigator where it will be named either <ProductName>-Info.plist or Info.plist, where <ProductName> is the name of your app.
  2. Remove the following keys, including device specific variations.
    • “Icon file” (CFBundleIconFile)
    • “Icon files” (CFBundleIconFiles)
    • CFBundleIcons

If your application is not using asset catalogs to manage its icons, one or more of the images listed under the CFBundleIconFiles key or the CFBundleIcons key in the information property list is not associated as a resource of your application, may not have been added to your project, or may have been accidentally removed from your project. Verify that all the images named by either of these keys is included in your project then follow the resolution steps listed under My icons don’t appear on the device to verify that it is associated with your application.

Error: Missing required icon file

Your have not included artwork for one or more of the required icons, based on your app’s supported devices and deployment target.

Refer to the tables above for the list of required icons. Verify that each of your icon images matches the size listed in the table.

If your application is not using asset catalogs to manage its icons, verify that all of your icon images are listed under the CFBundleIconFiles key or the CFBundleIcons key as described in Configuring Icons Without an Asset Catalog. Remember that if you include filename extensions in the Information Property List, you must specify all image files (including the high-resolution variants) explicitly.

My icons don’t appear on the device

If your project is using asset catalogs, your application may not be configured to use the correct icon set.

  1. Select the name of the project in the project navigator.
  2. Select the name of a target from the list in the left column of the project editor.
  3. Select the General tab at the top of the project editor.
  4. Verify that the name of the app icon set is selected in the Source menu under the App Icons section, as shown in Figure 5.

Figure 5  The Source menu controls which icon set is used as the app icon set.

If your project is not using asset catalogs to manage its icons, one or more of your icon images may not be associated with your app’s target.

  1. Select each of your icon images in the project navigator.
  2. In the utility panel, check the box next to your app’s target under the Target Membership pane as shown in Figure 6.

Figure 6  Associating an icon with a build target

Verify that your icon images use a supported color model. Images that do not use the RGB color model may appear correctly in Xcode but will fail to load on the device. If your icons include transparent areas, use your preferred graphics editing software to fill these areas with a solid color.

Some graphics software may produce images which load correctly in Xcode but fail to load on the device, resulting in a blank icon. Try exporting your icon images with a different graphics editor such as the built in Preview app.

A previous version of my icon appears on the device

Your testing device or simulator may have a partially outdated build. That is, Xcode failed to copy a modified resource to the app bundle it installed on the device as part of the build & run process. To force Xcode to copy the most recent resources from your project directory:

  1. Remove the app from your testing device or simulator.
  2. Clean the build directory. Hold down the Option key and choose Product > Clean Build Folder, then Product > Build from the Xcode menu bar
  3. Build and run your app.

If your project is using asset catalogs then you must replace the modified image in the asset catalog. Asset catalogs do not track files on disk, opting instead to make a copy of the image at the time it is added to the asset catalog.

My icon has a black background in the App Store

The Large App Icon you uploaded to iTunes Connect includes transparent areas. The iTunes Connect Developer Guide lists the complete requirements for the Large App Icon, including that it must be opaque.

You can use the Preview app to check your image for transparent areas, which will appear dark grey as shown in Figure 7. Use your preferred graphics editing software to fill in the transparent areas with the desired background color.


Figure 7  Preview’s dark grey canvas background is visible through transparent areas in an image.

The wrong icon appears in the App Store

Your application bundle includes additional images which are being detected as valid icon images.

You may encounter this issue if your icon images deviate from the naming convention shown in the above tables. If your application bundle also contains once or more images that match the naming convention in the tables above, these images may be detected as valid icon images by the App Store. This may occur regardless of whether those images are included in the asset catalog or are referenced by the application’s Information Property List. The solution is to rename or remove the images.

You may encounter this issue when building an app using a third party development environment or if your project was created using a template project provided by a third party. Both will usually include a default set of icon images. If you fail to remove these images or replace all of them with your own artwork, the App Store may display them in the search results for your app. Like the iOS home screen, the icons displayed in the search results depend upon the current device. It is possible that the incorrect icon is shown in the search results on certain devices but not others.

The solution is to delete any instances of the template-provided icons that remain in your project and remove any references to the deleted files from the information property list. Due to the wide variety of ways in which iOS versions have allowed developers to specify app icons in the Information Property List, you may find it simpler and less error prone to remove all icon related keys from the Information Property List and then reconfigure your app’s icons using the steps presented in Adding Icons to Your App. See Start Over.

Start Over

If the none of the above solutions resolve the problem, follow the steps below to remove all the icons and icon related configuration from your app. Then follow the steps in Adding Icons to Your App to re-configure the proper icons for your app.

Remove the Icon Set From Your Asset Catalog

  1. Select the asset catalog in the project navigator. It is named Images.xcassets by default.
  2. In the left column of the editor, control click the icon set and choose Remove Selected Items from the context menu. By default the icon set will be named ‘AppIcon’.

Remove Icon Images From Your Project

Using the Xcode file navigator, remove any icon images from your project your had previously added to your project as resources. Icon images usually have a file name beginning with ‘Icon’ or ‘AppIcon’.

Remove Icon Related Keys From The Information Property List

  1. Open the Information Property List for your application. It can be found under the Info tab in the project editor or in the navigator where it will be named either YourApp-Info.plist or Info.plist.
  2. Remove the following keys, including device specific variations.
    • “Icon file” (CFBundleIconFile)
    • “Icon files” (CFBundleIconFiles)
    • CFBundleIcons

Clean The Project

To remove any cached icons, clean your target. Choose Product > Clean from the menu bar.

Finally, follow the steps in Adding Icons to Your App to re-configure the proper icons for your app.

Additional Resources

For additional information, see the App Icons section in the iOS App Programming Guide.

For information about designing your application’s icons, see the App Icon section of the iOS Human Interface Guidelines.

For an example project with properly configured icons, see the Application Icons and Launch Images for iOS sample code.


Document Revision History

Date Notes
2014-12-01 Added iPhone 6 Plus icons. Further expanded the troubleshooting section.
Added iPhone 6 Plus icons. Further expanded the troubleshooting section.
Added iPhone 6 Plus icons. Further expanded the troubleshooting section.
2014-05-19 Added troubleshooting steps for incorrect icons appearing in the App Store search results.
2014-02-03 Updated for Xcode 5 and iOS 7.
2013-07-18 Added icon information for iPad with retina display.
2011-07-14 After iOS 4.3, order doesn’t matter in the icon arrangement. Added links to related references.
2010-07-14 Fixed outdated “Add Icon files in Info.plist” section.
2010-07-12 Updated for iOS 4 requirements.
2010-04-09 New document that explains how the icon files in an application bundle are used on iPad and iPhone.
Feedback
Posted in iOS, OSX | Comments Off on Naming of Apple Launch Images & Other Images for iOS

How to run IRC – ngIRCd on your Yosemite/Mac/OSX computer

It’s pretty simple really as it turns out.

Download the code from Here This is a page that contains the OS X versions, installed with Homebrew, MacPorts and another I’m not familiar with. You could build it yourself, but why bother ?

Install it, and in the case of HomeBrew, the config file is in /usr/local/etc – it’s default location.

Just run it as the user you are logged in as, that’s fine. In my case “robert” – and test it with your favourite irc client. Colloquy is good. It’s in the app store, and runs on OS X and on iOS, so you can check your irc while out and about.

you might want to also add the path to the binary to your bash_profile – /usr/local/sbin in the case of home-brew

If you want it to  start automatically on your OSX box, put this plist file in your local LaunchAgents folder

/Users//Library/LaunchAgents

I called it org.irc.plist – no mistakes there then. Now when you start your Mac, assuming you are the main user, it will automatically start irc.

My irc server is at ‘irc.shanghaitimes.uk’ and my usual channel is #Authors. See you there?


zeus:LaunchAgents robert$ cat org.irc.plist

---------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.irc.plist</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/sbin/ngircd</string>
</array>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
----------------------------

zeus:LaunchAgents robert$ pwd
/Users/robert/Library/LaunchAgents
zeus:LaunchAgents robert$

To manually start it, if you haven’t already, do this.
launchctl load Library/LaunchAgents/org.irc.plist

Don’t forget to allow the port 6667 through your router if you have to do port forwarding.

Posted in OSX | Comments Off on How to run IRC – ngIRCd on your Yosemite/Mac/OSX computer

Live video streaming on Weather Display software

I have to write this down so I remember it.

On the Weather Display software, WD, I can not only now record a snapshot of the outside with my WebCam, with the webcamcapture.exe program that is part of WD, I can stream alive stream that can be read fairly easily with most video players that understand the mms:// type stream.

On the Mac Mini I have, I installed Flip4Mac 3.3.3.1, costing £3.99 and entered the address – and it worked. Amazing.

Small picture just like I want, and it sits there on my screen, very minimum bandwidth.

The setup in WD is east, has it’s own section. So set up capturing of your static j[g image for the website and underground etc, then select the next Tab, for Network Streaming, and forget the ASF stuff, unless of course you want it, just enable

. direct network streaming and save it. Click on the View able just next to that item, and wait a moment. If you have RealPlayer, or maybe even Windows Media Player installed it will pop up. you can then exit that. BUT give it time to load the stream. About half a minute it took first time…

Of course you will have to let it through your firewall and router. I used the Openmeetings port 5080, which I no longer use.

 

Posted in Weather | Comments Off on Live video streaming on Weather Display software

The Great Mac Clone and Restore Saga

Well, not really. Just sounds interesting…

I’ve used both Superduper! and Carbon Copy Clone recently. Both excellent programs. The Carbon Copy Clone looks a little less ‘geeky’ than SuperDuper!, but maybe that’s just me.

Both make first class backup and cloning packages. SuperDuper! though might have a couple of little tricks that make it slightly less – reliable? More on that later.

Carbon Copy Clone allows you to also make a clone – on the same backup disk, of the RecoveryPartition from your Mac.

When restoring from a clone – first things first. This next bit is copied from another site. But it’s as simple as.

Restore Your Mac Using A Cloned Backup

NOTE: Article on cloning.

  1. Boot from your Cloned backup. Usually the easiest way to do this is restart and hold down the Option key and then choose your cloned backup from the Startup Manager.
  2. Go to your cloned backup > Applications > Utilities > Disk Utility.
  3. Erase the disk/volume/partition that you wish to restore your clone to.
  4. Clone your backup to the original disk.

 

Why did I have to begin this exploration? My almost new Mac Mini is showing I/O errors on the disk. Usually these are sector/block errors, and SMART technology will move them out of the way – BUT – only when you write to disk. Reading does not change them. If you have LOTS of i/o errors, easy to clone -> erase -> restore.

But it takes ages and ages …. so beware.

 

Posted in OSX | Comments Off on The Great Mac Clone and Restore Saga