Random Technology Thoughts

Is this a legit Fortnite V-Buck site? Probably not.

Fortnite has caused quite the security kerfuffle. Between releasing the Android app outside the Google Play Store, and an insane desire for V-Bucks, scams are running rampant.

Wired put out this article yesterday entitled Fortnite scams are even worse than you thought, and it made me sad that people are being tricked (that’s for tomorrow 🎃).

I made a simple browser extension as a helpful reminder of legitimate V-Buck sites. It will give you a green thumbs up on real V-Bucks websites, and a red thumbs down for sites where you can’t safely purchase V-Bucks. Check it out on GitHub.

If all else fails, to stay safe, remember: ONLY BUY V-BUCKS IN THE GAME.


Download the extension files by clicking “Clone or download > Download Zip” on Github
Follow steps 1, 2, and 3 here to install the extension
(Yes, enabling developer mode to sideload extensions is a similar security whole to what Epic is doing with Fortnite on Android. I’ll look into publishing the extension officially.)

Test out the extension!

V-Bucks for PlayStation:


V-Bucks for Xbox:


V-Bucks for PC/Switch/iOS/Android are only available in game, but here’s a link to Epic Games explaining that:


Don’t buy V-Bucks on eBay:


Video demo

It’s all out the gifs

Other Fortnite Links and Security Tips

Here’s how to get Fortnite on Android:

How to protect your Epic account:

Epic on V-Buck Scams:

And a reminder from Wired:


I’ll wrap up by saying I don’t endorse actually purchasing these things, but for those of you who do buy, stay safe out there!


How to do a triathlon

The lazy person’s way*.

There are tons of resources online that will help you go from 0 to 27.2 miles in some amount of time, but I’ve been running and biking for longish distances for a while now. Working up from a 1 mile run wasn’t something I needed. I wanted a plan that would help me go from running most of the way for 10km to running the entire 10km (after swimming a mile and biking for 20). That’s not to say I ignored all advice out there. I read this book and also heard this one was good too.

For me the swimming was going to be the hardest leg of the race. Starting out, I had never swam in open water for any significant distance (other than wading around in the ocean). I knew how to swim, but going for a mile seemed impossible.

I also have been exercising, weight training and playing sports consistently for several years now. So this is more of a guide detailing how to work training for a triathlon into your usual exercise routine with some tips and tricks for doing the best you can in the race.

Getting Started

Here’s my steady state training routine:

Cold/Wet Weather

Weight lifters use this time to “bulk”, eating anything and everything to assist gaining muscle (and fat) in preparation for the spring “cut”. But we’re here for lifelong health, so you don’t have to do anything too extreme. Just keep to your normal diet and adjust your workouts for the weather.

When it’s dreary outside it’s mentally tough to go for a run or a bike ride. You can do it, and if you do, it will give you a psychological boost for warm weather. If, you’ve done it in the rain, you can definitely do it in the sun. In recent years, I’ve invested in cold weather and water proof training gear, so I can ignore the weather and exercise outside all year round.

Inside, the winter is for weight training and cardio in the pool. Use the opportunity to build or maintain strength and work on your swim technique. I exercise 4 to 6 times a week and keep to a ratio of 3:1 strength to cardio in the winter. My rotation generally progresses through legs/shoulder, chest/triceps, back/biceps, and swimming. I find this to be a good balance in the winter as I’m not a fan of cardio on stationary bikes or treadmills (they just remind me I’d rather be outside). I also include abs most days and like to warm up on the rowing machine (or erg, as I recently learned they are called). I try to keep my workouts from getting too repetitive, but center my training on bench press, squat, deadlift, and shoulder press variations.

Swimming is the fun part. I am terrible. Up until I really started focusing on getting better for the triathlon, I could not string together many laps in the pool. I blame my inability to float (although I am now certified for the capability, see week 13), but it’s really that I don’t swim enough to develop into a strong swimmer. That didn’t discourage me from trying. Swimming is tremendous cardio exercise and it’s low impact. Plus it’s humbling watching people many (many) years older than me out stamina me, swimming for what seems like days, while I struggle to do four laps in a row. Every time I jump in the pool, I’m determined to do a little bit better than I did last time. It’s exhausting, both physically and mentally, but rewarding, when I finish swimming faster or longer than I had before.

