iOS Build Types

Everyone around me, including me, always get confused by the different iOS build types and account types.

I compiled a short guide that explains each build type and account type and what they’re good for.

Terminology

Build Types

AppStore build

A build that can be uploaded to the appstore. It can only be installed through the appstore or iTunes Connect either as a regular app (after it is released) or through TestFlight.

I.e. to use this build you must upload it to iTunes Connect.

Ad-Hoc build

A build that can be installed using iTunes or XCode.
You usually use this to make testing easier or combined with an enterprise account (see below).

Account Types

Regular (or appstore) account

The apple account is used to sign and publish builds.
We use the “regular” or appstore account for publishing to appstore and testing internally.
When we build Ad-Hoc build using the regular account, the build can be installed only on devices that have their UDID’s registered in the account and there can only be up to 100 such devices.
We we build AppStore build using the regular account, the build should be uploaded to iTunes Connect. There it can be installed using TestFlight by testers registered in iTunes Connect or published to the appstore.

Enterprise account

An enterprise account is meant for in-house distribution of apps without the appstore.
The reason is that when you build an Ad-Hoc build then you have 2 options.
If you sign the build using an In-House provisioning profile then anyone that has the build can install it. You don’t need to register their UDID’s or register them in iTunes Connect. This is good for in-house distribution.
If you sign the build using an Ad-Hoc provisioning profile then you can only install the build on registered devices. But since this is an enterprise account, you can register up to 1000 devices.
You can still build an AppStore build using an enterprise account and publish it to the appstore.

Which Build/Account Should I Use?

You should probably use an enterprise account only if you’re an enterprise that want to distribute the app internally without uploading it to the appstore.

If your means of distribution is the appstore, you should use a regular account.

If you use a regular account and you want to…

  • Test internally – make sure every test device’s UDID is in the provisioning profile and create an Ad-Hoc build. Send this Ad-Hoc build any way you want to testers. Or, create an AppStore build and upload it to iTunes Connect. Then add the testers’ emails to the testers of the app (in iTunes Connect).
  • Test externally (beta) – create an AppStore build and add the emails of the beta users to iTunes Connect as external testers.
  • Publish – create an AppStore build and upload it to iTunes Connect. Test it through TestFlight. Once you’re satisfied All that’s left to do is send it to review.

If you use an enterprise account and you want to…

  • Test internally -make sure every test device’s UDID is in the provisioning profile and create an Ad-Hoc build using an Ad-Hoc profile.
  • Test externally (beta) – you can use iTunes Connect as above. You can also create an Ad-Hoc build and use other tools (such as HockeyApp) to distribute it to beta testers.
  • Publish – create an Ad-Hoc build using an In-House profile.
Advertisements

Align Library for Corona SDK

I’ve been playing around with Corona SDK. I like it – it is simple and robust. It is very easy to make a game and the learning curve is very smooth.

One thing I found myself doing again and again is aligning things next to each other. E.g. putting the player sprite on the ground image, putting 2 buttons next to each other, things like that. It is easy but after some time it gets cumbersome, all those calculations of height and width.

So I created a small library to help with aligning things.

I posted an example in the Corona forums and the library is available on github (with more examples).

Screen Shot 2014-04-25 at 7.39.13 PM

Who Am I – A Facebook Game, Part 3

This is the third part of ‘Who Am I – A Facebook Game’. If you didn’t already, check out part 1 and part 2.
This post’s code can be found on the whoami repository on github.

Where Were We?

In the first part we introduced Who Am I – a Facebook game that helps you get a better understanding of your personality through friends feedback.
In the second part we developed all the basic functionality of the game using Python and Flask.

In This Post

In this post we are going to register our game on facebook.
We’ll go over the steps needed to register a game and configure it.
While at it, we will introduce ngrok – a tool that will allow you to host the game on your computer.
We will then integrate our game with the facebook API so it can use the player’s facebook data such as her name, photo and friends list.
Finally we are going to create test users and test our game.
Continue reading

Who Am I – A Facebook Game, Part 2

This is the second part of ‘Who Am I – A Facebook Game’. The first part can be found here.

Where Were We?

In the first part we introduced Who Am I – a Facebook game that helps you get a better understanding of your personality through friends feedback.
We talked a little about Python and Flask and then proceeded to create a simple hello world web application in Flask.

In This Post

The final code for this post can be found in the whoami repository on github.
In this post we are going to add the core game functionality into our application – we will create the player’s home page that shows her personality and the test pages that allows the player to define his personality and give feedback to her friends.
Initially I wanted to make the game a facebook game in this post but it got too long. So facebook will have to wait for the next post.
Continue reading

Who Am I – A Facebook Game, Part 1

UPDATE Part 2 in now published!
UPDATE Part 3 in now published!

Who Am I is a simple Facebook game built with Python and Flask.

In this and following posts I will introduce the game and develop it step by step. I will use the following stuff to develop the game:

  • Python (you need basic skill in Python)
  • Flask – a web framework for Python
  • HTML + CSS + Javascript – and the ubiquitous jQuery library
  • Facebook APIs – GraphAPI mostly

You probably need some experience in programming and web applications in order to follow along. If you ever programmed using a web framework (in any language) you will have easier time understanding the concepts.

Continue reading

Why Learn Python? Because It’s FUN!

After leaving my job in a big american corporate, I spent some time thinking about how I want my next job to look like.
Browsing job description I came to a conclusion that I must learn a scripting language in order to find a job I like. Seems like most consumer web apps are written using some kind of scripting language. More structured languages like Java are used mainly in corporates (they are calling it Enterprise Java for a reason).
OK, so which scripting language to learn?
I looked for:

  1. A language that would help me find a job I like – it should be used in companies I find interesting
  2. A language that makes it easy to write consumer web applications – Java, for example, does not make it easy to write web applications. It is very good for writing code that interacts with other code but it’s verbosity makes it very hard to write code that interacts with humans
  3. It should be fun to use the language and it should have decent tools and libraries – IDE, web frameworks, etc.

Three very popular scripting languages are – Ruby, PHP and Python.
Javascript is another popular language and with the advent of node.js it can also be used for server side programming. But we’ll not look at Javascript since you must know javascript if you’re planning on doing any web programming anyway.
Ruby is very popular due to Ruby on Rails.
PHP is also very popular. A lot of very popular open source content management systems are written in PHP. Two very known examples are WordPress and Drupal. Facebook also uses PHP extensively.
Python is a little less popular for web applications. But I chose Python. Why? Read on to find out
Continue reading