Xamarin cycle 7 IOS IPA output is now in the datetime folder

I just updated to the latest version of Xamarin studio, however, when I try to build my solution using XBuild, through our continuous integration server it now generates an IPA file in the data time folder (in the usual bin \ iphone \ Ad-hoc), for example

Finisher3 2016-06-09 11-57-45\Finisher3.ipa 

however, I don’t understand why he is doing this now - in the previous version he gave me the file as follows:

 Finisher3-1.68.1.1.ipa 

Does anyone know how to get it back to setting the version number instead of putting it in the date folder, which makes it pretty impractical to copy the IPA to the release folder after I finished creating it.

+5
source share
1 answer

Update: The old solution does not work for the release of the latest version of Xamarin and is not offered. Official information and suggestions for solving the problem are published here:

https://developer.xamarin.com/releases/ios/xamarin.ios_9/xamarin.ios_9.8/#New_MSBuild_property_IpaPackageDir_to_customize_.ipa_output_location

However, in my case, having multiple build machines with ~ 30 builds to edit string definitions or .csproj files on all of them is a nightmare, especially on Friday.

Here is a workaround that I am currently using. Between line 1655/1656 enter this code

<IpaPackageDir Condition="'$(IpaPackageDir)' == ''">$(DeviceSpecificOutputPath)</IpaPackageDir>

Then insert the following line after 1661:

<IpaPackageName Condition="'$(IpaPackageName)' == '' And '$(_BundleVersion)' != ''">$(_AppBundleName)-$(_BundleVersion).ipa</IpaPackageName>

After your changes, it will look like a file. Lines 1656 and 1662 are new. fixed target file for Xamarin ipa location problem

Good luck, have fun!


Deprecated Solution:

According to support@xamarin.com , editing Xamarin.iOS.Common.targets for now is the proposed solution (option 2 from Johan’s answer).

Since the accepted answer only shows the cause of the problem (option 2), here's how to solve the problem.

The workaround (on Mac) is to go to the /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/2.1/ folder and open the Xamarin.iOS.Common.targets file

(or open the file directly /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/2.1/Xamarin.iOS.Common.targets ).

If you are on Windows, the file you need to modify is C:\Program Files (x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.targets

Then change line 1607 to

  <PropertyGroup> <IpaPackageName Condition="'$(IpaPackageName)' != '' And !$(IpaPackageName.EndsWith ('.ipa', StringComparison.OrdinalIgnoreCase))">$(IpaPackageName).ipa</IpaPackageName> <IpaPackageName Condition="'$(IpaPackageName)' == '' And '$(_BundleVersion)' != ''">$(_AppBundleName)-$(_BundleVersion).ipa</IpaPackageName> <IpaPackageName Condition="'$(IpaPackageName)' == ''">$(_AppBundleName).ipa</IpaPackageName> </PropertyGroup> 

and line 1734 is

 OutputFile="$(OutputPath)$(IpaPackageName)" 

These changes are taken from Xamarin.iOS.Common.targets previous stable release (5.10.3).

+10
source

All Articles