a replacement to ad-hoc on the appstore - xcode

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.

Related

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

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!

Play store publishing ( free app with mandatory in app products)

I am planning to publish a new app on store. The app will be free, but you will not be able to use the app unless you purchase an in app product.
You will not have to pay to download the app, but you will have to pay use it, because without a purchased product, you can not use the app.
Will google accept my app? I couldn't find any answer for this, neither the support from google gave me a clear answer.
Thanks
Your use case is certainly unusual.
While it is possible that the app is allowed on the google store, I can almost guarantee that if someone reports your app, it might get removed under the Minimum Functionality section.
It will depend on what the description of your app says because as you should have guessed it should describe the base functionality of your app if it has in-app purchase or summarize the all features the app has to offer in case it is free.
As long as you mention in the description of the app that the user will have to purchase a product to use your application, you should be good to go.

Google Play Store: can refunded apps still be used and updated?

As far as I know this is not documented by Google.
What happens when the developer manually refunds a paid app purchase, using the Order Management console (like shown below) ?
Can the user still use it and receive udpates?
If the purchase price for a Paid app is refunded then Play will remove the app from the user's library. This means future checks that depend on app ownership (eg the Play License Verification Library) will return the app is not purchased. However, the app isn't guaranteed to be removed from the user's device, which is why use of the license verification library is recommended.
For refunds around in app purchases and subscriptions the answer might be different. Your question isn't completely clear about whether it is buying a paid app or an IAP/Subscription, but I think you are asking about a paid app.
it would be trivial to pay for and install the app, then make the phone go into airplane mode and do a refund from your desktop, thus extending the period of time the app could be used well beyond 2 hours. But of course as soon as you go back on line the app would get uninstalled as soon as the play store checked in with google, which happens even if you don't actively open the play store.

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.

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