Modern Login Items: Gotcha

Cory Bohon of MartianCraft recently posted a blog article the current state of creating Login Items for your Mac Apps entitled Modern Login Items.

This is a great article to show you how to go about adding the login helper app to your main Mac app.

There was one big thing missing from Cory’s article though, which can cause serious headaches and app rejections (I was dealing with this just a couple weeks ago).

When you create your Login Helper App you create a Bundle ID for the helper app (usually something based off of main apps Bundle ID, but in reality it doesn’t have to be) and this Bundle ID is different then the Bundle ID for your main app (duh)

20150122_login-items_xcode6-01

The key to everything is that you need to create a separate App ID for the Login Helper App within the Developer Portal, and make sure to leave off all the extra Entitlement options, as they are not needed for a Login Helper App.

Screen Shot 2015-01-24 at 10.40.27 AM

Now you may have added a Login Helper App and not created a separate App ID and been fine. From the sounds of it, Cory is in this boat.
The reason this works is that you have a Wildcard App ID and this Wildcard is picking up the duties of the Helper App.

Here is where I ran into trouble…

Here is my Wildcard App ID:

Screen Shot 2015-01-24 at 10.46.55 AM

See that?

Maps is turned on.
And thats a problem because my Mac app doesn’t use Maps.
So when the Login Helper App would then start using an App ID that has Maps enabled, my app would get rejected under section:

2.31: Apps that are not sandboxed appropriately may be rejected

So while you may be able to get away with not creating a separate App ID for awhile, it can bite you in the butt, and when it does it is a major PITA to debug. You are much better off to just create a separate App ID for your Login Helper App.

Happy Coding!

BlackBerry CEO Wants FCC to Make Developing BlackBerry Apps Mandatory

BlackBerry CEO John Chen, thinks it’s unfair that Apple’s and Android’s App Stores have all the apps. In fact, he thinks it is so “discriminatory” that he wants legislators to widen the definition of net neutrality to include “application neutrality.”

Therefore if a company makes an app for iOS and Android, they must also make a version for BlackBerry and all other operating systems.

TechCrunch

In other words, if a company makes an app for iOS and Android, they must also make a version for BlackBerry and all other operating systems.

In a blog post on BlackBerry’s site that was adapted from a letter Chen sent to several members of Congress, Chen wrote “all wireless broadband customers must have the ability to access any lawful applications and content they choose, and applications/content providers must be prohibited from discriminating based on the customer’s mobile operating system.”



This is the biggest load of crock that I have ever heard!

This would do the opposite of creating more apps, and would actually cause ALL platforms to have less apps, and the apps that those platforms do get won’t be as good.

Let me explain why.

While yes this would cause platforms like Blackberry to finally get apps like Netflix, the requirement to create a version for EVERY OS is not something that a lot of companies will be willing to do so they simply won’t build an app, or the small business running from the sales of an app or two won’t be able to afford the requirement of creating a version for every OS, even if they already have an iOS and Android version, and will then be forced to go out of business.

The companies that do manage to be able to stay open, will be a lot more strapped for time and resources as they are having to create so many versions, it’s inevitable that the quality of the products will decline.

So here is my recommendation to BlackBerry’s CEO John Chen; Make something that isn’t shit and we will write apps for it without you making the government force us to.

Barrett-Jackson Scottsdale 2015

This past week was the 2015 Barrett-Jackson Collector Car Auction in Scottsdale, AZ.

During the 10-day auction, Barrett-Jackson recorded more than $130 million in sales of 1,611 vehicles (unaudited) and a world-record $6.55 million in automobilia sales (unaudited), making it the highest sales result to date.

Saturday also marked the auctioning off of some pretty amazing cars, two in particular…

TheMustangNews_2015-Jan-18

1966 Shelby 427 Cobra Super Snake

This is 1 of 2 1966 Shelby 427 Cobra Super Snakes that were built (and the only one still in existence).
This Super Snake was personally owned by Carroll Shelby.
The other was owned by Bill Cosby and was the subject of his skit “200 MPH”.

On Saturday, the Cobra Super Snake rolled off the auction stage after stalling at $4,700,000 for a long period of time and not meeting the reserve set on the car. It was later reported as sold for $5,115,000.
They made a deal.



15-barrettjackson-3

2016 Shelby Mustang GT350R

This is the first 2016 Shelby GT350R which was auctioned off for charity.
It sold for a price of $1,000,000 with and additional $150,000 thrown in for charitable contributions.



Pictures from the auction



2014 Shelby Mustang GT500 Super Snake Idle and Rev

2015 Shelby GT Exhaust Note and Rev

First 2016 Shelby Mustang GT350R (Amazing Sound)

Shelby Cobra 427 S/C -CSX 4000/CSX 4254 Idle and Rev

