Creating accounts without credit card/PayPal

seank37's picture

seank37

Joined: Jun 13, 2013
No votes yet

If this was asked before, please excuse me. I couldn't find a mention of creating accounts withouot credit cards or PayPal accounts. Apple lists a "None" option, but I don't see that in iTunes when building the script. Ideas? Working off of 10.8.4 and iTunes 11.0.4. Thanks.

Sean Kersey

Top
Eight_Quarter_Bit's picture

Eight_Quarter_Bit

Joined: Jan 27, 2012

The method to the madness

Your rating: None

Yes, that option is supported, but there is a trick to it.

If you try to create an account by clicking the "create account" button, or by starting the account creation process "normally", you are locked into providing a payment method. Personally, I think this is dumb, but that's the way it is.

To create an account without a payment method, you actually have to attempt to install a free application with no Apple ID signed in. This kick starts an account creation process that does not require a payment method.

This is why there is a pre-bundled "kick start" section included with AIDAB, but if you are using a non-US store or are running in a language other than English that doesn't help you much, because the pre-built kick start is inherently US/English-centric. Not to fear though, you can easily build your own kick start using the default actions. Here's how:

First, launch iTunes and sign in your Apple ID. (you don't have to do this through AIDAB, this is just getting us set up for teaching AIDAB)
Next, launch AIDAB, start constructing a new process, and select "click a menu item" as your first action
Walk it through the steps of clicking the store menu, and SIGNING OUT your Apple ID

Unlike other actions which flag an account as "failed" if the action couldn't find an element to click, the menu clicking actions are designed to be fault-agnostic. In other words, if it fails to click a menu item (for instance if an account is already signed out) it ignores the failure and progresses to the next step. Because of this, we build this menu action to make sure no Apple IDs are signed in, but if it fails (for instance, because all accounts are already signed out) we don't really care.

Next, we are going to have AIDAB load a free app, so we can start our kick started free account. Rather than scripting this with button clicks right from the ITunes store home page (which would be horrendous, and break really, really easily) we can just tell iTunes to open an "itms://" link that points to a free application, which will take us right to the point were we can click the "free" button to "buy" an app. Because no Apple ID is signed in, this begins the creation of a new Apple ID with no payment information tied to it. There is an option under the actions menu of AIDAB just for loading app links, and it's pre-populated with the link to iBooks (the free app that I use for starting all my account creations.) Just add that as an action, and from there you just continue to add button clicking actions to walk the rest of the setup process along (clicking the "free" button, then the all the EULA agreement whatsits, etc.)

My apologies for not documenting this before now. After you go so far down the rabbit hole, you forget that not everyone knows proper mad-hatter tea party etiquette.

I also need to document some known bugs, and some requirements for the app. I will try to do that this weekend. Again, my apologies for leaving it so poorly documented up until now. I'm sort of the "implement anything" guy at my job. Some days I'm a server admin, other days a network guy, sometimes phone support, iOS guy, Mac guy, or even just a cable runner. In-house-developer is just one of my many hats, and one that I get to wear only infrequently. This was the main reason I decided to release this tool for free and open-source, since I firmly believe that if you can't deliver a professional experience, you shouldn't be professionaly compensated. Currently, my lack of time equals slow support and development, at a level I consider unprofessional. In other words, "Downloaders beware! There be undocumented dragons here!"

Nevertheless, I want to do all I can to make sure the tool is as usable and effective as my free time allows. I'll carve out a chunk of this weekend to cover some of the stuff that has been missing so far.

For now, I have to get back to decrypting my Mac's boot drive and fixing a kernel panic loop. (It's a long story...)

Written on my iPad (in other words, please excuse the typos)

Top
seank37's picture

seank37

Joined: Jun 11, 2013

Thanks for the help. This

Your rating: None

Thanks for the help. This answers a couple of questions. I was using all the defaults in the AIDAB because I didn't know exactly what it was going to do, so. Noticed it was selecting the iBooks app. So according to what you're saying, the creation from that point should have allowed me to create an account without a card or PayPal. It didn't. Was it maybe because I was using iTunes 11 instead of 10.7? I saw that piece of the requirements later. I'm going to run through it again tomorrow to see if the makes a difference.

Top
Eight_Quarter_Bit's picture

Eight_Quarter_Bit

Joined: Jan 27, 2012

(insert clever title here)

Your rating: None

Nope. As a matter of fact it only works with iTunes 11 at the moment.

Are you clicking the button labeled "Free" on the iBooks app to start the process of creating an account? Or are you clicking the menu item?

Top
seank37's picture

seank37

Joined: Jun 11, 2013

OK, I gave it another go this

Your rating: None

OK, I gave it another go this morning. Maybe I was using the "Sign In" button instead of the "Free" button? Either way, it worked this time and I was able to select "None" on the credit card screen where I was not able to yesterday. Thanks again for your help. This has saved a ton of time and energy. Thanks for making this tool and keep up the good work.

