我刚刚更新到了最新版本的Xamarin Studio,但是当我尝试使用XBuild构建解决方案时,通过我们的持续集成服务器,它现在会在数据时间文件夹中生成IPA文件(在通常的bin \ iphone \ Ad-临时文件夹),例如:
Finisher3 2016-06-09 11-57-45\Finisher3.ipa
但是我不明白为什么现在要这样做-在以前的版本中,它给了我一个文件,如下所示:
Finisher3-1.68.1.1.ipa
有谁知道如何重新将其重新设置为版本号,而不是将其放置在日期时间文件夹中,这使得在完成构建后将IPA复制到发行文件夹相当不切实际。
更新:旧的解决方案不适用于最新的Xamarin版本,因此不建议使用。有关解决此问题的官方信息和建议,请在此处发布:
但是,就我而言,拥有多台具有〜30个构建的构建机器来编辑所有构建定义或.csproj文件是一个噩梦,尤其是在星期五。
这是我目前正在使用的解决方法。在第1655/1656行之间插入此代码
<IpaPackageDir Condition="'$(IpaPackageDir)' == ''">$(DeviceSpecificOutputPath)</IpaPackageDir>
然后在1661年之后插入以下行:
<IpaPackageName Condition="'$(IpaPackageName)' == '' And '$(_BundleVersion)' != ''">$(_AppBundleName)-$(_BundleVersion).ipa</IpaPackageName>
祝你好运,玩得开心!
过时的解决方案:
根据[email protected]的建议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)"
这些更改来自Xamarin.iOS.Common.targets
以前的稳定版本(5.10.3)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句