Xamarin循环7 IOS IPA输出现在在datetime文件夹中

时间:2016-06-09 13:09:01

标签: c# ios xamarin xamarin.ios

我刚刚更新到最新版本的Xamarin工作室,但是当我尝试使用XBuild构建我的解决方案时,通过我们的持续集成服务器,它现在在数据时间文件夹中生成IPA文件,(在通常的bin \ iphone中) \ Ad-hoc文件夹)例如:

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

但是我不明白为什么现在这样做 - 在之前的版本中它给了我一个文件如下:

Finisher3-1.68.1.1.ipa

有没有人知道如何重新设置版本号,而不是将其放在日期时间文件夹中,这使得在完成构建后将IPA复制到发布文件夹是相当不切实际的。

1 个答案:

答案 0 :(得分:10)

<强>更新 旧解决方案不适用于最新的Xamarin版本,不建议使用。 有关解决问题的官方信息和建议发布在此处:

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

然而,就我而言,拥有几台构建机器,其中包含大约30个版本的编辑构建定义或.csproj文件,这些都是一场噩梦,尤其是在星期五。

这是我目前正在使用的解决方法。 在第1655/1656行之间插入此代码

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

然后在1661之后插入以下行:

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

更改后,这就是文件的外观。 1656和1662行是新的。 fixed targets file for Xamarin ipa location problem

祝你好运,玩得开心!

过时的解决方案:

根据support@xamarin.com,编辑Xamarin.iOS.Common.targets 现在是建议的解决方法(Johan的回答中的选项2)。

由于接受的答案仅显示问题的原因(选项2),以下是解决问题的方法。

解决方法(在Mac上)是转到文件夹/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/2.1/并打开文件Xamarin.iOS.Common.targets

(或直接打开文件/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/2.1/Xamarin.iOS.Common.targets)。

如果您使用的是Windows,则需要编辑的文件为C:\Program Files (x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.targets

然后将第1607行更改为

    <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>

和第1734行到

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

这些更改取自之前稳定版本(5.10.3)的Xamarin.iOS.Common.targets