Top
seank37's picture

seank37

Joined: Jun 11, 2013

Example CSV

Your rating: None

Would you happen to have an example CSV file that I could look at to figure out how to format mine?

Top
Eight_Quarter_Bit's picture

Eight_Quarter_Bit

Joined: Jan 27, 2012

Examples

Your rating: None

There's actually a function for that, built right into AIDAB. When you first start building a setup process, instead of choosing to import a CSV with headers, you can choose to "use default headers". This is pre-populated with every header definition I thought might be needed for the average setup process. After you finish constructing a process, you can export the headers that are required for that process by launching the constructed process, selecting the "tools and options" button, and then "view and export required headers".

The reasoning I had behind having an option for a "default set" of headers, or, on the other hand, being able to import an existing CSV during construction was so I could meet two different use cases...

On the one hand you might have a user management system that can output to a CSV file, and you don't want to have to go to the trouble of editing the CSV down before sucking it into an AIDAB constructed process. This is perfectly kosher, because any processes constructed by AIDAB dynamically locates only the columns it needs from any CSV file you load, based on the "header" text for each column. This header has nothing inherently special to it. It just happens to be the first line of the CSV file, and instead of containing user data it's just names describing what that column of data contains (like "first name" or "email address".) This saves a step of having to manually edit-down a CSV after exporting it from your user management system. "Extra" columns in the CSV file are ignored, and even the arrangement of the columns is totally flexible. One of the first things the constructed process does after loading a CSV file is look at that first row, and tries to match the text in each cell to the text you said was a "required column". It verifies that all the required columns are present, what positions they are in, and then saves that mapping for when it starts to iterate through the actual user data of that file. It builds this for every single file that is loaded, even if you pass it multiple files at once.

On the other hand, maybe you don't have a CSV file from your user management system on hand. Maybe you want to construct a setup process, and then later design your CSV file filled with user data to match the header names you chose while building the process. That's what the "use default headers" option is there to help you out with. It's a pre-populated list of every header you should need, available for you to pick-and-choose from. Once you've finished picking the headers and your constructed process is exported, you can launch the process and export the list from there. This keeps every process you build self-documenting on just what it needs to build a slew of Apple IDs.

If you're asking about what actions you should reference the CSV file for, and what you should construct as an "always perform" action, use these rules of thumb:

  • If you think you will ever want to enable or disable an option for a user, reference the CSV file. The "Apple News" and "Email offers" checkboxes are a good example for this. Maybe at some point in the future you will want some of your users to have this option enabled, and others you want it disabled. If that's the case, reference the CSV file. This way you don't have to re-build the setup process in the future, should you change your mind. The disadvantage to this is if you are hoping to pull a CSV right from your user managent system, chances are you aren't going to have a column with "checked" or "unchecked" written in to match the values you want. You'd have to pre-process your exported CSV to add that column and its values, before importing it into an AIDAB constructed process.
  • If something is going to change from one user to another, reference the CSV file. First name, last name, etc.
  • Conversely, if something never changes (like clicking a next button) don't bother referencing the CSV. At that point it would just be needless overhead.

Some conceptual things to keep in mind, and some caveats:

  • All logic about which element to interact with is hard-coded into your constructed process. You can't reference the CSV to have a constructed process click "x" button or "y" button based on a value in the CSV file. For instance, if you want to create some accounts with no payment info, some accounts with a Visa card, and some accounts with a gift code, you would have to create three different processes and split your CSV data into three different files to match the different processes. Why? Because with that scenario we aren't setting a single fixed element to one value or another (like a checkbox to checked or unchecked, or a pop-up button to this or that,) we would have to decide between one specific button or another totally different button. We can't change what element we are setting based on the CSV, only what to set an element to. The reasoning for this is deeply rooted in how AIDAB saves element references, how it builds its lists of elements, etc. It's posible that this could be added in the future, but it wouldn't be as easy as it sounds.
  • Pop-up buttons are evil, evil things. You have no idea how many times I cursed the existence of pop-up buttons while building AIDAB. Because of their inherent evil-ness, try not to set a pop-up button if the previous action loaded a new page (in other words, don't set the pop-up button first on new pages.) AIDAB can get confused about what pop-up button is what, because they are slippery little buggers that defy easy identification. Some times, if you set a pop-up button as the first thing on a new page, and there just so happened to be a pop-up on the previous page that was in the same UI element path, AIDAB can get really confused about if the page has finished loading or not, what button it's setting, etc. Depending on the speed of your Internet connection, machine, etc. you could wind up with a lot of "failed" accounts, simply because AIDAB tripped over its own feet.
Top

Who is online?

There are currently 0 admins, 0 users and 9 guests online. Connected users: .

Recent Activity