我想爲使用TeamCity和FAKE的Xamarin.iOS應用程序設置CI構建,並將結果(.ipa文件)上傳到HockeyApp。我遇到了一個小問題。在TeamCity構建之後找到帶有FAKE腳本的.ipa(Xamarin.iOS Ad-Hoc)
我設法從TeamCity觸發FAKE構建腳本,併成功構建我的應用程序。下一步將是從FakeLib的「HockeyAppHelper」模塊中調用「HockeyApp」方法,但是要做到這一點,我需要指向.ipa文件的路徑。我找到的所有例子只是硬編碼的路徑(類似bin/iPhone/Release/*.ipa
),但在我的情況下,.ipa將放在包含時間戳的文件夾中(如bin/iPhone/Release/MyApp 2017-01-24 17-16-56/MyApp.ipa
)。
問題是我如何獲得構建腳本中的.ipa文件(因爲時間戳我無法硬編碼路徑)?
下面是假的腳本負責建立並上傳的.ipa部分:
Target "ios-adhoc" (fun() ->
RestorePackages "RidderCRM.iOS.sln"
UpdatePlist version versionNumber "RidderCRM.iOS"
iOSBuild (fun defaults ->
{defaults with
ProjectPath = "RidderCRM.iOS.sln"
Configuration = "Release"
Platform = "iPhone"
Target = "Build"
BuildIpa = true
Properties = [ "CodesignKey", "iPhone Distribution"; "CodesignProvision", "Automatic:AdHoc" ]
})
let appPath = Directory.EnumerateFiles(Path.Combine("RidderCRM.iOS", "bin", "iPhone", "Release"), "*.ipa").First()
TeamCityHelper.PublishArtifact appPath
HockeyApp (fun p ->
{p with
ApiToken = Environment.GetEnvironmentVariable("HockeyAppApiToken")
File = appPath
}) |> ignore
)
謝謝喬恩,這是我所缺乏的知識。大的幫助。 –