“Connection reset by peer” error with Fastlane & Jenkins

About a week ago, my build machine with Jenkins stopped sending out builds. I went to investigate and found that Fastlane was failing during ‘sigh’ when it attempted to connect to Apple’s servers.

The error was:

Taking a look at Fastlane’s issue page on Github, I was able to see that many people were able to resolve the issue by updating Ruby to the latest version and then reinstalling Fastlane. So I tried that…

After running the commands, I kicked off a build, but it failed once again with the same error. Strange. I figured since it had the same error, it must have been a problem with the version of Ruby used by Jenkin’s “Execute Shell” step.

Everything looked fine to me. So why was it still showing the same error? I ended up re-reading the issue page on Github and noticed that someone mentioned that openssl was potentially the reason. So I checked mine and it turns out the version I was using was outdated. I ended up trying to update openssl  using homebrew.

This time I wanted to be sure that the build would succeed so I checked the versions before proceeding any further.

NO! That’s not the version that I just installed! Homebrew installed it to:  /usr/local/Cellar/openssl/1.0.2j .

So I naively attempted to link it:

Uh oh! Another error. Since openssl  is “keg-only”, I decided to create a symlink instead:

Nice! Now that everything looked like it was in order, I kicked off another build and it finally succeeded.

If you’ve encountered the same error, hopefully this helps you. I would also recommend checking your PATH  to ensure that /usr/local/bin  is before /usr/bin . If it’s not, you might be running a different version than expected.

Cheers!

Tagged , , , ,

HockeyApp plugin for Jenkins Doesn’t Show “Upload to HockeyApp” Menu Item

Since TestFlightApp is shutting down soon, I decided that I would migrate over to a different platform to handle my continuous integration builds distribution. I ended up choosing HockeyApp as the platform that I would use.

HockeyApp is well established in the mobile distribution industry. They’ve been around for quite some time, but I’ve always used TestFlightApp because of the simplicity and the pricing. The switch over to HockeyApp was quite easy. They offer an SDK similar to TestFlight and a plethora of apps – iOS, Android, Mac, and Windows. I was able to get a build distributed through the HockeyApp website in a couple hours. But this was a manual process and obviously it wouldn’t work well with what I was trying to do.

Jenkins luckily has a HockeyApp plugin and I was able to install it quite easily, just like any other plugin. But when I went to add the Post-Build Action for my job, there wasn’t an option to “Upload to HockeyApp”. I was able to install an older build and it appeared there correctly. What I found was that with the latest HockeyApp plugin for Jenkins, it was failing due to an older version of Java on the build server. I checked the version and it was 1.6.x. I upgraded it to 1.7.x and then re-installed the newer HockeyApp plugin. After the install, the menu item “Upload to HockeyApp” appeared in the Post-Build Actions. I’ve since updated Java to 1.8.x and the HockeyApp plugin still responds correctly.

TL;DR: If you don’t see the “Upload to HockeyApp” menu item, check to see if you’re running an older version of Java and update it if that’s the case. The menu item should appear for anything over Java 6.

Tagged , , ,

Open Quickly into Assistant Editor

You can use Xcode’s Open Quickly feature to open the file you want in the Assistant Editor by holding Option when you click on the Open button!

Alternatively, you can hold Shift and Option while you press the Open button and Xcode will allow you to select which window you want to use to display the file.

Tagged ,

Updating Subversion on Mac OS X 10.8.x

A couple weeks ago I started using subversion via the command line on my laptop. I was able to quickly checkout my project and start developing immediately without any trouble. Then I decided I wanted some GUI support for subversion. I already was using SmartSVN for other projects and figured I should have all of my subversion projects managed by one tool. So I decided to point SmartSVN to my local working copy of the project and it proceeded to load up all the metadata into the app. Everything looked as though it had gone smoothly at this point.

Next, I went to Update the source and was prompted with a version mismatch error. The error something along the lines of the working copy was an older version and I needed to “upgrade” it to be able to use it with SmartSVN. That’s when I realized I obviously was running two different versions of subversion. A quick check proved that was the case, since I was using 1.7.x with SmartSVN 7.

