Preparing App for adHoc testing using Windows iTunes

I’ve been running in circles on this one.   I’ve built and provisioned the app for ad hoc testing, and am now trying to prepare for use through Windows iTunes.  Since there is no Xcode project, I cant see where to follow the instructions to build the archive.

The apple docs assume that you have build the project through their code and installing from a mac- which, of course, doesnt work here.  Where can I get a good set of instructions for setting this up?

Thanks

Dave

With Corona SDK you can only build for iTunes connect submissions with a Mac. You cannot use Windows. You can use a service called “macincloud” or look at a Mac Mini.

Rob

@Rob.  Thanks for the response.  

I hate to sound like a complete dunce, but then how does someone without a mac install the app for testing?  For Android, I have them downloading via link.  I registered the test devices and built the adhoc provisioning profile, built the app using the adhoc profile and had the After Build set to show in finder. Now I have an iOS app.  I read somewhere that I should create a Payload directory, copy the app into it, compress the folder and rename it to <app>.ipa, but that isnt installable.  Can you point me in the right direction?

Dave

Both Apple and Google use a technique called code signing to secure the app to make sure it’s not altered after the author creates it. Corona uses Java’s “keytool” to sign Android apps. This tool is available on both Windows and macOS. However, for iOS apps they have to be signed using Apple’s developer tool called “Xcode”. Xcode is only available on Macs.

In addition, what gets generated for an APK file is different than what gets generated for an Apple app. The contents in each are different. Windows will not produce what’s needed for Apple.

Rob

Rob, I dont believe that we are on the same wavelength.  Until recently, I had done all of my Android work on Windows.   I also have a Mac and build the app for iOS on the Mac.  I have generated the appropriate provisioning profiles, and used such for the various builds.  For my own testing, I use the development profile and set the after build option to “Copy to device” - it works.  I have also built with no provisioning and opened in the iOS Simulator - it works.   For the Ad Hoc, I registered a series of devices via their UUIDs and generated an Ad Hoc distribution provisioning profile.  I built that configuration and used the show-in-finder and do-nothing after build options, which left me with a .app file.  I have not built an appStore profile yet as we are not ready for that.  I am NOT trying to build an Android version and install it on an iOS device. I simply used that as an example of my solution in the Android world.  I am trying to take a Mac generated iOS ad hoc provisioned app and install it on devices that I do not have direct access to  It is my understanding that part of the build process handles the signing and the .app file that I get when the build completes is ready to run.

Since iTunes on a and Mac Xcode can be used to install the app on an attached device, I am looking for a way to install it on a device that is not attached.

I hope this clears the problem up.

Dave

Here is the process:

  1. Build the app using the adhoc provisioning profile, set the After Build option to Show in FInder or Do nothing
  2. in the Save to Folder, create a folder named: Payload and copy the app into it.
  3. compress the Payload folder, renaming the zip file to: <yourapp>.ipa
  4. transfer the file to the windows machine that will install the file (I use dropbox)
  5. attach the phone to the windows machine via the charging cable to sync the phone and computer
  6. in iTunes, click file->Add File to Library: navigate to where the file is located on your machine, select the file
  7. click on the phone icon and select the Apps folder in the left column
  8. you will see the app in the center column without an icon.  click the install button to the right of the appname - text will change to will install
  9. click apply button
  10. iTunes will show installing - and sync the computer and phone, installing the app on the phone.  The app icon will show on your phone

A couple of points:

  1. This will not update an app.  Before loading a new test version, you must remove the app from both the phone and itunes.
  2. This will only work with an ad hoc provisioned file that includes the UUID of the device registered with Apple.

Sorry for the confusion. You were talking about Windows and I got side tracked.

Once your user has the .ipa file, I would suggest they bring up iTunes, click on their device and then apps so they can see the list of apps they have installed (and removed apps as well). Then drag and drop the IAP onto the pane of apps. This should copy the .ipa file to the iTunes Library. It should show in the iTunes app window as uninstalled. Click the button to have it add it to the device and then sync the phone with iTunes.

