How deploy two different apps in ios without having them overwritten - ios

I want to have two version of the same IOS app to stay in the same time in the same device, one for testing and the other for production.
The app is built using phonegap build, so what I have done is
using two different bundle id specified in build.xml (edit: config.xml), so that one is dk.xxxDev.mobile, and the other one is dk.xxx.mobile
having two different apps in the apple developer page, so now I still have the previous one for dk.xxx.mobile and the new one dk.xxxDev.mobile
building using two different provisioning file, one for each app (one is using a developer profile, while the other is using an ad hoc certificate, but i guess we don't care about it)
Still, every time I deploy using itunes or testflightapp, one app overwrites the other one! What am I doing wrong?
edit: I Also changed
- the tag "name" in the build.xml (so that testflightapp can distinguish them )
- I'm using different filnames when I add the app to iTunes

Can you check if the 2 versions of the app generate are using the same IPA file name?
The file naming convention for the Mpbile Apps is as follows:
app_name.version.IPA file
iTunes in the Mac or in the PC store the mobile apps in IPA format and if they are using the same name, installing one will override the other. This is a valid question for Apple Support and this is something that a future version of iTunes may fix.

I was doing something different from what I wrote, I was probably using the same certificate for both versions.
So doing exactly what I wrote, it is supposed to work.

You need to change bundle identifier of one of the apps
Select Project in Xcode, then select target and in general tab you will see bundle identifier string.
e.g. com.YourCompane.AppName change "AppName"

Related

Application Loader - build pushed on wrong app builds

i explain my problem.
We are two applications with the same name "MyApp" currently created on the itunes connect dashboard.
We did able to create two application with the same name using a different language localization (one in english and the other in native italian). Over this, applications are distributed to different countries (so the swiss - aka ch - version won't be visible to the italian - aka it - users).
Problem Context
The problem is related to the application upload: i'm using the Application Loader software to upload the respective ipa (myapp.1.0.9.prod.it.ipa and myapp.1.0.9.prod.it.ipa) to their remote application project dashboards.
What's wrong?
When i'm publishing the app for ch (myapp.1.0.9.prod.ch.ipa) and the process end correctly, if i open the TestFlight tab for the ch app, i'm not able to see my build but instead, it's result available for the it version.
How we distinguish apps in the project
To distinguish rightly the application, we performing a general renaming of the package name inside all project files to aim this situation:
myapp.1.0.9.prod.ch.ipa with package name "com.myapp.domain.ch"
myapp.1.0.9.prod.it.ipa with package name "com.myapp.domain" (considered as default)
Goals
Publish current ipad downloaded to its app project.
Limits
Please don't provide me solution that include itunes with the Archive menu, we cannot do it manually due to a builder dependencies that will be very pedantic without builder's feature.
Thanks in advance for your help!!!
Simon
You mention that you are changing the package name. I'm not exactly sure what you mean by that but you have to be sure you are setting the correct Bundle Identifier, or CFBundleIdentifier in your Info.plist to make your ipa upload to the correct iTunes Connect application.
Can you take a peek inside your generated .ipa and make sure you have the Bundle Identifier set as you expect?

Can I submit same app with different name on iOS App Store?

I have developed one iOS app but I have about 10-13 clients whom I will be selling this app. So, the app is one and I will just change the name on all apps and publish it from same account. Is it allowed by Apple? The source code will be same and the name will be different on apps. The app is built to sale copies to client so it is allowed?
It is possible, but Apple won't be happy about it, the proposed way to do this is to license your apps to the clients instead of placing them on the public app store.
Source: https://forums.developer.apple.com/thread/7825
Apple does allow one App with different names for different languages.
https://developer.apple.com/internationalization/
So you might use a little trick, where you only "translate" the name of the app and leave everything else as it is.
Yes you can submit the same app with different name.
You just need to create the different targets of the same app. Bundle identifier will be different but the source code will be same.
Here is the link for guiding of target creation-
Multiple target creation

Deploy two seperate iOS apps via PhoneGap with the same certificate/provisioning file

We'd like to deploy two apps onto our iPad, using the same code base and configuration. The only difference being one points to our test environment, and the other to our production environment.
I'm using the build.phonegap.com service (this may or may not be relevant), and so far I've tried to change the Name and Id (i.e. com.company.app) in the config.xml file, but everything I deploy and download, the app overwrites itself. As mentioned above, we want two apps at the same time on the device, pointing to different environments.
I have a hunch that I may need to use a different certificate for each app (so that it is built with a different bundle id i.e. com.company.app)
Any thoughts?
You definitely need to build each app with a different BundleID if you want them to show up as separate apps on the device. However, you can use the same certificate/profile as long as you set up the profile to contain both BundleIDs, or some wildcard that will match both BundleIDs.

Submitting a branched iOS project (same project name) to app store process

I have a base project, which I would like to re-brand and resell for clients. So my question is: When I branch and create a new project obviously it needs to be a separate entity from the main. Is the only thing that separates these apps during submission the Bundle ID?
Since renaming projects can sometimes be a pain, what I'm doing is:
Creating the branch
Opening it in XCode and changing the Target name, and this changes the bundle ID because it's set to com.whatever.${PRODUCT_NAME:rfc1034identifier}.
So I'm wondering when submitting a new project, is the bundle ID the only thing that needs to be globally unique? or are there more attributes that I would need to change for each new branch/project?
Thanks
From my experience, only the bundle ID needs to be different.
A few things you should notice though:
You probably want the app splash screen / icon / icon label to be different between clients too
Under Build Settings your Code Signing Entity might need to be different too. If you have certificates+provisioning profiles which are specific to the bundle ID, you would have to create new sets of those for every client and use them when building
If you see that you're starting to change resources (like the icon / images for branding / string tables) between clients, using multiple projects and a shared static library may be easier for you. Take all of your shared code and convert it to a static library iOS project, and then create a separate project per client (normal iOS app project) which uses this library. This way all the metadata (like bundle ID, certificates, icons) can be different, and the code be the same.
If your app defines any URL schemes (for example, if you implement login with Facebook you need to do this), these schemes should be different between clients too. If they are the same, you are bound to have collisions when a user installs 2 apps on their device.
And one last tip regarding Apple policy:
If you are planning to submit all of these client apps under your developer account, this may be against Apple policy and your apps might be rejected. Apple wants you to open a dev account (and pay the $99/year) per client..

iOS: Running different apps on device

I'm a novice iOS developer and got my iOS developer program account, I setup the iOS certificate and Provisioning Profile and I can run my test app on my device(iPad). My question is if I want to run different test apps(imagine couple Apple sample codes) on my device without replacing the last tested app on my device(I mean keep all of them on my device at the end of test) what would be the trick here? I know each app has it's own bundle identifier, but how to manage this scenario for running all of them on the device with the same iOS Certificate/Provisioning Profile?
Just change the Name of the project and it should refactor. Change the name on the root of files & folders in xcode. You can click on it and it'll let you change the name. In Build Settings Properties change the name under there as well. Click at the very top of your list of files where it says the name of your project and it'll bring up the build properties.
If I understood you correctly, there are two parts of your questions:
Yes, you can run many (distinct) apps on your device.
To have multiple version of the same app running on your device, all you need is change app's product name to a different name, app1, app2, etc. It is a relatively easy process to do it. This SO Q/Aenter link description here has the instructions. You do not need to rename your project or any thing else. Just make a copy of the project and follow the instructions to make a new product name.

Resources