Uploading multiple builds of same iOS Application - ios

I want to upload two build of same app with little UI changes on app store with different account. Can I upload the builds?
I have an app with multiple client so I want to upload builds for each client with their own account. I have modified the UI for each clients.

Yes, you can. What I do in similar situations is that I use one project for that (as you already have). And then I crate a copy of a target, so that I can customise it (custom logo, custom icon, ...).
To apply customisation in code I take advantage of "Custom Build Configurations". Here on SO I've described how I do this (as of writing it's the third answer to the question) custom Build Configurations

Sure you can, just make sure that the bundle identifier is different.

No issues in doing that. Just take care of the following things which must be different:
Logo
Bundle Identifier (as suggested by Fabio)
package ids of in app purchase items, if any
App preview images/videos
If you are using iAds for showing ads in your app, make sure you do not use the same provider account.

Related

How updating dynamic framework will affect App Store build

I have an app on the App Store and I have to create another app. This other app has some of the same functionalities as the first app. So I wanted to create a framework to put the common code in and use it inside the apps. Unfortunately, this framework has to change to add more features and improvements.
I saw that dynamic libraries can update the library code without any change to an app already pushed to the App Store. But this is reserved for Apple. Also, since iOS 8, we can create a dynamic framework which includes dynamic libraries. So is it possible to have the same, meaning if I update my dynamic framework, it also updates the app without having to push to the App Store again and face app review process?
If not, do you have some clues/recommendation to achieve that?
Dynamic Framework is a bit different from the understanding you have. Please read apple documents in more detail for that.
Currently only way to achieve what you expect is to push code on App Store as hidden, and based on some server API configuration update your content accordingly (Firebase Remote Config is one such good example if security is not that big a concern)

How to maintain one custom B2B iOS app for multiple clients

My company is building one custom B2B app which is quite similar for all clients.
The difference between the apps will be the app's name & icon and perhaps color schema.
Just to be clear - the data in the apps would be different but the layout is identical. e.g. I'd have the same button in all of the apps, but its color maybe be blue in one app and yellow in another.
I was wondering regarding how to maintain this kind of app.
The apps would be either distributed to app store or to clients' MDMs.
Considering the fact I'm going to have hundreds of apps like this - it's not possible to build & submit each of them for every bug fix I do in the app..
Any solutions out there?
If app name and icon has to be different, there is not much you can do - you need a separate binary for each client.
However there is a lot you can do in terms of automating the process, since it looks like most of the codebase is shared between apps. Just to give you an idea - you could have a script which takes some configuration (JSON, XML, etc), Xcode project and then builds and signs apps for each client with correct icon, branding, app name etc.
Essentially you maintain single code base, build tools to provision and distribute the apps and move branding and customisation to a configuration layer.

How to sign iOS project with two or more different accounts keeping only one project

I've recently got an iOS app template with a friend. We want to keep only one code in our bitbucket but we want to create the best structure to sign it with our different Apple Developer Account and also have our own icons, characters , images in general. You can check our iOS template here. It's a native project.
You can do it easily using different Targets in Xcode.
You can define different icon, characters, images, etc. for each target and you will get different apps from the same Xcode project.
Check out this link from Apple Developer documentation.

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..

Bundled iOS app using two IPAs

I am exploring into the possibility of creating a bundled app out of TWO of my apps (app1.ipa & app2.ipa). Is it possible to create a shell app (bundle.ipa) which would load app1 or app2 using their respective ipa’s (app1.ipa or app2.ipa) based on user selection? Or Do I have to merge the source codes and assets on both apps to create a bundled app? Basically, is it possible to load an ipa with-in an ipa?
No. It's not possible to create apps with more then one binary.
Instead of trying to have more than one .ipa - which I'm pretty sure isn't possible - creating a class by which the app can introspect whether or not the person has paid for the app. So if they have, the feature is available, and if not... its not available.
Use Facebook's SDK integration as a reference of how this works: before an app can retrieve items from the user's Facebook, the app must make sure that the user has signed in with Facebook.
I wish I knew of a more precise example, but honestly, this should give you the gist of it all.

Resources