1

Mac で Jenkins を使用してビルドしようとしている Xamarin.Android プロジェクトがあります。ソリューション ファイルにはいくつかの異なるプロジェクトが含まれており、そのうちの 1 つが MonoDroid プロジェクトです。MonoDroid プロジェクトは、ソリューション内の他のプロジェクトに依存しています。

私が抱えている問題はxbuild、ソリューション ファイルをビルドするときに /t:PackageForAndroid ターゲットを使用する方法がないことです。これは、MD プロジェクト ファイルに対してのみ有効であるためです。

現在ジェンキンスでは、次のようにしています。

xbuild MyCoolDroidAp/MyCoolDroidApp.sln /p:Configuration=Release /t:Clean
xbuild MyCoolDroidApp/MyCoolDroidApp.sln /p:Configuration=Release /t:Build
xbuild MyCoolDroidApp/MyCoolDroidProject.csproj /p:Configuration=Release /t:PackageForAndroid

これは機能していますが、3番目のステップを排除する方法があるはずです。誰にも洞察力がありますか?

4

3 に答える 3

0

あなたのapkに署名することに関して、私はmakefileの一部としてこのようなものを使用していますが、うまくいきます:

...

BUILD_DIR = ./builds/$(platform)
KEYSTORE_PATH = your_keystore_pass
STORE_PASS = your_keystore_pass
ANDROID_SDK_PATH = path/to/your/android/sdk/dir 
#example ANDROID_SDK_PATH = /Developer/AndroidSDK
RES_APK = my_apk.apk
APK_NAME = my_signed_apk.apk

...


sign:
  (cd $(BUILD_DIR); jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore $(KEYSTORE_PATH) -storepass $(STORE_PASS) result.apk $(STORE_PASS))
  (cd $(BUILD_DIR); $(ANDROID_SDK_PATH)/tools/zipalign -v 4 result.apk $(APK_NAME))
  (cd $(BUILD_DIR);rm result.apk)
  (cd $(BUILD_DIR);rm $(RES_APK))

お役に立てれば

于 2013-09-21T12:07:06.077 に答える