I’ve not done this in a while but it should work. Corona produces a properly signed app. Making a .ipa file is as simple as you’ve outlined. Once you have the .ipa, any instructions on installing a .ipa should work since we are out of the equation at that point.

Rob

Thanks Rob.  and no worries.  The process works great - I truly appreciate the help.

Dave

I had the same issue as @davida6.  I wanted to do ad hoc distribution for testing purposes and the ad hoc testers (all Mac users) had trouble getting the app on their devices via iTunes.  

I was able to find a solution, but I am a bit confused by the method Rob suggests which seemed to work for davida6 but not for me.  

When I build using my ad hoc provisioning profile, the result is a .app, not an .ipa.  An ipa seems necessary for Rob’s method to work.  And I will add that Rob’s suggestion is very similar to what Apple instructs on their guide to exporting your app for testing.   I only get an .ipa using my app store distribution provisioning profile.

To get the install to work using an .app built with the ad hoc provision, here’s what I did (very similar to what David describes above): 

  1. Send the .app file generated with the ad hoc profile to the tester via dropbox or some other method.
  2. Have the tester use “Add to Library” or command+O in iTunes to add the app to their iTunes
  3. In iTunes, click on the device button in the upper left, select Apps underneath Summary, and you will find your app in the Apps pane.  
  4. Click install and then Apply and it will add your ad hoc profiled app to the device.

I initially tried Rob’s method (which is Apple’s method too) and the testers were able to get the ipa into iTunes, but after they installed it through the Apps pane and clicked the Apply button, iTunes would go through the sync process and seem to complete the sync, but the app would not actually install.  In fact, even though the sync would complete, the button next to the app in the Apps pane would continue to say “Installing”

Anyway, I just wanted to post my experience because I was able to get successful results differently and was not able to replicate the results suggested.  

This is a helpful discussion.  Last year I got frustrated with the process and decided to use a paid service for remote device game testing.  I did some research and tried Installr with good results.  At some point I plan to master remote adHoc testing but it was nice to have the option of someone else sorting through the headaches right now.

To be honest, I find the iTunes method frustrating, but you have limited options. While we don’t produce a .ipa file when using an AdHoc profile, .ipa files are easy to make.

  1. Make a folder named “Payload” (case sensitive)

  2. Move/copy your .app produced by Corona inside the new Payload folder

  3. CMD-Click (or Right-Click) on the folder and choose “Compress”. You will now have Payload.zip

  4. Rename Payload.zip to youAppName.ipa

  5. Tell the popup that it’s okay to change the extension.

You should now have a .ipa file that you can use like any other .ipa file.

Rob

With Corona SDK you can only build for iTunes connect submissions with a Mac. You cannot use Windows. You can use a service called “macincloud” or look at a Mac Mini.

Rob

@Rob.  Thanks for the response.  

I hate to sound like a complete dunce, but then how does someone without a mac install the app for testing?  For Android, I have them downloading via link.  I registered the test devices and built the adhoc provisioning profile, built the app using the adhoc profile and had the After Build set to show in finder. Now I have an iOS app.  I read somewhere that I should create a Payload directory, copy the app into it, compress the folder and rename it to <app>.ipa, but that isnt installable.  Can you point me in the right direction?

Dave

Both Apple and Google use a technique called code signing to secure the app to make sure it’s not altered after the author creates it. Corona uses Java’s “keytool” to sign Android apps. This tool is available on both Windows and macOS. However, for iOS apps they have to be signed using Apple’s developer tool called “Xcode”. Xcode is only available on Macs.

In addition, what gets generated for an APK file is different than what gets generated for an Apple app. The contents in each are different. Windows will not produce what’s needed for Apple.

Rob

