2016-12-21 11 views
2

Jenkinsとの継続的インテグレーションを実装して、ビルドを迅速に展開できるようにしました。 Xamarin websiteで提供されているドキュメントを確認し、問題が発生しました。このチュートリアルでは、さまざまなプラグインを使用してプロセスを実行する方法について説明します。ビルド後に実行するいくつかのポストアクションがあるため、ビルドスクリプトを使用してビルドスクリプトを実行します。問題はiOSでは端末/コマンドラインからビルドするときにmdtoolではなくxbuildを使う必要があることがdocumentedであることです。iOSアプリケーションでxbuildを使用してもipaが生成されない

このportion of the guideに続いて、ビルドスクリプト内でxbuildを構築しました。 xbuildコマンドが機能し、プロジェクト参照dllを作成し、exeファイルを生成するように見えますが、xbuild上に/p:BuildIpa=trueを設定してもipaファイルを生成しません。また、私たちがこのファイルを紛失していないことを保証するために、ipaが生成される場所を提供しました。/p:IpaPackageDir=$BUILD_PATH。ここでは、現在使用しているxbuildコマンド全体がありますか、間違っているか、見つからないものがありますか?

/Library/Frameworks/Mono.framework/Commands/xbuild $PROJECT_FILE/t:Build /p:BuildIpa=true /p:IpaPackageDir=$BUILD_PATH /p:Configuration=”Release” /p:Platform=”iPhone” /p:OutputPath=$BUILD_PATH 

$BUILD_PATH

は - ビルド・パスはxbuildは、iOS用のソリューションファイルを必要と述べているだけで、「iPhone \リリース\ \%のWORKSPACE%の\ビン」

私もthis resourceを見つけた、あります正しく構築するには、それは正しいですか?

xbuildデプロイメントのソリューションとプロジェクトファイルを正しく定義する方法、またはビルド時に特定のプロジェクトを除外する方法を説明するドキュメントが見つからないため、これらのエラーを解決するにはどうすればよいですか:我々が生成する別のビルドスクリプトを持っているので、私たちは、iOSのプロジェクトをビルドするときUWPプロジェクトを構築すると懸念されていない

/Library/Frameworks/Mono.framework/Commands/xbuild /p:Configuration=”Release” /p:Platform=”iPhone” /p:OutputPath=$BUILD_PATH /p:BuildIpa=true /p:IpaPackageDir=$BUILD_PATH /t:Build $SOLUTION_FILE 

:ここ

/Users/developer/.jenkins/workspace/Mobile3_Branch_3.20/ServicePro/iOS/Mobile3.Forms.UWP/Mobile3.Forms.UWP.csproj: warning : Could not find project file /Library/Frameworks/Mono.framework/External/xbuild/Microsoft/WindowsXaml/v14.0/Microsoft.Windows.UI.Xaml.CSharp.targets, to import. Ignoring. 
/Users/developer/.jenkins/workspace/Mobile3_Branch_3.20/ServicePro/iOS/Mobile3.ServicePro.UWP/Mobile3.ServicePro.UWP.csproj: warning : Could not find project file /Library/Frameworks/Mono.framework/External/xbuild/Microsoft/WindowsXaml/v14.0/Microsoft.Windows.UI.Xaml.CSharp.targets, to import. Ignoring. 
Project "/Users/developer/.jenkins/workspace/Mobile3_Branch_3.20/ServicePro/iOS/Mobile3.sln" (Mobile3.ServicePro.iOS target(s)): 
     Target ValidateSolutionConfiguration: 
/Users/developer/.jenkins/workspace/Mobile3_Branch_3.20/ServicePro/iOS/Mobile3.sln: error : Invalid solution configuration and platform: "“Release”|“iPhone”". 
     Task "Error" execution -- FAILED 
     Done building target "ValidateSolutionConfiguration" in project "/Users/developer/.jenkins/workspace/Mobile3_Branch_3.20/ServicePro/iOS/Mobile3.sln".-- FAILED 
Done building project "/Users/developer/.jenkins/workspace/Mobile3_Branch_3.20/ServicePro/iOS/Mobile3.sln".-- FAILED 

は、私たちが解決策を構築するために使用xbuildコマンドがありますそのファイルを正しく添付してください。

答えて

1

あなたは、すべての参照のプロジェクトが建設されると.ipaが作成した、のようなものSolutionDirを設定し、.csprojを構築することにより、「個々のプロジェクト/アプリ」を構築することができます

xbuild 
    /p:SolutionDir="./src" 
    /p:OutputPath="$PWD/artifacts/" 
    /p:IpaPackageDir="$PWD/artifacts/" 
    /p:Configuration=Release 
    /p:Platform=iPhone 
    /target:Build 
    src/iOS/XamarinForms.iOS.csproj 

注:これはあなたを想定していますこのMacでプロビジョニングプロファイルが設定されます。

+0

xbuildコマンドを指定した 'SolutionDir'を使用するように変換した後、多数のビルド問題が発生しました。それらのすべてを修正した後(NuGet.targetsの参照を削除し、NuGetの復元の問題を解決し、プロジェクトの参照の問題を解決した)、最終的にipaを正常に生成することができました。あなたの答えで変更する必要があるのは、 '/ p:Configuration'と'/p:Platform'は二重引用符なしの値を持つ必要があることだけです。ビルドの出力で見たことから、これらの値の前後に引用符を付けると、次のようなものが作成されます: '' "Release" | "iPhone" "' – Ckrempp

関連する問題