tony@~/Documents/project$ /usr/bin/svn –version
svn, version 1.6.18 (r1303927)
compiled Aug 4 2012, 19:46:53

It turns out that Mac OS X 10.8.x runs Subversion 1.6.x. I proceeded with the upgrade of the working copy.

The next day, I started working on the project again, but my part of my workflow is to compile and run the project via command line with Ant scripts. When I ran the script, it immediately failed. I checked out the script and it was running svn info but it eventually failed with an error message. At this point, I knew it was another versioning issue with subversion. So I had to update Subversion on Mac OS X. Here’s what I did:

Downloaded Subversion from Apache and extracted. If you’re following these commands, make sure you replace the version number with the latest version.
cd ~/Downloads/
curl -o subversion-1.7.9.tar.gz http://www.bizdirusa.com/mirrors/apache/subversion/subversion-1.7.9.tar.gz
tar -xvf subversion-1.7.9.tar.gz
cd subversion-1.7.9

Configured and installed
./configure –prefix=/usr/local
make
sudo make install

At this point, I had a full working copy of subversion 1.7.x available for use.
/usr/local/bin/svn –version

One thing to note is that I still was using the older version of subversion by default. A quick svn –version would have shown that I was still at 1.6.xTo overcome this I updated my PATH with the new location.

vim ~/.bash_profile

Added in:
export PATH=/usr/local/bin:$PATH

Saved and then sourced it.
:wq
$ source ~/.bash_profile

Now when when I execute svn –version I see 1.7.x. You can also:
$ which svn
/usr/local/bin/svn 

 

Tagged , ,

WWDC 2013

It was quite surprising and awesome that this year Apple decided to give people a “heads-up” on when tickets for WWDC 2013 were going to be sold. I happened to be one of the lucky few people who were selected by my company to attend the event. So on April 25, 2013 at 9:45 AM, I fired up my browser to prepare myself for the intense “Black Friday”-like sale that was supposed to happen at 10:00 AM.

When the clock finally struck 10:00 AM, I quickly navigated the Apple website to login to my developer account, but all I needed to do was refresh the WWDC promotional page, and there was a convenient link on the page to purchase a ticket. I thought I was safe at this point, because I had to fill out all my information for the ticket while it was secure in my online shopping cart. Once I had finalized all my details for processing, I received an error message. This quickly put me into panic mode. When I refreshed the main promotional page at 10:02 AM, I saw a big “Sorry, tickets are sold out” message. It was at this moment, I knew I wasn’t going to WWDC 2013.

The next day, I had heard news about Apple offering some developers a second chance at purchasing a WWDC 2013 ticket. When I read over the news, I realized that it was the same situation that I had previously experienced. I began to get excited again at the chance of attending the conference. I waited and waited until I finally received a phone call and email from Apple stating that I had a ticket reserved, but I still needed to complete my purchase!

The email contained instructions and a single link to finalize the purchase. When I clicked on the link, I was asked to log in to my developer account again. I had no problem with this. Following the login screen, I was given a page that had a bunch of my developer information displayed. At the bottom, was a single “Purchase” button. I quickly reviewed all of the information displayed and clicked the button, only  to be disappointed again.

redirectloop

I panicked again, but thought to try using other browsers. Safari – nope. FireFox – nope. IE – nope. Nothing worked.

I eventually sent out an email to Apple’s WWDC support with all the details. It’s been over a week now, and I haven’t heard back from them at all. A quick search found that other people were experiencing the same issue as me. Some of them have been able to get the issue resolved, but others are still left in the dark. I read that some people have called in and have been told that they shouldn’t worry because the ticket is reserved under their name.

I guess I’ll just continue the waiting game until this is fixed for everyone. Until then, I think it’s safe to say I’ll be there!

 

Tagged , ,

GoDaddy 30% Domain Renewal Code

This weekend, I had to renew a few domains, but GoDaddy was asking for an absurd amount for each of the domains per year. So I set off on an adventure, searching for a renewal code. Eventually, I stumbled upon one that offered a 30% discount off of the total price. I’m somewhat pleased with this, but I would have loved to see a greater discount seeing as how I’ve been a long time customer of theirs.

