iPhone development on many machines - iphone

I have more than 1 Mac, and I would like to do development on all of them. I know I need to sync my phone on each machine, but that is the least of my problems. It looks like I am not able to run apps on my phone except apps that are developed on one of them.
Is there any (sensible) way to be able to use both my MacPro and MacBook Pro?

I use a MacPro and a MacBook Pro for development with no problems. Make sure you have the same certificates, mobileprovisions, and (obviously) code on both machines. I find it useful to use Keychain syncing via MobileMe.

have you installed the certificated needed from all machines, maybe you forgot to add the certificate from one.

You can copy your signing certificates from one machine to another (via Keychain).
You do not need to sync your iPhone to both machines; XCode can install and extract your app on any phone, not only the ones that sync to that machine.

As the others have already said make sure you have the same sure you have the same certificates and things on both machines.
Recently I stumbled across a great way of making sure you have the same code on both machines, use DropBox. Its free for the first 2GB and will keep your source code on both machines exactly the same, meaning no having to remember to copy work around. Its super simple and in my experience just works.

Related

Monotouch and Hackintosh

I have developed an app on monotouch-5.2.5 evaluation version.
Now i want to deploy on Apple Store and to do it i have bought a full monotouch version (5.2.10) and i have installed all certificate and provisioning profile.
When try to build my app i have the following problem:
mtouch exited with code 99
i have this configuration:
monodevelop 2.8.6.5
mac os x version 10.6.7 (is an HACKINTOSH)
Do could it be a incompatibity problem beetween HACKINTOSH and MonoTouch?
...This it'll seem strange because i've develop on it without problems.
The Xamarin.Mac / Xamarin.Ios licencing does some kind of hash of the Mac hardware to give your machine a unique ID. This locks the MonoTouch licence to your machine.
I know previously when people have changed hard drives etc. it has broken the key, this is because they use the Hard drives serial number as part of the hash. They may also use hardware MAC addresses and other IDs.
I imagine something they use in a Genuine Mac is not available in your Hackintosh.
Xamarin states on their website they do not support Hackintosh. They claim it is too hard to ensure their compiler works properly in such a system, but they do not stop there. They also make it impossible to install a key on a Hackintosh or on a Mac running in a VM!
I can understand they wont provide support for issues happening in such an environment, but to force developers to buy a Mac is a bad move. Especially considering a lot of their customers choose Monotouch exactly because they are comfortable with Windows/.net already and are not eager to migrate 100% to Mac OS, it is pretty obvious many prefer to work in a VM or use their existing PC hardware.
I used the trial version in a VM without any issues whatsoever, so whatever technical issues they might be worried about seems irrelevent. So I think this is more a political issue than a technical one.
I can only hope they will change their policy, or that someone gets annoyed enough to crack their compiler so that we can all use it the way we prefer.
I have a Hackintosh, I just encountered the same problem, and I also can not login app store, because ethernet card not built-in, I modified the DSDT to complete built-in, it is OK.
It is obvious that you need to contact Xamarin Support because they know better whether this is the exact problem or not. but....
A Statement in Xamarin Page demonstrated that it is impossible to use MonoDevelop/MonoTouch on Hackintosh.
I have some misunderstands that I need to know:
1. What do you mean building? (Bundle/Deploy to device/Build on Simulator)
2. Did you tried deploying to device?
I googled this issue and there are many that had this error code, but their problem was MonoTouch Activation, I think you can reactivate MonoTouch to make sure. (if you want to build on device)
But I do not attribute this error code to Hackintosh, because one of my friends-who is working with Unity (Mono) on Hackintosh, can easily build on device.
Regards,
Peyman Mortazavi

Allow multiple Macs to work on the same iOS project

I need to know how to allow 2 Macs to work on the same project.
Currently the app is in the app-store and only 1 mac is working on the app.
I want to add a new developer, i.e. new mac, to the project.
Please provide me with a simple, step by step, instructions I need to do in order to make this work (regarding certificate, key-chain, bundle, etc).
P.S.The app uses push-notifications as well, does a new mac will damage the push notification mechanism?
I came across Developing iPhone app on multiple Macs, it didn't really answer my question. I want to know, from Apple perspective, what do I need to do in the new mac in order to build the exact same executable from both machines. (and not harm the current push mechanism).
Thanks...
There is a tool called version control. You could use git or SVN or Mercurial.
When compiling (with your company Apple Developer account) your code will be identical on both Mac (if you updated on both sides). Actually, my own code is indifferently compiled on my iMac, my Mac Book Air or my girlfriend's Mac Book Pro.
Make sure the 2nd Mac has the same iOS Development tools and SDK installed. Export your Developer and Distribution certificates from the first Mac. Create a new User account on the 2nd Mac and install the certificates there. Copy your project and all source files ( including the app's plist, xibs, resources, etc.) to the 2nd Mac (or, if you are using a version control repository, check out a fresh copy of the desired revision).
Push notification have nothing to do with the Mac used for building an app. If the 1st Mac is acting as the push notification server, it can still do so for apps built on the 2nd (as long as you don't change any IDs, etc.)
versioning :) http://en.wikipedia.org/wiki/Revision_control
basically, you have a common box where to store your in-developement files (called "repository")
this repository has some features like version rollbacking, conflict and modifies tracking, bug tracking and so on...
the idea is simple: you have your files and your online repository, you add those files to your repo. i then join the project and grab those files (operation is called "checkout"), modify a bunch of them and i perform an operation called commit: this operation checks my version merge the modified files with the one online. You then "update" your local version: if you didn't modify the same lines i did, there's no error and you succesfully update. If we modified the same line, and there's conflict, the update process breaks. You can then see where the error appears, and resolve it with a diff tool (http://en.wikipedia.org/wiki/Diff)
Pretty easy as concept, pretty fundamental for us developer. You can have how many people working on the same project without problems. You can work on separate bits of code without the need of the other. You can work on the same file without generating conflicts.
Google hosting and Sourceforge are two great example of repositories (you may also want to check out Git which a little bit different)
so, briefly: SVN is the answer you need :)