Dodge Challenger SRT Hellcat’s Drag Racing

New Mustangs!

It has been an crazy time for Mustang announcements! At the L.A. Auto Show we got the 2016 Ford Mustang Shelby GT350. Then at the Detroit Auto Show we were treated to the 2016 Ford Mustang Shelby GT350R. The GT350R is the Track version of the GT350, and comes with 19-inch carbon fiber wheels shod … Continue reading

Why Skeuomorphism is Like a Classic Car

Neven Mrgan in a short video for App: The Human Story

The analogy that’s most helpful for me when it comes to skeuomorphism vs flat UI is cars, and how 1940s, and 50s, and some 60s cars had beautiful chrome.
They had control panels that were way over-designed.
Everything had borders on it.
Every button had to look like it came off of a spaceship, even if it was just a button that you push.
They had tailfins which served no purpose, really, lights that were overdone.
Everything on that car is over-engineered in some sense.
And so often, people design like “Oh, why doesn’t the car look like this?”
You could, or some would say you should make a much simpler car.
And, sometimes those are sort of stunning objects in their simplicity.
But people wouldn’t have fallen in love with cars in the 40s if cars had immediately looked like that.

and…

Software had the same thing, where we were designing things that- I don’t think it mattered so much that they looked realistic, or that they looked lickable or whatever.
I think what mattered was that they looked rich.
They looked like a lot of work had been put into them.

That is what people latch on to.
It seems like it’s something that, yes, they should have spent money on, and they should be spending time on right now.
Part of Apple’s reasoning, probably, for going totally flat, is that “Oh, well people don’t need that anymore.”
And that’s true in some sense.
However, you end up with 1970s and 80s boxy cars.
And you end up with some designs that are sort of stunning in their minimalism, but they’re not necessarily as friendly any more.
And when they age, they will age in a way that’s going to go “Oh yeah. That’s when we went simple with things.”
Rather than like “Isn’t this incredible?”

Neven nailed it right on the head!

Installing Running Pony Emblems on a 2013 Mustang V6 – How-to

First off, I purchased these from http://www.partscheap.com

My Mustang didn’t come with any side emblems so I had to remove the 2 pins that are used for alignment from dealer installed emblems.

I used a pair of heavy duty scissors to cut them off as low as I could.
However the prongs were still higher then the rest of the emblem which if you were to use it would not get a good enough seal, plus it would look bad.

I grabbed some sand paper (~200 grit) and them just sanded down the pegs until they were flush with the rest of the emblem.