I can guarantee that I’m just a small fish in a large sea of domain owners, but I’m a strong believer that a little customer satisfaction goes a long way!

Line numbers in VIM

Temporarily display line numbers in VIM:

  1. Press ESC to enter command mode
  2. Type :set number
  3. Press Enter key

Always display line numbers in VIM:

  1. Navigate to ~/.vimrc
    If you don’t have one, create one.
  2. Press i to enter insert mode
  3. Add set number as a separate line to this file
  4. Press ESC to enter command mode
  5. Type :wq
  6. Press Enter key to save and quit VIM

No new pictures or videos were found on this device

The other day, I saved all of my photos and videos off of my iPhone 4S onto my computer using the “Import Pictures” wizard. I decided to not check the box that deletes the pictures and videos after saving, so after the whole process was done, I was stuck with 1000+ photos on the device. At this point, I was not ready to spend 20 minutes tapping on each picture one by one to mark them all for deletion. It really bothers me that Apple made a weird decision to not implement a “Delete All” button for the camera roll.

So I thought to myself, why not just delete all the photos and videos that were imported off of the computer, and repeat the process, this time checking the box to remove the items from the device. As soon as I plugged the phone back into my computer, I navigated to the “Import Pictures” wizard, and it gave me this awesome prompt…

Here’s when I began to worry about losing my precious photos and videos. I decided to take a picture using the camera on the device to ensure that there was a new picture for the wizard to pick up. This way, the wizard might recognize that none of the other pictures have been “saved” (even though I had already saved them previously). This time around, when I got to the wizard, it allowed me to save pictures, but it was only the one new picture that I had recently taken.

It turns out that Windows persists information about which photos or videos have been previously saved to your computer, so you can’t really save them again. I guess this was designed to prevent duplication of photos and videos on the computer. So to fix this solution all you have to do is delete or rename the file which stores all this information and you’ll be set.

For Windows 7 this file is:
C:\Users\<username>\AppData\Local\Microsoft\Photo Acquisition\PreviouslyAcquired.db

For Windows Vista the file is:
C:\Users\<username>\AppData\Local\Microsoft\Windows Photo Gallery\Pictures.pd4 (or sometimes .pd5)

Did you know Facebook accepts three forms of your password?

It’s true!

When you go to login to Facebook, you can enter one of three accepted forms of your password:

  1. Your original password.
  2. Your original password with the first letter capitalized.
  3. Your original password with the case inverted.

Example

If your original password was paSSword789, you can enter the following to login:

  1. paSSword789
  2. PaSSword789
  3. PAssWORD789

Explanation

  1. This is your original password.
  2. Some mobile devices capitalize the first letter when you type.
  3. If you inadvertently have Caps-Lock on prior to typing your password.

Go ahead and try it out now!

Creating an MSI transform (.mst) file with Orca

Orca is a tool that allows you to edit an MSI file’s properties. With Orca, you can easily add customized text, add/remove installation screens, or even change certain conditions contained with the original MSI file.

You can download a copy of Orca from: http://www.technipages.com/download-orca-msi-editor.html.

Steps:

  1. Open Orca.
  2. Open the original MSI. File > Open > Browse to the MSI > Click Open.
  3. Start a new transform. Click on the top “Transform” menu, and select “New Transform”.
  4. Make changes. Navigate to a table you want to edit, and modify values.
  5. Generate the transform file. Click on the top “Transform” menu, and select “Generate Transform”.
  6. Save the transform file. Enter in a name for the transform file, and click “Save”.

You should now have a transform file (.mst) that contains the modifications to the original MSI. Keep in mind that the original MSI has NOT been modified. You will have to apply the transform to the original MSI to have the changes take place.

To run the transform:
In cmd, type:
msiexec /i <your_msi_file_here.msi> TRANSFORMS=<your_mst_file_here.mst>

For example:
msiexec /i orca.msi TRANSFORMS=transformOrca.mst