Developing iPhone app on multiple Macs

This is probably super dumb, but can I use multiple Macs with different development profiles to make apps? If I take my friend's Macbook on travel, who also is a developer and has his own development profile, can I use my own developer profile on it to work on my apps without interfering with his? Thanks.
For sure, as long as you install your provisioning profiles and emit new signing certificates.
I'm not aware of a way to export custom behaviors of other Xcode 4 configs, but that should not be a big problem.
After your trip is over, you can delete you provisioning profiles.
You can share a single project on multiple Macs (each one having their own signing identity, or sharing the same Keychain items if they're both yours).
You can also use a single Mac to work with multiple signing identities.
I do both regurlarly as I'm enrolled in two companies that develop iOS apps; in both of them we're at least 2 developers having our own machines.
For your part, if you're borrowing a friend's Mac, I highly recommend to clone your Keychain's private key and certificates into this "new" Mac where you'll create a new user account, then delete this user account when you'll give it back.
(Posting as another answer as it's not quite the same subject)
In any case, you'd better use some kind of source control such as Git (included with XCode) or Mercurial. Create a working copy of your project when you're off with your "roadwarrior" Mac, then merge when you come back.

Any trick to having multiple iOS development certificates?

I've been doing iOS development for my own company for a couple years. I now need to work on a project for another company. They've made me an admin under their account and I'm staring at the "development certificates" page. Back in the bad old days when we first started doing iOS development there were complaints that you couldn't have multiple developer certificates without screwing things up.
I don't mind jumping through some hoops to get set up for the new company but I don't want to risk messing up my primary configuration for my own development work. Is it really as simple as just going through the steps again to request and download another development certificate and the two can live side by side?
Yes, it really is as simple as that. Make sure you name everything properly and things will work like a charm.
I currently have three different certificates linked to my developer account and never got into trouble.
Edit: Ooops, recounting, its a lot more as I do have some customer-of-customer certs linked as well.

How to read iPhone files without jailbreaking?

I'd like to access files in an iPhone, such as using remotely connecting via ssh and telnet. But it appears that the iPhone's ssh or telnet are not supported. I can ping it, but cannot use telnet or ssh.
I read through some internet article, it appears that using jailbreak or Cydia it is doable, but I guess it would break my iPhone's license.
Is there an official way to ssh or telnet into my iPhone?
You can't just access any file in a non-jailbroken iPhone.
You can access data files for your own programs during development using Xcode's Organizer, go to Devices -> your iphone -> Summary -> Applications -> your app, click on the triangle thingy to show the Application Data, which you can download.
Otherwise use something like Airsharing (see moogs' answer which came as I was writing this) to upload&download a bunch of files.
I loved ssh-ing before, but Airsharing is even better. You can upload files via a wifi connection to your ipod (using a browser or via webDAV). It was free for the first few weeks, but now it goes for $4.99. That's still not bad.
You can view office, image, pdf and html files.
(I'm not affiliated with airsharing, just a happy user :) )
No you can't. You have to jailbreak to do that.
Even when not jailbroken, you can access some part of the filesystem with iPhone Broswer
I was very surprised and please with iPhone Explorer. It's one of those softwares that just work and needs nothing installed on the iPhone, but it will give full file access if your iphone is jailbroken.
Now, of course ideally we'd install something on the iPhone without needing anything on the computer and access files on the iPhone like a pen drive (and unlike some apps that do that but only through HTTP and wi-fi), but this is fairly good enough. And it's free! Because they use it to promote their other apps, and file exploring on iPhone is nearly useless for most users anyway.
There's just no way jose in hell to access all files in the iPhone without jailbreaking. Period. Apple have never allowed it.
Try using iFile I have tried all the others and this one is my favourites.
Hope this helps you.
You can do it with iFunbox, but you dont have access to edit, move , delete the system files , so you dont have full access to have full access you need to jailbreak your iDevice.