Rob, I dont believe that we are on the same wavelength.  Until recently, I had done all of my Android work on Windows.   I also have a Mac and build the app for iOS on the Mac.  I have generated the appropriate provisioning profiles, and used such for the various builds.  For my own testing, I use the development profile and set the after build option to “Copy to device” - it works.  I have also built with no provisioning and opened in the iOS Simulator - it works.   For the Ad Hoc, I registered a series of devices via their UUIDs and generated an Ad Hoc distribution provisioning profile.  I built that configuration and used the show-in-finder and do-nothing after build options, which left me with a .app file.  I have not built an appStore profile yet as we are not ready for that.  I am NOT trying to build an Android version and install it on an iOS device. I simply used that as an example of my solution in the Android world.  I am trying to take a Mac generated iOS ad hoc provisioned app and install it on devices that I do not have direct access to  It is my understanding that part of the build process handles the signing and the .app file that I get when the build completes is ready to run.

Since iTunes on a and Mac Xcode can be used to install the app on an attached device, I am looking for a way to install it on a device that is not attached.

I hope this clears the problem up.

Dave

Here is the process:

  1. Build the app using the adhoc provisioning profile, set the After Build option to Show in FInder or Do nothing
  2. in the Save to Folder, create a folder named: Payload and copy the app into it.
  3. compress the Payload folder, renaming the zip file to: <yourapp>.ipa
  4. transfer the file to the windows machine that will install the file (I use dropbox)
  5. attach the phone to the windows machine via the charging cable to sync the phone and computer
  6. in iTunes, click file->Add File to Library: navigate to where the file is located on your machine, select the file
  7. click on the phone icon and select the Apps folder in the left column
  8. you will see the app in the center column without an icon.  click the install button to the right of the appname - text will change to will install
  9. click apply button
  10. iTunes will show installing - and sync the computer and phone, installing the app on the phone.  The app icon will show on your phone

A couple of points:

  1. This will not update an app.  Before loading a new test version, you must remove the app from both the phone and itunes.
  2. This will only work with an ad hoc provisioned file that includes the UUID of the device registered with Apple.

Sorry for the confusion. You were talking about Windows and I got side tracked.

Once your user has the .ipa file, I would suggest they bring up iTunes, click on their device and then apps so they can see the list of apps they have installed (and removed apps as well). Then drag and drop the IAP onto the pane of apps. This should copy the .ipa file to the iTunes Library. It should show in the iTunes app window as uninstalled. Click the button to have it add it to the device and then sync the phone with iTunes.

I’ve not done this in a while but it should work. Corona produces a properly signed app. Making a .ipa file is as simple as you’ve outlined. Once you have the .ipa, any instructions on installing a .ipa should work since we are out of the equation at that point.

Rob

Thanks Rob.  and no worries.  The process works great - I truly appreciate the help.

Dave

I had the same issue as @davida6.  I wanted to do ad hoc distribution for testing purposes and the ad hoc testers (all Mac users) had trouble getting the app on their devices via iTunes.  

I was able to find a solution, but I am a bit confused by the method Rob suggests which seemed to work for davida6 but not for me.  

When I build using my ad hoc provisioning profile, the result is a .app, not an .ipa.  An ipa seems necessary for Rob’s method to work.  And I will add that Rob’s suggestion is very similar to what Apple instructs on their guide to exporting your app for testing.   I only get an .ipa using my app store distribution provisioning profile.

To get the install to work using an .app built with the ad hoc provision, here’s what I did (very similar to what David describes above): 

  1. Send the .app file generated with the ad hoc profile to the tester via dropbox or some other method.
  2. Have the tester use “Add to Library” or command+O in iTunes to add the app to their iTunes
  3. In iTunes, click on the device button in the upper left, select Apps underneath Summary, and you will find your app in the Apps pane.  
  4. Click install and then Apply and it will add your ad hoc profiled app to the device.

I initially tried Rob’s method (which is Apple’s method too) and the testers were able to get the ipa into iTunes, but after they installed it through the Apps pane and clicked the Apply button, iTunes would go through the sync process and seem to complete the sync, but the app would not actually install.  In fact, even though the sync would complete, the button next to the app in the Apps pane would continue to say “Installing”

Anyway, I just wanted to post my experience because I was able to get successful results differently and was not able to replicate the results suggested.  

This is a helpful discussion.  Last year I got frustrated with the process and decided to use a paid service for remote device game testing.  I did some research and tried Installr with good results.  At some point I plan to master remote adHoc testing but it was nice to have the option of someone else sorting through the headaches right now.