I then used transfer paper (I got mine from a hobby store), taped the paper to the entire fender area (use a tape that wont hurt the car. I use painting tape) Then take your measurements (I suggest doing this with a cloth type measuring tape (the type used to make measurements of people for cloths) as a regular measuring tap is likely to scratch your paint.

The correct measurements are 3 1/2″ down from the curve in the fender, and left from the end of the fender for the tire area.

Use a pencil to mark this spot on the transfer paper. Then make each line longer on the paper, making sure that the line stays level (use a level).

Now carefully take off the transfer paper.
There will be a bunch of flakey junk and lines on your car, but don’t worry.

Take 2 more pieces of tape and but the tape directly on the car, and exactly on your lines.

Use rubbing alcohol on a soft material that wont scratch the car. Wipe the area clean of any debris and wax.

Take off the back covering on the emblem and hold the sides of the emblem to do this, and for the rest.

SLOWLY line up the emblem with the tape you marked.
Get as close to the car without touching it or where a little jolt would connect it.
As you are lining up the emblem be sure the entire thing is level with the tape.

Finally when you are satisfied with the position, slow press the emblem onto the car.

I hope you got your position right….

Press in all over the emblem to make sure it has a good connection.

Finally remove the tape, and use the rubbing alcohol to clean around the emblem to remove the tracing paper lines, and any residue left over from the tracing paper.

Now its the really hard part.
Sit back and wait!
Try not to drive for 24 hours, or at least make it slow and easy.
Do not get the car wet for at least 24 hours.

So get a chair and a Coke and stare at your handy work.

iOS DFU Mode

Wow, this post is 1-day shy of being 1 year from the last post.
Sorry about that…

I just put together instructions for someone about going into and using DFU mode on an iOS device, so I thought I would post it here as well.

—–

DFU (Device Firmware Upgrade) mode is a low level mode that 99% of users should/will never know about or need, however there are cases where it can be an invaluable debugging resource.

There are a couple of scenarios where you might find this mode helpful, for example:

If the iPhone/iPad gets stuck in a reboot sequence (constantly reboots), simply enter DFU mode and then rebooting can often fix this.
Another time would might want to use DFU mode is if you are having issues with upgrading the firmware on a device.
DFU mode can give you the ability to have more control over the firmware process, however it does take more work.

Entering DFU mode can sometimes be tricky, especially if you are new to doing it.
Don’t worry if you don’t get it right, it won’t break anything.
Just wait for the device to finish starting up normally and then try again.

Below I will give instructions on how to enter DFU mode, and then below that I will include the process to “fix” the two scenarios I listed above.

DFU Mode Instructions
——–

1. Plug the iPad into your computer
2. Launch iTunes
3. Hold down the Power button and the Home button at the same time
4. Keep holding both of these buttons for 10 seconds (Your device will restart during this process, which is what it should do, but don’t release the buttons)
5. After 10 seconds pass, release the Power button but continue to hold the Home button for another 3-5 seconds
When in DFU mode, your device’s screen will stay completely black.
If you see an Apple logo or the device boots normally, you did not enter DFU mode successfully.
6. iTunes will notify you that it has detected a device in recovery mode.
Press ok.

You are now in DFU mode!

If you are trying to get out of the continual rebooting sequence, then at this point, hold the power and home buttons down again at the same time.
However this time, release both buttons as soon as the device reboots.
Your device should then boot normally.

If you are trying to fix an upgrade issue, you will need to complete a few more steps.

To continue you will need the firmware package that you are trying to update too.
There are two ways to get this firmware.

If iTunes has asked you if you want to download the update, but then you have not installed it, or have tried installing and run into issues, then the file should hopefully already be on your computer.

You will need to open a new Finder window and then press Command-Shift-G
This will bring up a little window where you can enter the folder you want to go to.
You will need to enter: ~/Library/iTunes and then press Go.
In this folder you will see several files and folders, but the ones you are interested in is one of two folders.
Either: “iPhone Software Updates” or “iPad Software Updates”
If you go into that folder you will hopefully see a file.
If you do not see a file, then you will need to follow the steps below to download the firmware.
If there is a file, check the name of the file(s) to make sure it is what you are wanting.
(Most likely there will only be 1 file and it will be correct, but it doesn’t hurt checking)

You are now ready to do the upgrade, and will want to skip this next section about downloading the firmware.

If your updates folder was empty or you are wanting a specific firmware then you will need to visit:
http://www.felixbruns.de/iPod/firmware/

Find the firmware version you are looking for either by using the direct links to the latest versions around the bottom of the page, or by using the drop down menu for the iPhone/iPad devices.
Pay special attention to which firmware you are downloading.
You must download the appropriate firmware for your device.
The main things to look for when choosing your firmware, are the version numbers, the device type (iPhone/iPad/iPad Mini), and if your device is WiFi only, or WiFi and Cellular/3G.
If your device is WiFi and Cellular then you must download the WiFi and Cellular firmware even if you do not use the Cellular functionality.
As well as above, if your device is WiFi and Cellular then you must download the correct firmware for the Carrier that your device is setup for.
The choices here are GSM or CDMA.
AT&T (and T-mobile if they get the iPhone at some point) is GSM and everything else is CDMA.

So for example if I have an iPad 3 with WiFi and Cellular with AT&T and want version 6.0.1, I would choose:
iPad 3 (Wi-Fi + Cellular, GSM) 6.0.1

Download this file.
(Depending on your browser you might need to do ‘Download File As’ if you are using one of the links)

At this point, no matter which process you went through above, you should have the firmware package you are wanting to upgrade to.
Now we will go back to iTunes, which should still be telling us that our device is in “Restore Mode” (really it is in DFU mode from the first steps we took)
iTunes should show a button called: Restore iPhone… (or iPad, etc)
If you were to click this button iTunes will simply try the install again, however for our purposes we want to Option-Click on the Restore iPhone (or iPad, etc) button.
This should bring up a standard Mac ‘Open’ window, where you need to find and select the firmware file we found or downloaded before.
Once you have found the file, select it, and press ‘Open’.

iTunes should now try and install the firmware you selected.

Please note that this is not a end-all-be-all solution.
There are times where this process will not work, for any number of reasons, however this process can be very helpful at times.

I Hope this helps.

Posted in Apple, iOS, iPhone

Tags: ,

Permalink 1 Comment

Manually Creating Universal Binaries for iOS

Universal Binaries are a wonderful thing, and not just if you are still writing Mac Power PC code, they are just as useful in the iOS development world.

If you do any amount of iOS development, chances are you have used (in one way or another) a static library.
Usually when you use a static library you get (or compile) 2 versions.
One for the device, and one for the simulator.

This is fine until you want to add the library to your app.
If you are using the simulator and the device for testing you have to play a swapping game with the corresponding library version.

Wouldn’t it be easier if you could just have 1 version of the library and it worked on the device or the simulator without you having to make any changes?
Sounds nice? I would say so, and luckily it is pretty easy.

The first thing you need to do is open a Terminal window (don’t worry, its just 1 command)

Use the following command (replacing the library path and name, with your libraries information):

lipo -output <StaticLibraryUniversal>.a -create <StaticLibraryDevice>.a -arch i386 <StaticLibrarySimulator>.a

Thats it!

Just use the new static library file in your project and you can move between the device and the simulator without worry about anything!

Have fun.

Shame On Utah School Districts

Recently there was a new state law (HB218) that was passed, part of which stated that Club sports would be allowed to use the school’s facilities (such as the Football fields, etc)

This was GREAT to hear as Lacrosse in Utah is still only a club sport, and has never been given any love by the different School Districts in Utah. I hated this as a High School player. We weren’t allowed to use the school’s fields, and we had no support from the schools. Basically we were just able to use the School’s name and that was it.

Unfortunately the Utah School Districts have found a loophole in the new law to ‘keep us away’.
The schools are saying we can use the field, but that we have to pay an exorbitant amount of money to step foot on the fields.

Davis School District is charging $1,000 PER USE!
That would be $1,000 for each practice and game.

Alpine School District wants $300 PER USE!

Obviously this is not possible for club sports.

I say SHAME on all of Utah’s School Districts!

Not all kids want to play Football, Basketball, Baseball, or Soccer.
To take the ability for the kids who decide to play other sports the right of at least playing AT THIER school, is just SAD!
These kids get no support from their schools, no recognition of their wins, and can’t even play at their schools.

The fact that the school districts are using a loophole in the new law to keep the kids away, is even more disgusting.

It makes me MAD at the school districts, and sad for the boys and girls.

If you feel the same way, I strongly suggest that you let your school district know.

Jordan School District: Patrice Johnson (Superintendent of Schools) – 801-567-8323 – superintendent@jordan.k12.ut.us
Alpine School District: Vern Henshaw (Superintendent of Schools) – (801) 610-8420 – vhenshaw@alpinedistrict.org
Davis School District: Dr. W. Bryan Bowles (Superintendent of Schools) – (801) 402-5258 – bbowles@dsdmail.net
Granite School District: Martin W. Bates (Superintendent of Schools) – (385) 646-4523 – mwbates@graniteschools.org
Salt Lake City School District: Dr. McKell Withers (Superintendent of Schools) – (801) 578-8351 – mckell.withers@slcschools.org

Your district not listed above? Find your district at: http://www.onlineutah.com/schooldistricts.shtml

View House Bill 218 at: http://le.utah.gov/~2011/htmdoc/hbillhtm/hb0218.htm

Lehi Lacrosse Varsity Assistant Coach

I am overjoyed to announce that I am the new Varsity Assistant Coach for Lehi High School Lacrosse!

I have been an avid lacrosse fan ever since I was introduced to the game at the start of my Senior year in High School.
I was introduced to the game by a very good high school friend, Andy Clark, and we both went out for the team.
Luckily for us both there were no cuts :)

