Creating new Xcode project from an existing Project - ios

I have one app with some app name in the App Store, is it possible to create a different app from the same project in the Xcode by changing the info plist values like bundle id ,bundle name etc with out creating a new project.And can i upload the same to the App Store with a different app name.
Thanks.

One way to do this is to create a second 'target' inside your existing XCode project.
There are a number of different target types you can create, one of them being another application.
This new application target then needs a different bundle id etc. However that target can see all the existing code you wrote for your existing app so you don't need to copy the files into another project to reuse them. Use the search facility in Apple dev website, or Google the use of XCode targets for more information about how to do this.

Related

Renaming an Xcode project for an existing AppStore app

I'm in the process of "rebranding" an existing app of mine, which has been on the App Store for 3 years.
This includes a new app name which should be reflected in the whole Xcode project as well.
The rebranded app should roll out as an update for all existing installations.
I've successfully followed the instructions given here:
How do I completely rename an Xcode project (i.e. inclusive of folders)?
(Additionally, I've changed the bundle name in the info.plist.)
with one exception: Changing the product bundle identifier in the build settings. I guess that's the only place I have to keep the old name so that AppStoreConnect realises this actually is the old app?
Is that so, if not, which is the setting that is needed to identify this as the old app?
Your app is identified using the Bundle Identifier only. You should not modify it. You can change almost everything else.
Note that you cannot reset the Version and Build numbers back to 1 and their values should be greater than the last numbers you used to submit your app.

Xcode: sharing the same Bundle ID among multiple people

I'm developing an iOS app with a friend. We both enrolled for the Apple development program as a Single person (we don't have an organization).
We're using git and we'd like to be both able to build the app from our Mac, but I can't compile sinche the Bundle ID is already used by my friend. Is it even possible to be both able to work on the same project without being an organization? What we should do?
Thanks
The problem is that only one developer account can register the bundle ID. What Xcode is trying to do is register the bundle ID to your development account (as you can do manually at https://developer.apple.com). Since your friend already did this, you cannot do this as well.
What you can do is either change the value of your bundle ID to a development one (in the end, only one of you can release the app on the App Store) however, this is kind of messy since it'll change the .xcodeproj and can be a real conflict mess when using versioning (as I guess you are using).
Another option is to use .xcconfig files, and define the bundle ID dynamically in your project. This way you can change your config file locally and just don't push that change. What you do is:
Add a new file to your project. Select Other under iOS and then select Configuration Settings File. Save the file and call it Debug.xcconfig (or whatever you want).
Add the following row to the file: BUNDLE_ID = io.example.app.
Select your project in the Project Navigator and then select the project itself under PROJECT.
Select the Info tab and expand both Debug and Release. For both Debug and Release select the Debug option.
Now open your Info.plist file and change the value of Bundle Identifier (CFBundleIdentifier) to $(BUNDLE_ID).
Now you can change the bundle ID (and a shitload of other Xcode project properties) using the configuration file. You could add one for yourself and your friend as well, each with their own bundle ID.
One problem though when changing the BundleID is that services such as APNS won't work. Keep that in mind. If that is important that both should be able to test, then make sure to get an organisation account.
Hope this helped you a little bit!

What are the best practices for preparing an iOS demo app along with main app?

This question is about the App development/testing process. I've an app on the App Store (say ABC); now I added some features on a separate git code branch and want to show these to my teammates.
I can use TestFlight to install it on their iPhones, although that overwrites my original app on the phone.
I'm looking for the best way to get a new App, say ABC Demo, installed on their iPhones.
If you want the "new" version of the app to work alongside the old version on the same device then each app will have to have different Bundle Ids. You can achieve this by creating a new Target in Xcode
http://www.itexico.com/blog/bid/99497/iOS-Mobile-Development-Using-Xcode-Targets-to-Reuse-the-Code
two finger click the existing target and select Duplicate
Then under the new target change the Bundle Identifier to something different
Go to Targets in Xcode
Get Info on your project's target
Search for Product Name under Packaging. Change it to ABC Demo
Press Enter

Upload update with different identifier

I've wrote a project in Swift and uploaded it to app store.
but then I wanted to support iPhone 4 and iOS 7 so I started a new project on Objective-C but with different bundle id, I tried to rename it but the .xcodeproj file got deleted.
So how can I upload the new project with it's new identifier, written in Objective c, to the same app in itunesconnect?
The bundle identifier must be same for this purpose. Why dont you just change bundle identifier of the new project to the previous one and upload?
You do not need to change the bundle identifier to upload an update, even if you are supporting older iPhone models. But if you have strong reason to change the bundle identifier and want to upload it as a new application, you can still do it. The problem is you have to go through the entire app approval process from the beginning, which will take more time than updating an existing application.
Coming to your original question, you can still create new Xcode project and move all the Objective-C files and give a new bundle identifier and upload it as new application. cannot you?
So i solved this by creating new project, because every other solution i searched including changing the bundle id, didn't work for me

Prevent an iOS app from being updated

I am doing some research to find out if an app developer can set up an app in a way that it can't be updated, at least in some circumstance.
Or in another way: what can be done by a developer in order to create on purpose issue during the update of its own app?
It sounds like what you actually want to do is create another Target in your project. This way, you can have multiple copies of your app on the same device. For example, you could have a dev target that is constantly moving and a release target that you don't want to override.
You can do this by selecting your project in the project navigator, right clicking on your app's target, and then selecting Duplicate. It will create a new target called YourAppName-copy. You can then select your target next to where you select the device/simulator to run on & select the new target. Run the new target & it will install the new target and leave your other one alone.
For an enterprise app, you could support your own app updating (and create a web service to check to see if the app needs to be updated -- or if the user's credentials are still valid, etc.).
For a public App Store app, this is not currently possible.

Resources