I'm new to iOS development as i currently develop only for android.
I run into a problem and i have been searching a lot for a possible solution.
I would like to make a personal iOS app (something like a personal note app or a personal reminder app etc) and well i made it . The only problem was that the provisioning profile lasts only 6 days (i think) and the app stops working as i need to repair the Provisioning profile.
Now as this app is personal (no need to distribuite anywhere and i don't have a paid developer account ) is there a possible way to install it forever into my iPhone without expiration as i can't use my company development profile for signin it. any type of help would be appreciated . Thanks in advance and have a nice day !
I'm afraid it's not possible to have an app installed 'forever' on your device if it's not installed via the App Store, it will need 're-provisioning' occasionally in order to still be valid.
The reason your app expires after 6 days is that this is the time limit on applications deployed to devices using Apple's free developer program. There are also a few other limitations relating to capabilities enabled via entitlements.
The paid developer program increases this time limit to 1 year. Other distribution methods (such as Enterprise distribution) also have similar time limits.
Related
I am new to iPhone development, so hope not asking dump question.
I finished my Xamarin app development, works fine on Android, released. Now finished the iPhone version of it, runs fine on iOS Simulator (without some features, those are not available on Simulator, like email/iap). Now I want to test on a real device, but I don't have iPhone.
However, I got one for about 2 weeks from a friend, who will also develop for it, but will start a bit later, so he does not need it now.
I read through several tutorial, and found that I have to "Add to Member center" the phone, so basically "register" this phone under my apple dev account, when using with proper provisioning profile/certificates.
This is fine, but when I finished testing in let's say 10 days, and give the phone back to the owner:
can he also register this phone to develop on this on his account?
is it possible to "unregister" myself from this phone (then I won't have any in apple dev center), but keep my App in the Store? Isn't 10 days (too short time) an issue?
any other issues with this approach?
Thanks
As your question i think you are familiar with Apple developer portal & managing Certificates & provisioning profiles. So, i am going to answer your listed points:
Yes, a device can be register with different developer account for testing, no issue in it.
Yes, you can disable the device from Apple developer portal this will no impact on you App on App Store, because App on store with Distribution Certificate & Provisioning Profile, not with developer Certificate & Provisioning Profile.
No issue with this approach, but keep in mind disabling the device will invalidate all associated provisioning profiles, then You can remove the device from your account at the start of your new membership year.
I've looked for hours at other similar questions, but not sure if the other answers apply in my case, and things have changed since I last did this:
I am a sole trader writing an iPad App for an Agency. The app is ultimately for a Company they are working for.
The app will be distributed free to a small number of employees in the Company (<30);
Its a hybrid app, much of the code running as javascript in a webview. Ideally I wish to avoid Apple review of the app during distribution as this is an unknown to me.
I also do not wish to release the source code to Agency nor Company.
What's my best option for distribution? Ad-hoc? Set Company up with an Enterprise account? VPP?
I would use Ad-hoc, as it seems simpler, but not sure what happens after 1 year expiration...
Be grateful for any pointers.
If you have Apple Developer Enterprise Program (299 USD/year)
Ad Hoc
You can distribute your app to limited number of registered devices, but you need to sign every year before your provisioning profile expires, if you don't sign your app again, it will start to crash on opening after expiration date.
In House
You can distribute your app without any device limit, but you need to sign your app every year.
If you have Apple Developer Program (99 USD/year)
Ad Hoc
Same as enterprise program
App Store
Once you submit and release your app, you don't need to sign again.
I think your best choice is distributing your app via App Store if the company is okey with it. Review process is not a big deal after all, you can shape your app according to rejections reasons.
Apple Developer program - Adhoc Distribution
Cheaper ($99)
No Appstore review needed
Supports up to 100 device (device list can be modified yearly)
Need to rebuild with updated provisioning profile when new device is added
Need to rebuild the app on yearly basis when provisioning profiles expire
OTA can be used to distribute the app to users
Enterprise Program - In-house Distribution
Expensive ($299)
App can be installed into any device without a device limit (no rebuilding required)
Need to rebuild the app on yearly basis when provisioning profiles / distribution certificate expire
No Appstore review needed
OTA can be used to distribute the app to users
I would go with Apple developer program since you user base is around 30 and its a cheaper option.
Have You looked at:
https://www.diawi.com/
Or
https://www.installrapp.com/
?
Note: You must register their devices to your Apple account first
A few years ago I wrote an iPad app that was to run on only a few of the client's iPads. They're currently having issues with the app exiting upon being opened. It turns out this is due to the dev provisioning profile associated with the app being expired.
I tried renewing the provisioning profile but am unable to access the Provisioning Portal because my dev account needs to be renewed. Renewing my account is not an option right now.
I'm aware that as of Xcode 8 users are able to install apps on physical devices for free. I don't have access to the client's iPads and have been issuing out updates by archiving the .ipa file and using diawi.com for them to install.
How can I just renew my provisioning profile so that my client can successfully open the app?
Thanks
This is not possible. What you need to do is generate a new, valid provisioning profile and run the app again on your client's iPad. However, I should note that for this type of development, Apple wants you to use ad-hoc distribution through the enterprise developer program.
Also, to be able to generate a new, valid provisioning profile you will need a valid account.
Ideally, your client should have their own developer account that they maintain, preferably an enterprise dev account (enterprise accounts don't require them to manage the specific device UDIDs the app needs to run on). With that, they could manage their own certs / profiles for the signing of the app. They could then grant you access as a team member to manage those things and update the app once a year.
Or, even better for them - you could even write them a script / use tools (like fastlane) to re-sign the app themselves so they could self provision. This takes you out of the loop for ongoing support, since it doesn't seem like you will / have provided ongoing support. Keeping an internal app running requires continual work (new OS updates, code signing expiration, etc.).
If you built an app for a client, you probably should have known / let them know that iOS doesn't allow unsigned apps to run on devices, and that developer provisioning profiles last at most a year. You also need to make sure they know you can't just write a native app and expect it to work forever. At some point (probably now, but they don't know it yet) an iOS update is going to break something you did in the app. The just can't see what is broken yet because your invalid cert is making it so the app can't launch. Given your lack of understanding of iOS code signing, I would assume that you likely did something in your code that was broken in subsequent iOS updates (given that very experienced iOS developers also have things break with new iOS versions are released).
At this point, I would explain them the situation and see if they would be willing to set up their own paid account (only $299 / year for an enterprise account) to get new profiles / certs set up to get the app back up and running.
Heyo Guys
I got a question about the deployment of my App. I am currently doing contracting for a small to medium size business. The app is (as the title suggests) developped for iOS.
The app should be for internal use only so putting it on the app store would not be a good idea.
I have read about the enterprise developer program which sounds pretty much like the thing I need except for 2 aspects :
1. 299 per year
2. Enterprise apps are intended for really big companies.
Is there any other way to distribute the app to the 10+ people working at the business I am currently working for ?
Thanks for your advice
EDIT : Thanks for all your answers. I have plans to then further distribute the app to other companies (the app is for driving schools) so that means that there would again be a problem if each of those companies had to buy a licence in order to use my app
It doesn't matter about the size of the company, If they want an internal application not hosted on the App Store then the Enterprise program is the way to go.
This is something that the client should be paying for though, they could then use a service like Hockey to host their applications for employees.
If the company only needed the app for say 10 devices, they could technically just get away with an AdHoc build but there are drawbacks:
AdHoc builds are intended for testing rather than full scale distribution.
The devices would have to be registered on the developer portal, this means that if a new device needs adding then you would have to add it then re-generate a new provisioning profile.
You're limited on how many devices you can distribute to.
The provisioning profile will expire after 3 months.
Provisioning profiles currently expire after a year just like enterprise profiles however Apple have been known to change this.
If it's 10 people, you can ask them to hand over their devices and you install using Xcode. For 50 you can make them beta testers, but it is a pain. Testflight will work, but you have to upload a version once a month which they have to download. All of these might be against your license.
It would be by far the best if the company you are working for buys an enterprise license. (YOU can't buy the enterprise license, because the users are not YOUR employees).
You can distribute via TestFlight, but those 10 users will eat in to your limit of 25 total Beta testers.
You can explicitly take the target users' device UUIDs and provision your app to be able to run on them. Then, you can create ad-hoc deployments of your app which can be installed directly on the target devices using iTunes, or distribute them using something like Crashlytics.
You can add 100 devices per year as a registered developer.
I'm looking for some clarification on developing for a single iPad. I have an app in the app store, however I want to make my own app for personal use that won't be submitted to the app store.
Is it possible for me to develop the app and get a certificate to "test" the app on my iPad, and just keep it on? I don't want to have to pay $299 for an enterprise account to publish private apps for a single iPad to use the app!
I've had a read about and I'm probably more confused now than I was before!
Any help appreciated.
Thanks,
Gary
If you enter the iOS Developer Program (99$ a year), you will be able to do what you mention: you will be able to generate a certificate and a provisioning profile and install the app on your device (actually, up to 100 devices).
The only thing is that you will need to create a new certificate/provisioning profile and rebuild/reinstall your app when the certificate expries.
No matter how you do it, you will always have to sign your app to be able to run it on a device.
All Provisioning Profiles expire, except the ones for the App Store (which you can't use without publishing your App in the App Store). So paying $299 for an Enterprise Account wouldn't even help you in this case.
However, if you want to run the App only on this single device, you could consider jailbreaking it. This would allow unsigned apps to run.