Warm/Sunny Weather

In the summer I flip the weight training to cardio ratio, opting to spend as much time outside as possible. I’ll bike two or three times a week, run once or twice, and go to the gym only once or twice. Swimming isn’t generally part of my summer work our routine, as I hadn’t started open water swimming until this summer, and I despise being in a stuffy indoor pool when it’s nice out (outdoor pools are hard to come by here).

Training Schedule

With that background in mind, here’s how I’ve adjusted for the triathlon.

I signed up for the triathlon three months ahead of the race day. The race is Olympic distance, which in this case, entails a 1 mile swim, 20 mile ride, and 10 kilometer run (the standard Olympic distance has a 40km/25 mile bike ride). I knew from the beginning that swimming was going to be my weakest link, and it would be the hardest leg mentally for me to train.

Feel no compulsion to stick to this schedule. I know I will do something completely different for my next race. This is just a way to show how you can do a triathlon at your own pace when starting with a solid background.

Week 1 (4/15-4/21)

Sign up for the race. (Take the week off and start training on Saturday)

Strength training (legs & shoulders)

Strength training (back & biceps)

Strength training (chest & triceps)

14mi bike ride (50 min) and 6km run (32 min)

Week 2 (4/22-4/28)

Ultimate frisbee (90 min)

11.6 mi bike ride (56 min)
11.9 mi bike ride (55 min)

7.5 km run (38 min)

Strength training (legs & shoulders)

Strength training (back & biceps)

Week 3 (4/29-5/5)

Strength training (chest & triceps)

Ultimate frisbee (90 min)

1250 yd (.7 mi) pool swim

1400 yd (.8 mi) pool swim

Strength training (back & biceps)

1800 yd (1 mi) pool swim

5.5 km run (26 min)

Week 4 (5/6-5/12)

12.1 mi bike ride (52 min)
11.7 mi bike ride (50 min)

Ultimate frisbee (90 min)

5 km run (32 min)

Mother’s Day weekend:
Take a few rest days (maybe 4)

Week 5 (5/13-5/19)

12 mi bike ride (53 min)
11.8 mi bike ride (57 min)

6km run (28 min)

11.9mi bike ride (51 min)
11.8mi bike ride (55 min)

Strength training (legs & shoulders)

Week 6 (5/20-5/26)

Strength training (chest & triceps)

1225 yd (.7 mi) pool swim

Ultimate frisbee (90 min)

13 mi bike ride (1h 1m)
Volleyball (60 min)

28.6 mi bike ride (1h 48 m)

2325 yd (1.3 mi) pool swim

6.5 km run (32 min)

Week 7 (5/27-6/2)

5 km run (30 min)
Strength training (back & biceps)

6.75 km run (36 min)

2025 yd (1.1 mi) pool swim

11.8 mi bike ride (54 min)

17ish mi bike ride (1h 34m)

Week 8 (6/3-6/9)

2000 yd (1.1 mi) pool swim

Ultimate frisbee (90 min)

11.9 mi bike ride (52 min)
11.8 mi bike ride (52 min)
7 km run (34 min)

Volleyball (60 min)

0.5 mi open water swim

Week 9 (6/10-6/16)

Ultimate frisbee (90 min)

8.5 km run (50 min)

11.9 mi bike ride (59 min)

14 mi bike ride (1h 4 m)

Week 10 (6/17-6/23)

Ultimate frisbee (90 min)

1775 yd (1 mi) pool swim

7 km run (37 min) do this at noon on the hottest day of the year

2000 yd (1.1 mi) pool swim

7 mi hike

Week 11 (6/24-6/30)

0.25 mile open water tubing

Ultimate frisbee (60 min)

1 mile open water swim (44 min)

10 km run (50 min)

Week 12 (7/1-7/7)

11.7 mi bike ride (52 min)
11.4 mi bike ride (49 min)

