.app instead .ipa?

I’m using Xojo 2016.3. When I compile my iOS App, I got .app ?

But correct would be .ipa

Where can I change it to .ipa?

Don’t.

If it ain’t broke, don’t fix it.

Numerous users have posted Xojo generated .app in the iOS App Store, including myself.

[quote=287950:@Thomas Mueller]I’m using Xojo 2016.3. When I compile my iOS App, I got .app ?

But correct would be .ipa

Where can I change it to .ipa?[/quote]
Make sure you checked the Build for App Store box.

hi
I have built the app and It created two files
one with extension .app 1.5go
one with app.dSYM 5.5MB

But I was told that there was an important file with .ipa that was suppose to be created as well…

Is it normal that i’m only getting two files ?

You’ll only get the IPA if you turn on Build for App Store in the iOS Build Settings. Unless you are submitting to iTunes Connect you do not need the IPA.

I don’t yet use Xojo for creating iOS apps, but I routinely create proprietary iOS apps in another platform. I install these over the air using Enterprise Certificate profiles. And to do that, I use *.ipa files with the proper provisioning profiles included. So I beg to differ on only needing *.ipa files for app store submissions. For that matter, I used to create *.ipa files for ad-hoc provision profiles too for installing on test machines over the air.

My point being there are other legitimate use cases for *.ipa, aside from app store submissions.

Incidentally, converting a *.app to a *.ipa is not that hard either. I used to do it manually years ago:

  • Add proper embeded.mobileprovision file to the *.app folder contents
  • Create empty folder “Payload” and put *.app folder inside it
  • Compress Payload and rename resulting zip file to *.ipa

Of course. But I don’t think this user was concerned with Enterprise deployment just yet. :slight_smile:

Anyway, to get an ipa with Xojo, just turn on the “Build for App Store” setting, even if you are not technically using the App Store.

I vaguely remember submitting a zipped .app two years ago.

Create for the app store option does not work with enterprise developer provisioning profiles. I have reported the error you receive when building.

<https://xojo.com/issue/47975>

[quote=338423:@Stephen Koger]Create for the app store option does not work with enterprise developer provisioning profiles. I have reported the error you receive when building.

<https://xojo.com/issue/47975>[/quote]
I ran into a similar issue. Turns out I didn’t have the right kind of provisioning profile. I ended up deleting all of them and then starting over. Looking at my list on Developer.Apple.com I have an iOS Distribution and an iOS Development profile.

I don’t know if that will satisfy the Enterprise issue or not, but I beat my head up against the wall for quite a while before it worked. I’m now distributing iOS apps to a client thru TestFlight while they do internal testing.

[quote=338423:@Stephen Koger]Create for the app store option does not work with enterprise developer provisioning profiles. I have reported the error you receive when building.

<https://xojo.com/issue/47975>[/quote]

Yes, as Bob says, make sure it is a DISTRIBUTION profile and not a DEVELOPMENT provisioning profile.

I too use Enterprise profiles, but have not yet used Xojo to create an iOS app. So I don’t yet have experience with what needs to be done on the Xojo side. I’ll try to make time to build a Hello World type project and sign with an enterprise profile to see what happens.

Well, I experimented with one of the included example apps – TicTacToe – and was never able to get it to build with my Enterprise profile. Although I typically use a wildcard profile when I don’t need other entitlements, based on other thread suggestions I setup a new App ID on Apple, created a Distribution profile, downloaded and installed, and made sure Xcode listed it as valid.

Even after multiple tries to restart Xcode and Xojo, it still failed to recognize the distribution profile with the same value as the app bundle identifier.

In the Code Signing section of the iOS build settings, aside from the Team popup why is there not also a popup to select the desired provisioning profile? It seems like that would make it easier to accommodate wildcard profiles, and also easier to validate which profile it was trying to use or include.

Had already tried that Bob. Thanks though for the idea. It is clearly a problem with Enterprise Distribution profiles and Xojo. As Doug also discovered. I am thinking there is another step in the process of making the ipa that needs to be done after placing the correct enterprise provisioning profile inside the application.

[quote=338428:@Bob Keeney]I ran into a similar issue. Turns out I didn’t have the right kind of provisioning profile. I ended up deleting all of them and then starting over. Looking at my list on Developer.Apple.com I have an iOS Distribution and an iOS Development profile.

I don’t know if that will satisfy the Enterprise issue or not, but I beat my head up against the wall for quite a while before it worked. I’m now distributing iOS apps to a client thru TestFlight while they do internal testing.[/quote]

Ah. Well, I will need this information in the next month or so. I will sign on to the Feedback case.

I have found a manual solution until Xojo gives us the ability to make a proper ipa with an Enterprise Provisioning Profile.

Build your app with for app store turned OFF

Copy the built app to a folder named Payload

Compress that folder and rename the Payload.zip file to yourappname.ipa

Open your favorite editor and paste in the following code replacing the App_ID_Prefix and App_ID with the valid information for your app from the Apple Developer website:

[code]<?xml version="1.0" encoding="UTF-8"?>

application-identifier App_ID_Prefix.App_ID keychain-access-groups App_ID_Prefix.App_ID [/code]

Save the file as Entitlements.plist

Go to the apple developer website and download your enterprise developer provisioning profile. Note what folder you saved it to.

Download this application that can resign the app with the correct settings.

Run the iReSign App

Drag your unsigned .ipa or .xcarchive file to the top box, or use the browse button.

Drag your mobileprovision file you downloaded from Apple to the second box or use the browse button.

Drag your Entitlements.plist file you created to the third box or use the browse button.

Select your name from Keychain Access List, for example "iPhone Developer: Firstname Lastname (XXXXXXXXXX)" in the bottom box.

Click ReSign! and wait. The resigned file will be saved in the same folder as the original file.

The ipa file this program created, I was successfully apple to push out using my MDM to non ad hoc ipads so it resolved my issue.

I would like to determine what command line commands I could run to do the resigning this application is doing. Once I find that we can build a build script to complete this process.

Stephen,

Looks like there are more hoops to jump through then when I did this a few iOS versions ago. But hopefully I at least helped you get started down a path to your solution. And I’ll try to point you down another path now.

Xcode has an optional component called the “command line tools” which includes many things, one of which is called “codesign”. More information on downloading and installing them is here . Maybe it is already on your machine though; open a Terminal window and type “codesign” and see if you get the usage banner or “command not found”.

An example usage of it for code signing an Enterprise *.ipa is here . Read the comments too.

If you want more information on Code Signing in general, Apple has a document here .

I imagine all these steps, from the preliminary ones you list plus replacing iResign with codesign, could be handled by build steps added to Xojo.

Doug

Yes thanks Douglas for your assistance. I wonder if we should create a feature request to give the ability to select the Distribution profile you want and also select the type of IPA you need to create. Based upon the method option there are several types you can select when using xcodebuild.

Since I am not yet using Xojo for any of my iOS apps, my experience is limited to the playing around I did to help answer your question. But I definitely think having an option to pick the profile would be helpful. I’m not sure what logic it uses now, but I could not seem to get a wildcard profile to work. And the forums suggest others could not either. This would help solve that.

Mostly I was just trying to help you find a work-around. Feature requests are great, but in the short time it is often necessary to come up with an alternate plan until feedback cases are resolved or feature requests implemented. I suspect you could create a build step script using “codesign” even if that hardcoded its command line arguments. It would still let you automate the process.

Yes that is what I plan to do in the short term. But yes down the road I would think it would be best if Xojo could make these build options available to us out of the box. Thanks again for your assistance.