I didn’t get as much playing time as I would have liked, as I got injured during pre-season practice, however my love for the game has only grown more and more.

Ever since we moved back to Utah, I have felt an even more powerful draw back to the game. It has been a great time for lacrosse in Utah, as BYU won the MCLA National Championship this last season. (MCLA: Men’s Collegiate Lacrosse Association)
I attended every home game for BYU (even in the bitter cold and snow) and made the trip to Grand Junction, Colorado for the Rocky Mountain Lacrosse Conference Championship Weekend. My wife and I made a second trip to Grand Junction to watch BYU compete during their Fall Ball season. (Fall Ball is not ‘official’ but is a way for the teams to work out their upcoming Spring season rosters, and get the players some practice and conditioning)

I had been looking at putting together a lacrosse camp for youth players featuring some professional players. I met with a couple of people at the Utah Lacrosse Association and during our discussion the idea of coaching was brought up.
So I gave it some thought, and talked to my wife, and decided that it would be something I think I would really enjoy doing.

I was lucky enough to be asked to be an assistant coach for Lehi High School (I am currently living in Lehi, UT so it works great).

We start conditioning practice on January 23, two days before my 30th birthday, and lets just say I am STOKED!

Some quick history on lacrosse for those who don’t know:
Lacrosse is the oldest sport.
It was originally played by the Native Americans, and is called ‘The Creators Game’.
Lacrosse has always been the National Sport of Canada. It has only been in the relatively recent past that Ice Hockey was added as the winter sport and lacrosse as the summer sport.
Lacrosse is really big back east (North East specifically) and growing back in the West more and more.
It is the fastest growing sport in America, and is known as ‘The Fastest Game On Two Feet’.