(do the a trial tri just for kicks)
1 mile swim
20.1 mi ride (1h 13m)
10 km run (57 min)

6.5 mi hike (~3 hr)

Week 13 (7/8-7/14)

This week I started to taper my training. I didn’t want to feel depleted for the race, but I still wanted to stay in form. It was odd to limit strength and conditioning training for means of consistency instead of progression. If you’re used to keeping a regimented workout routine, it may feel strange to ease off for a while (it did for me), but the process paid off. I felt strong on race day, with the energy to make it through each leg.

1.4 mi bike (46 min)

2000 yd (1.1 mi) pool swim

10 km run (53 min)

10 minute pool float (0 mi)

Week 14 (7/15-7/21)

11.3 mi bike ride (47 min)
11.6 mi bike ride (51 min)

1800 yd (1.0 mi) pool swim

Race day (Sunday 7/22)

1 mile open water swim (25 min)
20 mile bike (1hr 6min)
10 km run (53 min)

Post race thoughts

Only wear a wetsuit if you really need it for the water temperature. It will save you valuable minutes and seconds if you can run out of the water and jump on your bike. For me it helped with training in the weeks leading to the race as the water warmed up, but on race day, the water was warm enough to swim without a wetsuit. I decided to wear the suit given I mentally prepared to wear it, but for the next race I think I’ll go with just the tri-suit.

Energy gels are nasty and leave a weird taste in your mouth. Stick to the energy chews for a quick burst carbohydrates to restore glycogen. And go with an electrolyte water for your bike ride. Sugary sports drinks can weigh you down.

