Developed an app on my personal individual developer account, what is the best way to release it on a new organization account? - xcode

I've been developing a Swift app for a while now on my own individual developer account linked to my longstanding everyday AppleId - so the AppleId also has all my bought music, apps, appleTV and other content etc etc. As I have developed the app I have realised that it has considerable commercial potential, and so would rather release it under an organization (a private limited company) than under my own individual name.
The app itself is relatively straightforward, it is self-contained other than having a single non-consumable in app purchase. I have not yet uploaded the app to AppStoreConnect, although I have set up the app name and the in app purchase on AppStoreConnect for testing purposes. I would like to release in the quickest way possible now. Using XCode 14.
What is the quickest, most straightforward and trouble-free way to achieve my goal? Should I:
Release it under my own individual developer account and then ask apple to change my individual account to an organization account? Are there any complications with this given that this dev account is attached to my personal AppleId? How long does it usually take Apple to achieve the change? Does the App remain on sale throughout? Are there ever any problems or is there anything else I should be aware of?
OR
Set up a totally fresh AppleId and create a new developer account for the organization on this id? (I appreciate this will cost extra money but am willing to bear the cost). If I do this, how do I transfer the app from my individual account to the organization account? Do I have to go through the Apple 'transfer an app' process? Are there any pitfalls with this? When the transfer is complete, how do I alter my XCode set up to continue working on the app under the new account? Also, as I have not yet submitted the app to AppStore (although I have set up the name / IAP ) can I simply use XCode to point the app at the new account and upload it to that instead without invoking the Apple 'transfer an app' process - how would I alter my set up on XCode to achieve this?
I am currently in the process of setting up the company, and should have necessary info eg DUNS no etc fairly shortly.
While I'm familiar with development itself and I've already released one paid app on the AppStore under my own individual account attached to my everyday AppleId, this seemed to be a relatively simple and automated procedure. My main difficulties with my current problem seem to stem from the fact that I have never worked as part of a swift development team, and I understand very little around the actual 'architecture' of app development, eg XCode signing / teams / bundle ids etc, and I'm really struggling to understand the technicalities of the connection between XCode / Developer Account / AppStore Connect / AppleID.
I've looked through other posts on this topic but most seem several years out of date, and I am aware that AppStore functionality in this area has changed over the years.
Any help would be greatly appreciated - particularly if you can recommend which route to go down and answer any of my specific points. I have tried asking Apple, but all I get back are standard replies directing me to their app transfer process - unfortunately though I'm something of a solo outfit and I really need the benefit of people's experience here, as I need this process to go quickly and smoothly!
Cheers!

Related

How do I sign my ios app under my App Store Connect Team, not myself?

So I just spent all weekend debugging and building an app for my client. I don't have my 100 dollar Apple Developer License anymore, so I can't upload it. I thought my signature would just be under my client's team automatically after they added me, but I guess not.
How can I sign the app as my client's team, so they have it, and I can upload to their dashboard?
I can't seem to be able to Google the right thing to find an answer.
Oh, and secondary question; could I just get the team license under my name to sign it, so I don't have to re-achieve it again? Not a huge deal if I have to wait again, but it would save me some time.
Edit: I did also directly ask Apple's support team, but I figured I would ask this here incase a fellow dev had an answer for me. I can't be the only freelancer who's had to build and push an app for a client. Cheers!

As a macOS dev, if I stop selling my app in the App Store, will I still be able to issue updates to users who initially downloaded the app?

Edit: My question may not have been clear: so I'll rephrase:
I'm asking: is there a way to update my app through the App Store (continue to push updates to users) if I decide to stop selling my app?
Original question:
I'm a mac dev assessing whether I want to sell my app through the App Store.
One question I had was, if I ever decide to stop selling through the store, will I still be able to issue app software updates to the initial users who downloaded the app.
Hopefully this is an easy YES. This seems important to me because if the answer is NO, then Apple's kind of locking the dev in to keep selling the app.
Define "stop selling the app". Meaning you are offering it for free, or pulling it from sale in the App Store?
If you are offering it as FREE, then YES, you can still issue updates to new and existing users.
If you pull the app from the App Store by "Remove from Sale", then NO, your app will not appear in the App Store, and the same goes for updates, you will not be able to push any new updates until it becomes available in the store again.
Apple does not want you to offer your app outside of the App Store. Back in the day you could provide it as an unsigned developer binary and Mac OS would complain, but allow you to install. Apple is now making it harder if not soon impossible to do this.

The new Test Flight is worthless for adhoc distribution. Any work arounds?

