What's the authoritative resource for TestFlight deploys with Jenkins? - ios

As stated in the question, but including code signing and embedding provisioning profiles.

I recently posted a series of blogs on how to build/test/deploy both iOS and Android apps using Jenkins running on the CloudBees PaaS: the iOS blog is online at
Continuous Deployment for Mobile Apps with Jenkins: Xcode builds with MacOS slaves
That blog post actually talks about Appaloosa, but the Jenkins configuration for TestFlight is almost identical: you can see an actual example config online here:
stockfishchess-ios Jenkins configuration
A few things to note:
You need to make sure that the build number is unique - the best way to do this is just to get the Jenkins build number from the environment (see the example config).
You need to configure the build job to package an .ipa archive (the example config uses the fast archive plugin to do this)
You should copy the API Token and Team Token from your TestFlight Console
Re: iOS Provisioning - look at the Apple Developer Program docs for details on how to set up an Ad Hoc Provisioning profile, which you will need to send to your testers. Get their UDIDs for the devices they want to use, create the profile using the iOS Provisioning Portal and use the Xcode Organizer to export the .mobileprovision profile. You will also need to go into TestFlight and invite the beta test users.
You can find my contact details on the blogs - feel free to contact me directly if you need further help.

Related

Fabric/Fastlane - Automatically Add Device UDIDs

I'm using Fabric and Fastlane to deploy my beta builds to testers. Currently, when I have a new tester, I invite them via email, and they go through the Fabric onboarding process. Then, on all future builds, they'll receive a message "The developer needs to add the device's UDID to a build." So then I go to developer.apple.com and add their UDID to my provisioning profile, and they can run the next build. It works as desired.
Is there any way within Fabric/Fastlane to automate this process of adding UDIDs to the provisioning profile on deployment? It seems sigh within Fastlane can manage provisioning profiles, and Fabric obviously has access to the device UDIDs, but I can't find any documentation about this particular step.
Check out the docs on how you can use fastlane to automatically add device testers to your profile: https://docs.fastlane.tools/getting-started/ios/beta-deployment/#best-practices
There is currently no automatic integration with Fabric Beta, you'll have to manually add it to your list of devices. It's definitely something that can be improved.

Create IPA in Visual Studio without Developer Account

We need to release our Xamarin.Forms app for our customer as ipa-file, so he can release it in his company enterprise store. So my plan for deployment is this:
Customer sends me Distribution Certificate etc.
I create an IPA with these files and send the IPA back
Can i do this within Visual Studio without an apple developer account?
Or do i need to handle it in xcode? (i didn't work with xcode yet).
In order for you to build iOS solutions in Xamarin, you need an Apple Developer Account as this is where your certificates and provisioning profiles are stored.
You can always import a certificate that has been provided by someone else.
Afterwards, you can build your IPA in Visual Studio. You just need to set up a Build Host and use an Ad-Hoc Distribution in your case.
It may seem a bit tedious to configure your certificates and signing identities if you havn't done so before, but we've all been there.

Can there be only ONE Team Agent? IOS/MAC

I am in biz with one partner and he set the business up with Apple.
I am now trying desperately to upload my app to them and continue to get the code sign error (Signature was invalid or it was not signed) in XCode 4.2.1 when I try and submit it.
I thought my distribution profile and cert were fine because I finally got it to Archive (which it wouldnt do)....
Ive METICULOUSLY followed every detail, check that the Code Sign is properly assigned...worked on this for nearly two whole days trying EVERYTHING.
Now Im staring at the line in the Provisioning Portal that states 'In order to distribute your iOS application, the Team Agent is required by Apple to create an iOS Distribution Certificate.'
I assumed I had all the privileges that my partner did - the archive thing started going through when I setup my provisioning cert and profile... but could this BE THE PROBLEM!?
Could it have let me do all that and only fail at the very end because I am not listed as a Team Agent? (losing mind)
Yes, there can only be one team agent and the team agent is the only person that can really distribute apps, I'm positive this is the case for AppStore and pretty sure for AdHoc

What sort of provisioning profile should I use for Hudson building my iOS app?

I'm building an iPhone app and I am tasked with automating the build to integrate with our Hudson-based build of our back-end Java components. I see Apple docs mentioning 'build bots,' but I haven't seen what Apple recommends for creating an automated build/CI system for iOS apps.
And I'm not sure I understand the differences among development and distribution and ad-hoc profiles, so I hope experienced members won't mind helping me figure out which type to request and install.
My Hudson is slaving a build Macintosh using a non-privileged user account.
I would like to take successful builds and enable my co-workers and other interested parties to install them on their own iDevices.
What's the right type of profile to use for xcodebuild to sign the app and make it installable?
Thanks in advance!
Andrew Wolfe
you want to use an AdHoc profile if you're wanting to distribute the app to people who aren't using xcode. remember that you'll have to add the device UDIDs of each person you want to be able to run the app to the profile.
in your project (in xcode), create a separate AdHoc target so you can specify the profile. then when you set things up on hudson, you specify the AdHoc target on the build command line.
i highly recommend looking at https://testflightapp.com/. it's a great service and a god send when you're dealing with sending out adhoc builds to people. and it's free!

Showing beta versions of an app to a customer

Can I send to my customer a beta version of my iOS app that he can run in the Simulator ?
Can I install Simulator only (without Xcode) on a Mac ?
I actually need an efficient methodology to send him the beta versions of the app, without having to meet him at each update.
Also, (3.) is there a way to install a beta version of the app, I developed in my xCode on its iOS device without app store ?
Thanks
No, I do not believe you can.
No, I don't think so. If you could, however, you'd also have to put all your source code on that machine and build your app there, just to run it in the simulator.
Yes, it's called an Ad Hoc build. You create a special provisioning profile through the provisioning portal on Apple's Developer portal. You then sign the build with that provisioning profile (actually, "Build and Archive"). Then you can, through the Xcode Organizer, share that build via e-mail with your customer. The Organizer creates an .ipa file and includes it along with the provisioning profile into an e-mail message which you can then compose and send.
Edit: The Ad Hoc provisioning profile will, of course, need to include the UDID's of your customer's device(s) on which they would like to test. That is the missing piece here that ties it all together: UDIDs, Ad Hoc profile, signed app with that profile, e-mail it to the customer and they can install both files (ipa and profile) via iTunes.
Lots of documentation on this, right in the Developer portal.
TestFlightApp.com is a great way to easily manage and distribute beta tests and ad-hoc builds. It's nothing you couldn't do yourself, manually, but it really helps make it easy, and is free.

Resources