Did you get one of those neon buoys for swim training? If you didn’t you should (and go with one that has an insulated pouch for your keys). But they also come in handy for wearing your bib number across the finish line. I’m not sure this is the case for all races, but for mine, it was required to have your number on your bike and helmet, and to wear your bib number `during the running leg. I pinned the number to a shirt that I put on for the run, but others pinned their number to the belt of their swim training buoy. It was an interesting idea I hadn’t considered.

Bring a towel to lay down at your transition spot, so you can quickly dry your feet. And only bring the bare essential accessories with you into the transition area. For me that included water, snacks, headphones (for getting in the zone during warmup), extra goggles, and a towel. Of course you also need your bike, helmet, cleats, running shoes, number, swim cap, and goggles. I brought everything in a reusable mesh grocery bag so it could collapse down easily.

Rapid-fire miscellaneousness: Get to the race an hour before it starts (and at least an hour before your start time). Bring headphones to keep you focused and calm. Eat a regular breakfast, but not heavy (I had eggs and pb&j). Stay hydrated the day before. Don’t eat dinner tool late the night before; give yourself time to digest. Stay mindful of the start time of the race and using the restroom beforehand. Inflate your bike tires either the night before or at the race (I didn’t bring a pump, but some people did). If you are cheering on a racer, bring a giant poster cut out of their face. Prep your bag the night before, so you can wake up grab the bag and go. Enjoy the race! Once it’s starts, it will be over in an instant. Take count of everything going on and have fun.

Looking forward to the next one

I’ve always exercised to enjoy the outdoors and strive for lifelong health. People think I’m crazy, but I actually like to go for a run or bike ride. Because of this, it didn’t feel like I did much different outside of my normal routine. Going into it, I had never swam in open water, let alone continuously for a mile. With a little coaching and a lot of practice, I was able to complete the swim, and was congratulated by my screaming fans “YOU FINISHED THE SWIM!” as I ran out of the water.

For the next race, I need to work on the running most to yield the most improvement for the effort. The biking was fine, but it took a while for my legs to warm up. Combined with cutting down the transition times I could be in pretty good shape for a 10-15 minute improvement. Always something to keep pushing for.

So that’s it! Completing a triathlon takes mental and physical preparation, but with a little determination you can do it without deviating too much from your normal routine. You just have to stick with it!


*By lazy person, here I mean person who doesn’t want to stick to a new, strict, and  regimented schedule because said person has been exercising for consistently for a few years and already has a good routine going. So more of an “avoiding change” lazy, than a “sit on the couch all day” lazy (although said person enjoys that kind of lazy too).


Fixing the Blog

Thank you Jetpack Support

First of all, Jetpack support is amazing. Automattic is known for its customer service oriented culture, and it shows. I was running into an issue where Jetpack would not connect to my site, so I reached out to their support team. They were responsive in helping me figure out the tech at all hours of the day, and they even researched how to solve a problem with a non-Automattic product. Great stuff, I appreciate it!

Here’s the link if you need help with Jetpack.

WordPress and Site Address URL

The first issue has been with the site since day one. For custom WordPress installs, the WordPress Address and Site Address URLs should be the same (both set to in this case) no matter what they say:

Site Address (URL):

Enter the address here if you want your site home page to be different from your WordPress installation directory.

Just don’t try to manually update WordPress and Site address to your custom domain from wp-admin dashboard. You will get locked out.

To fix the issue you need to FTP into your site and update the siteurl in the functions.php file for your installed theme:


Refresh WordPress admin and then remove the update_option code.

Clear site cache

Just for good measure, clear the Project Nami blob cache so no old site configurations are left hanging around. The instructions are in the readme of the Blob-cache download (why!?).

An aside on Cron expressions

They’re kind of fun, but how are these still a thing? I guess we have Unix to thank. I need to use them 0 0 0 0 0 ? 2018/2 or 0 0 0 0 0 ? 2018/3 at best. Here are some docs from Oracle and Quartz to figure out what that means.

Jetpack and Project Nami

Turns out everything up to this point had nothing to do with getting Jetpack to work. It certainly didn’t hurt, but attempting to link Jetpack still showed the error “Verification secrets not found”.

Jetpack verification secrets error message

On a whim I decided to look into the compatibility issues with Jetpack and Project Nami, the caching mechanism for WordPress on Azure. And what do you know, Issue #237 on the Project Nami GitHub had the answer.

One should now be able to solve the issue by adding the following to the site’s wp-config.php:


See Automattic/jetpack#7875 for more info.

So finally, if you’re following along at home, disable Jetpack raw options for Project Nami…

And it works!

You can sign up for email subscriptions in the sidebar.

A red-herring extension

Turning off browser extensions may or may not have helped. I turned off Ghostery in the middle of the process, forgot about it, then realized it was still off some time later.

Happy blogging

Random Thoughts


Fox sleeping in a tree

Relax. Be mindful of my breathing and body positioning. Rest my muscles and let all tension melt away. Start at the top of my head and slowly scan down how I am holding each part of my body. Relax the mind and loosen the neck and shoulders, slow my heart rate, expand my stomach, stretch my legs, spread my toes, and open my mind.

Random Thoughts

Test Yourself

work harder blue neon sign

Over the next few days put your learning to the test. Along with over coming the fear of exposing yourself as an imposter, you will also attempt to keep you ego in check and build relationships with others. That sinking feeling you get when encountering a difficult social situation will be redirected to external action rather than receding inside yourself. Most importantly, you should remember to be yourself, live small, build up others, and keep learning. You’ll be great.

Random Thoughts

Something New

Coin-operated binoculars overlooking a beach

While something may make sense in your head, you must work hard to have it click for others. Furthermore, you must create a space where others can feel safe in being vulnerable and asking questions. Don’t be angry someone doesn’t know certain things. Be happy you are able to teach them something new.


Bonus track: Something new at Somewhere New

Random Thoughts


Person ties their shoes on a bridge in a city

Exploring a new city can be daunting at first. I knew little to nothing of how to get around and barely knew anyone here. I did all the research and tried to avoid routine for as long as possible to take advantage of all the opportunities. To expand my view of the surroundings I went on running tours of the area trying to uncover new places. This slower paced, in person exploration gave me a great feel for the city and where I wanted to venture next. Running out with no destination in mind, I used the few landmarks I knew to guide me back at the end of the day. Running, rather than driving connected me to the city first hand and exposed me to much of what the city has to offer. I noted restaurants, parks, concert venues, and trails to return to later. Physically exploring new areas instead of scrolling on a screen was a fruitful exercise, but I won’t let it stop. Build on my findings, explore more, and keep running.

Random Thoughts


Blue green "Ask more questions" framed posterLearn to control your biases and impulses around others. Stop and ponder “What are you thinking about? What’s going through your head?” Keeping these thoughts in everyday life humanizes others and allow you to better understand that we are all people with complex histories and emotions. Prodding with simple questions like “What do you think about? What are you thinking about? What do you mean? What are you working on?” Ground conversation on an emotional level and foster deeper connection. This is the type of conversation which brings us together and stimulates growth. It’s not superficial, but thoughtful, on a level helping us come to a better understanding of ourselves and others.

Video of the day



Want to stitch together a video of GoPro timelapse photos? They are all in the format G00XXXXX.JPG (G0050192.JPG), so throw all the photos in a single “Timelapse” folder and use ffmpeg!

ffmpeg -r 24 -start_number 50192 -i G00%05d.JPG -s 1440x1080 -pix_fmt yuv420p -f mp4 -vcodec h264 DriveToDomaine.mp4

Sit back and chill for a few minutes (or meditate), and soon enough you will have a new timelapse video! Feel free to play around with the settings to your liking. This will get you a 1440×1080, 24fps, QuickTime compatible, mp4 file. #justnerdthings


To concatenate mp4 files in the same directory use the following:
ffmpeg -f concat -safe 0 -i <(for f in ./*.mp4; do echo "file '$PWD/$f'"; done) -c copy drivingTour.mp4


The 4-Hour Workweek for the 9 to 5 Type

Tim Ferriss, author of “books with titles that sound like infomercials”, touts tremendous productivity techniques which can result in 10x’ing your hourly output (thus the 4-hour workweek, 10×4=40). He is slightly controversial in regards to a few of his approaches (who outsources email?), but many are applicable to just about everyone. The questions is, how do people who work 9 to 5 fit these techniques into their lives? Sure someone like Ferriss who only works four hours a week (slight exaggeration) has time to read 2-3 books a week and meditate twice a day, but how can people who spend a large portion of their time at their job work these teachings into their lives? It takes a bit of effort, but it can be done.

Start by retooling your morning. What do you do? Get up after hitting snooze on the alarm one too many times. Check your phone for email and social media updates. Skip breakfast because you need to get out the door.

Even if you are not a morning person, tweaking your morning schedule slightly can be easy and have tremendous benefits. Start by waking up 20 minutes earlier than you would normally (come on, it’s not that bad). The iPhone alarm snoozes for 9 minutes. Say you hit it twice every morning. If you wake up with the first alarm you’re pretty much already there.

Here’s an aggregate morning routine from a few of the guests on the Tim Ferriss show (Ryan Holiday, The Glitch Mob, Alexis Ohanian, Peter Diamandis, Robert Rodriguez, plus Ferriss on Freakonomics):

  • Wake up without hitting snooze (Ryan Holiday and Marcus Aurelius)
  • DO NOT CHECK YOUR PHONE (Pretty much everyone on the show)
  • Silent meditation for 5-20 minutes (Glitch mob, Ryan Holiday, Tim Ferriss)
  • Light exercise and/or stretching to invoke deep breathing and blood flow (Glitch Mob, Diamandis)
  • The following are common, but the order is often different:
    • Breakfast: eggs (Glitch mob) waffles (Ohanian) sardines!? (Ferriss)
    • Journaling (Holiday, Ferriss, Diamandis, Rodriguez)
    • Reading (Holiday, Glitch Mob)
  • Finally, plug in and get on with your day.

This may seem like quite a bit to accomplish in the morning, but if thought of as part of your daily routine, rather than things which need to get done, you will probably find it all rather easy. Meditate for 5 minutes, do 100 jumping jacks, and write down your thoughts. If you are efficient, you can fit all of this into the time you spend snoozing that alarm. Try it out, tweak the times, and find a schedule that works best for you.

If you take public transit (and can get a seat), the time spent commuting can be used mindfully to accomplish parts of the routine. Instead of sleeping or listening to music, you can write in a journal or read a book. If you drive as part of your morning commute, listen to a podcast which sets your mind in the right place for the rest of the day (it is not condoned to read while driving to work…).

The rest of the day:
Keep the baseline that while you are at work, you are working (and doing so at 10x your usual rate). But what about lunch? If you have an hour for a lunch break, take 10 minutes of that time to meditate and 10 minutes to journal. You still have 40 minutes left for your meal.

On the way back from work, try the morning routine in reverse. Read and journal on public transit, listen to podcasts in the car, meditate upon arriving home to decompress and take count of the days events. Let your work-mind settle and move your thoughts into goals for your personal life. And don’t forget to relax. Even Elon Musk plays video games sometimes.

Carry this schedule into your days off as well. Sure you can sleep in a bit later, but don’t deviate just because it’s a lazy Saturday. Start your day of productively and you will set the tone for the day to align your actions with what you want to achieve.

There are over 150 episodes of the Tim Ferriss Show, so there is bound to be variations to these routines. Everyone is different and you will find some techniques employed by certain people will work better for you than others. As Ryan Holiday mentions, find a person or character you relate to, see what you like about yourself in them, and use it to bring out more of those qualities. Also, see what you don’t like about yourself in them and use it as a cautionary tale to stay away from those qualities. In this regard, find a routine that works for you and fits in with your life goals. Pull from others’ successes, continually tweak your daily regiment, and strive to keep improving.

Tim, how about you interview someone with a 9 to 5? Not everyone has a 4-hour workweek, but we are all trying to become the best versions of ourselves.


App Store Submission Tips and Tricks

I recently submitted my first iOS app to the App Store and spent quite a bit of time searching ways to navigate some of the less intuitive parts of Apple’s submission process. Tons of guides walk through step by step, this is meant to help fill in the gaps.
For those looking for a overview, start with this great tutorial and come back to this post for more info.

Development resources

There are a lot of great resources to learn about Objective-C, Xcode, and app design. Here are a few to get you started:

While learning, if you see a piece of code I think I need to incorporate, copy it into an open space your program, but re-type it in the correct location. This saves the hassle of alt-tabbing between windows or looking back and forth, but gives you the opportunity to gain the muscle memory of typing the code. Just make sure you actually type the code!

Sign up for an Apple developer account. The account costs $100 a year but is needed for testing on actual devices and then submitting to the app store.

iTunes Connect vs Apple Developer

Use the same email for both

One email can be connected to multiple Apple Developer accounts, but iTunes Connect is limited to one email per account. However, using two different email addresses can cause issues when submitting app from Xcode to Connect. Xcode checks if the Developer and Connect account email addresses match, rejecting submission if they are different. So save yourself the trouble now, and use the same email for both Apple Developer and iTunes Connect.


If you have a Gmail address, you can add a “+” to the end of your address to create a “new” email that will send to your original account. For example, say your email is [email protected] You can append “+dev” to create [email protected] This address will still show up in your [email protected] inbox, but Apple (and other sites) will see the modified version as a completely different email address.

Switching to a Team

Follow this link to the Apple developer team support page and scroll to “If I am enrolled as an individual, can I change to a company membership?” (Yes!). From there, send a message to Apple explaining you wish to transfer your account.

There is about a seven day process of switching a person account to a company account. If you are on a deadline, make sure you start this soon. Changing will also require the DUNS number to identify your company.

Once the team developer account is set up, you need to add members to both the Connect and Developer accounts for the company.

Uploading to iTunes Connect

Hooray! So all the accounts are set up and you are ready to upload version 1.0 of your app! You log onto Connect, hit the “+” and are greeted with this screen:

New iOS App Information ScreenshotName

Unless you app name is in Esperanto, there is a good chance someone already tried to register the app under the same name. Take a look a the App Store, many apps have a small tagline at the end of the actual name. If your app name is already taken, you can try this naming convention for the App Store page:

Gmail iOS App Store Screenshot

Don’t worry, the name shown under the app icon will stay the same, this name is for the store purposes only.


Should match the version number of your app in Xcode.

Primary Language

Main spoken language used within the app. Used in tandem with the localization settings of your app (or Swahili).


The SKU number can be just about anything. Using the date format YYYYMMDD is common.

Bundle ID

The Bundle ID can be found in Xcode by navigating to Project > General, but to enter the ID here, you must register your app within the Apple Developer site. Here are some links to help with the process:

  1. Distributing iOS app with iTunes Connect (Part 2 – App ID)
  2. Configuring Your Xcode Project for Distribution (About Bundle IDs)


Generating buzz is of utmost importance when releasing a new app. There are many sites designed with the sole purpose of boosting awareness for upcoming apps. For those with grand business ambitions, BetaList focuses on discovering the next big startup. Apps featured on BetaList are often multifaceted with online and mobile components. For fun and entertaining apps, PreApps is the place to go. Mr Jump is a great success story from PreApps, generating over 5 million downloads in the first 4 days, but the site works just as well for any app looking to gain some traction.

App Store Prep

App Todos

Ensure your app adheres to all of the App Store Review Guidelines. The list is quite long, but read it carefully. Violating even one guideline will cause your current app build to be rejected. The most common reasons for rejection are summarized here.

Store Page Todos

To take a screen shots of your app, hit Command-S while running the device simulator in Xcode. With screenshots in hand, check out sites like Davinci Apps and to easily add a caption and display the app screenshots on an iOS device.

Connect Todos

1. US Export Compliance (iTunes Connect Question “Does your product contain encryption?”)

To ensure your app is compliant not only with Apple, but also the US government, it is crucial to understand the encryption technologies used in your app. Here is a link from the Bureau of Industry and Security regarding encryption. There seems to be a bit of confusion surrounding the correct process:

  1. Does my application contain encryption (StackOverflow)
  2. What constitutes encryption for the purpose of export compliance (StackOverflow)
  3. Using SSL in an iPhone app export compliance (StackOverflow)

However, a commonality is if you think your app includes encryption, whether you wrote it or not (including https and SSL), you should select “Yes” for the export compliance question and provide your ERN (Encryption Registration Number) when you submit your app.

This post from a few years ago explains the situation well, and walks through the process of obtaining an ERN for your app (the link from step one does not work).

2. Advertising Identifier (IDFA)

Some 3rd party SDKs (such as Facebook) use the IDFA, so check with any 3rd party code before you answer this question. Otherwise your app may be using the IDFA without you knowing, resulting in Apple rejecting your app submission. As an example, if you are using the Facebook SDK to track app installations, select the second checkbox attributing use of the IDFA for app installs.

App Store Submission

Review takes about a week (7-8 full days). You can check the average app store review times, but once your app is taken from the “Waiting for Review” queue, Apple reviews the app extremely quickly.

In special circumstances, if you need your app to be reviewed faster, you can ask for expedited review. Apple is not guaranteed to grant expedited review, and they only make a one-time exception.


Carefully read over Apple’s reason for rejecting your app. This can be an infuriating process, but try to stay calm. Make sure you adhere to the app store guidelines (you read through this earlier, right?), and fix the issues  outlined.

Ready For Sale!

Green light! Time to release! Not quite yet.

Make sure you have some buzz around your app. This part is tough, but the right marketing strategy can make or break the success of your release! Hopefully PreApps and BetaList worked to generate some interest, but now is the time to recruit as many people as possible to help spur initial launch popularity. Make a Facebook page, Twitter account, try to contact some websites catering to your target market, and let your friends and family know! Product Hunt is a great site, but good luck grabbing an invite and being featured. And hey, don’t forget to let me know! Comment with any apps you released after reading this post!


If you made it this far and enjoyed the post, please consider checking out the app my team has been working on. Cele (“celly”, say it correctly…) is an for app iOS and Android that lets you know of daily quirky national holidays and suggests the most fun ways to celebrate.

Get it here! For iOS and Android.