I finally got an invite to an internal tester to work using iTunesConnect and the Test Flight app. I find that for adhoc distribution this is simply not going to work...
30 day expiration is way too short.
In the old Test Flight, a tester had multiple devices. With the new test flight each invitation is good for only one device. If you try to use the invite on a different device it says it is already in use.
I don't see any work around for the expiration period, any ideas on a workaround for the second issue, or am I doing something wrong? Is there a way to add devices to the the user account.
Perhaps, this is not the vehicle I should use for my adhoc distributions? Other suggestions are welcomed.
The new TestFlight works better than the old one for multiple devices. The invite only works once, but it's tied to the Apple ID you use it with, log into the TestFlight app with that same Apple ID on another device and you can just install the app. Don't try to reuse the invite.
I personally find the Internal testers useless though, since you have to grant those users access to your iTunes Connect account. There's a work around where you can use your own email, something like "me+user1#whatever.com" and have the invite come to you, then you just forward the invite link to the user you want to use the build and not have access to iTC, but that's a pain.
The best plan is, send the app for TestFlight review, get it approved, then add all of your testers as External testers. You can submit new builds without going through review each time by keeping the version number (CFBundleShortVersionString) the same, increment the build number (CFBundleVersion), and checking the option that says "no significant changes for this build".
If you don't need to support iOS 7, the new TestFlight is way better than the old one. With the initial review being the only downside.
Here's a quick guide that explains what you can do with the New TF:
New TestFlight • Quick need-to-know guide
There are two ways I can think of.
Get OS X Server and add the phones individually to your Provisioning profile. You will be limited to 100 phones, but any of those phones can login to the server and download the latest build on to their device.
Get an Enterprise account. You can't release to the App Store with an Enterprise account however.
You can import your devices to testfairy from test flight
https://app.testfairy.com/testers/testflight-export/
This I haven't tried yet.

a replacement to ad-hoc on the appstore

My company needs to upload an app to the store , that will only be available to 80 people over the world that will get the permission to test it.
The ad-hoc method requires their iphones id's to be register with the app, and obviously we dont have it.
Whats the best way, to upload the app to the store ,to let this people to get it ?
(NO, without just go to the review process of apple)
thanks.
Besides the enterprise developer program, Ad-Hoc distribution is the only way to limit your audience.
If you try to game the app store with an unreasonable high price and promo codes (limit of 50 codes per app version) Apple will kick you out of the review process in no time.
Use testflight to get device IDs easier and deploy you app to the testers.
There is no way to do that, for the Adhoc, you must register their UDID devices.
You can upload the app in the AppStore, put it's price high, and give the prople that you want to test the app a redeem code that will download the app free, but i think the number of redeem code you have is 25. If you find anyway to do that, share it with us please.
If the 80 people that will be testing/using the app are employees of the company, you should look into the Enterprise Developer Program. Enterprise development lets you deploy an internal app to employees of your organization that is not released to the App Store. It essentially lets you build an Ad Hoc like version of your app that can then be installed on devices without the need to get UDIDs.
The cost is $299 instead of the normal $99 and there are a few caveats on whether or not your organization qualifies. But if you do qualify, it vastly simplifies deploying an internal app and it gives you specifically what you were asking for - no review and no need to ask for UDIDs. You can put the signed bundle up on a website and simply give people the URL to it for OTA installation, so you don't even need iTunes.
Alternatively, if the end users are not a part of your organization, you can also look into developing Custom B2B Apps. This one comes with a few more hoops to jump through and it also requires an Apple review, but it allows your app to be sold only to specific customers and doesn't put it in the App Store. If you're already a developer with Apple, there's even a WWDC video on it.

Check if Mac App was taken from Mac App Store with Cocoa

I'm trying to give a license to all the users who have bought my app from Mac App Store in order to give them faster updates.
What i was thinking is to do an update for the Mac App Store version of the app that will let user register from within the application itself. But i'm having problems figuring out how to test if the application was really taken from Mac App Store and not from a pirated source.
Is there a way to test if the user bought the app from AppStore. Apple does not release this info - as if it would - i could just test if that user email is in the list of people who downloaded the app from AppStore.
Thank you in advance for the help,
Bogdan Vladu
You could have the MAS version of your application copy the Apple-issued receipt to the Application Support folder.
The independent version could look there for a valid receipt. If there is, it will behave like the fully licensed version. If there is not, it would go to demo mode.
If you're making enough money from this app to pay money for DRM and obsfucation, go for it. It might slow down the pirates enough for it to be a profit for you.
Otherwise, you're pitting your own time and skill against everyone who's interested in pirating your app. It's a losing battle, unless your app is really unpopular, in which case you've lost again.
In short, there's no algorithmic way of making sure. Code obsfucation is the way to go, and hope that the pirates don't find the "check-for-tampering" module.

Resources