Replacement of Apps in the app store - ios

I have got a rare problem at the moment, hope I can get any help from here. Thanks in advance.
The thing is that my company has two apps, outsouced one (named A) and insourced one (B) both in the App Store and running normally. Of cource they are not identical but similar indeed.
There is a decision from the management that we are going to replace A with B, so that there is only one app in the app store instead of two.
Here is what I am thinking to archive this,
1. Pull off/Delete the app B from App store.
2. Create a new version of app A.
3. Recompile app B with A's bundle Id and etc., upload the build to itunes connect under the name of app A. (We have A's certificates and provisioning files)
4. Submit the build.
Has anyone done this ever before? Will apple reject this new app?
Any advice is welcome.
I appreciate all your help, and thanks for reading my post.

If you want to keep both of the app then you procedure is okay. You can give update to B (With A's source). It should work, though apple might reject if they find similarity with those two apps.
Almost similar problem happened to me once. One of our app is currently in AppStore, it was a generic app for one of our client. When we tried to release a new app just changing the images/logos and name then the AppStore rejected it. They said this app has limited feature. :P
Hope this helps.. :)

Related

How do I replace an old expired iOS app with a new app that I built from the ground up?

I have what I believe to be a pretty unique situation and I can't seem to find a solution online. The problem timeline:
4 years ago I paid a developer to build/upload an app to the iOS App Store for me under my own developer account.
Over the years it became outdated and this April it was kicked out of the App Store
I took some online courses this year and rebuilt the app from the ground up.
I would like to post my rebuilt version to the App Store - completely fresh like it's a brand new app (because it basically is)
A couple more things to consider...
I used Swift vs the original Objective-C that the developer used.
I used UserDefaults instead of what appears to be iCloud. (the dev account seems to be littered with permissions for things I don't intend to use - so advice on how to get rid of all of the weird stuff I don't use would be helpful, too)
I also have a different but similar bundle identifier (it replaces "RandomRuby" with "Random-Ruby") that Apple's App ID registration system seems to not like.
The level content and game play are the same - but I have no idea how to figure out what level the previous users were on. (which I'm ok with if it's ethical to make people start over).
It had In-App purchases (they could purchase consumable "Rubies" to use for hints and there was an "Ad Free" upgrade option. The new app doesn't use ads - it just has consumable "Rubies" for monetization). I have no plan to add ads back in - so I imagine a complete reset would be ok here, too? Again - is that ethical?
With all of this context - my question is...
How do I upload a completely-rebuilt-from-scratch app with the exact same name from the exact same company as an expired app through the iOS Developer system? Is this even possible? I'm having a hard time figuring out where to start. I can't even get past creating an App ID.
To update an existing app in your Apple Developer account you only need to use the same BUNDLE ID (e.g. com.apple.keynote) in your Xcode project and a higher version/build number. Everything else is not relevant.
Your previous iOS APP is bounded with the Apple Developer account when it was submitted. And the APP name is unique, just like anyone else may not create another app named 'Facebook'.
So, if the Apple Developer account was not yours, you are in trouble. You need to ask the previous programmer to transfer the APP to you.
If the Apple Developer account was merely expired, and you can prove that the account belongs to you, I guess you can contact Apple Support for help.

CFBundleIdentifier Collision

I am doing an Update to my app. I added a Watch Extension and I had many errors regarding provisioning profiles and so on when trying to submit the binary. However, I somehow managed to get it to work and submitted my update. Today I was rejected because of some small issue. I quickly changed it and now I am trying since hours to resubmit, but now I am getting this error:
CFBundleIdentifier Collision - The Info.plist CFBundleIdentifier value
'com.mentalfaculty.Ensembles' of 'MyAppName.app/Ensembles.bundle'
is already in use by another application.
I don t really understand what is wrong. The thing is, I did just fixed a really small thing, besides this I didn t change anything, I used same provisioning profiles since some days ago when I was able to submit, so I really don t get the problem what has changed from my last submission. I also don t understand this error message: what other application?
"Ensembles" is a framework that does Core Data iCloud Sync. I am using it since two App versions before and never changed something. I just followed the install instructions, and I had to integrate that Ensembles project in my own project. So this framework is kinda a project within my project. It has it s own info.plist. Obviously that error has something to do with it, but since I am not really an expert in these things, I m afraid to change something.
So why was I able to submit two working and approved updates, was able to submit one update binary (that was rejected) and now getting this error all the time although I really didn t change anything and did the same steps when I was able to submit some days ago?
Would be really thankful for any help here !
Thanks !
I am the developer of Ensembles, and started hearing of this error a few days ago. It seems something has changed on Apple's servers, and even bundles that are just Resources, like Ensembles.bundle, must have a unique identifier. It is not clear if this is a new policy, or an overzealous script on their server.
In any case, the solution is reasonably straightforward: you can just go into Ensembles.bundle and change the bundle identifier to something unique of your own. Eg. com.mycompany.ensembles.bundle
Update
Apple seem to have resolved this issue server side.
Thanks Drew for your help again, already helped me with another Ensembles related question in another thread here! Your framework is really great, so easy to implement and it takes away all that iCloud integration pain right out the box. If you want to see your work in action, check my profile, there is a link to my app. Mentioned your work of course in its settings bundle.
Last night I ended up doing exactly that, changing the Bundle Identifier in the Ensembles framework. After that iTunes Connect accepted my built. I was just afraid of changing something there and screw all up, but at least from my tests on my devices, it still seems to work like before... Strange because I uploaded a built just 10 days ago without the need of changing the Bundle Identifier, so Apple must have changed something really recently.
So for others having that problem, what I did:
Ensembles iOS.xcodeproj - Ensembles Ressources iOS - Ensembles Ressources iOS-ibfo.plist
I changed the Bundle identifier from
com.mentalfaculty.${PRODUCT_NAME:rfc1034identifier}
to
com.mentalfaculty.MyCompanyName.${PRODUCT_NAME:rfc1034identifier}
Thanks !

How to get crash logs of Testflight external testers on Xcode or iTunes connect?

Is there any ways to know what's wrong with someone's app. It is working on everyone else's device but this person.
The person tried removing the previous version and installing the new one, but it still does not work. I suspect that one of the files that I place in the documents folder might still be there... but the format of this file has changed since...
Apple has a technote about this named Debugging Deployed iOS Apps.
Also, if your tester syncs up their iPhone with a Macintosh or PC, iTunes also helpfully moves logs into predictable places where they can be retrieved from.
I am attempting to solve this logging of execution in TestFlight with the following simple approach...
In in-App Billing you really have to use TestFlight, so the problem is serious.
The "print("text") statements can be replaced in the code to calls to a func printTestFlight(text: String) which writes the strings to a database along with some identifier so you know the user.
This is quite simple and obvious, and to an extent it works.
If there are events which are logged by the os rather than teh user, then this approach misses those, notably the interesting ones around a crash. I'd be happy to hear from anyone who knows how to do thiso

Can a Bundle ID be reused for a different app within the same iTunes Connect account?

My client is planning to release an iOS app (call it A) on the App Store which only has value for a limited time (say, a few weeks). After that time, they want to release another, basically completely different app (call it B), with functionality that is related to app A, but much more general. B will be built from scratch and will reuse no code at all from A.
They want to release B as an update to A, so as to retain their user base. Technically this should be no problem: we can change name/icon/metadata, as long as we keep the Bundle ID the same. But will this be a problem with the review process? Could Apple decide that it would be confusing for the user to release a completely different app as an update to an existing one?
So a different way of putting my question would be: can we freely reuse a Bundle ID for a different app within the same account?
Does anyone have experience with this?
What you want to do is absolutely acceptable. I don't see any reason why Apple would reject your app.
I personally recently updated an app with a new icon and a new name.
Granted, I kept most of the features from the previous version, but I really don't see Apple rejecting an update based on "it's too different from the previous version". Also, you often see notes in updates saying "rewritten from scratch", so this is also perfectly valid.
Technically you can do this, and lack of code re-use is irrelevant.
I have written and submitted apps that have have had their codebase completely replaced over their lifetime.
I've also changed an app's icons and name, so all the component parts are definitely OK to do.
You cannot reuse a bundle ID. Your best option is to just update the app. The review process accounts for major changes like this, so it will most likely be a longer review time.

How do I submit an app to iTunes yet have it in my client's name?

I am building an app for a client and they want to submit to the App store under their name. I'm assuming they have to buy the $99 app license. Must they have a Mac with Xcode installed to do so? Do they somehow set it up and allow me access to submit the app / update the app / etc? Should I bring my MacBook to them and have them create their account on my computer? Does that even make sense? I've created a ton of apps but haven't submitted any to the app store yet so I have quite the learning curve to go through. Any tips / suggestions / etc are appreciated. Thanks!
If your clients want to upload the app then hey need to have their own developer license in order to upload the app to the App Store. They don't need to have a Mac since they can use app loader if they are using windows. There is no need to set you up for uploading unless they want you to do the job in that case they have to include you in their team development and let you take care of the uploading. I don't think your MacBook machine is needed unless they want you to do the whole thing so no. And no bringing your machine to them does not make any sense. I hope that this answers all of your questions Ryan. And + 1 for asking a good question although it is not a programming question. :)

Resources