0 Replies Latest reply: Jul 21, 2012 2:13 AM by emstris RSS

    package apk manually on ubuntu server

    emstris Community Member

      I feel so stupid when I can't understand something so easy on a linux... I'm sure it's an easy thing because no one has mentioned anything about it when I search the web!

       

      also asked on http://stackoverflow.com/questions/11590474/bat-equivalent-on-linux

       

      I'm new to linux ubuntu and I need to be able to package my air android app on my ubuntu server. if it was a windows server, I could easilly create a .bat and package my apk like below:

       

      <pre>

      @echo off
      set PAUSE_ERRORS=0
      :user_configuration

      :: Path to Flex SDK
      set FLEX_SDK=C:\sdk\flex_sdk_4.5.1.21328

      :: Path to Android SDK
      set ANDROID_SDK=C:\sdk\android

      :validation
      if not exist "%FLEX_SDK%\bin" goto flexsdk
      if not exist "%ANDROID_SDK%\platform-tools" goto androidsdk
      goto succeed

      :validation
      if not exist "%FLEX_SDK%\bin" goto flexsdk
      if not exist "%ANDROID_SDK%\platform-tools" goto androidsdk
      goto succeed

      :flexsdk
      echo.
      echo ERROR: incorrect path to Flex SDK
      echo.
      if %PAUSE_ERRORS%==1 pause
      exit

      :androidsdk
      echo.
      echo ERROR: incorrect path to Android SDK in 'bat\SetupSDK.bat'
      echo.

      if %PAUSE_ERRORS%==1 pause
      exit

      :succeed
      set PATH=%PATH%;%FLEX_SDK%\bin
      set PATH=%PATH%;%ANDROID_SDK%\platform-tools

      :: Android packaging
      set AND_CERT_NAME="PeymanApp"
      set AND_CERT_PASS=fd
      set AND_CERT_FILE=cert\SampleApp.p12
      set AND_ICONS=icons/android

      set AND_SIGNING_OPTIONS=-storetype pkcs12 -keystore "%AND_CERT_FILE%" -storepass     %AND_CERT_PASS%

      :: Application descriptor
      set APP_XML=application.xml

      :: Files to package
      set APP_DIR=bin
      set FILE_OR_DIR=-C %APP_DIR% .

      :: Your application ID (must match <id> of Application descriptor)
      set APP_ID=air.com.doitflash.SampleApp

      :: Output packages
      set DIST_PATH=dist
      set DIST_NAME=PeymanApp

      :validation
      %SystemRoot%\System32\find /C "<id>%APP_ID%</id>" "%APP_XML%" > NUL
      if errorlevel 1 goto badid
      goto end_validation

      :badid
      echo.
      echo ERROR: Application ID (APP_ID) does NOT match Application descriptor '%APP_XML%'     (id)

      echo.

      :end_validation

      set TARGET=
      set PLATFORM=android

      ::call bat\Packager.bat
      if "%PLATFORM%"=="android" goto android-config

      :android-config
      set CERT_FILE=%AND_CERT_FILE%
      set SIGNING_OPTIONS=%AND_SIGNING_OPTIONS%
      set ICONS=%AND_ICONS%
      set DIST_EXT=apk
      set TYPE=apk
      goto start

      :start
      if not exist "%CERT_FILE%" goto certificate
      :: Output file
      set FILE_OR_DIR=%FILE_OR_DIR% -C "%ICONS%" .
      if not exist "%DIST_PATH%" md "%DIST_PATH%"
      set OUTPUT=%DIST_PATH%\%DIST_NAME%%TARGET%.%DIST_EXT%
      :: Package

      echo true
      echo.
      call adt -package -target %TYPE%%TARGET% %OPTIONS% %SIGNING_OPTIONS% "%OUTPUT%"     "%APP_XML%" %FILE_OR_DIR% -extdir lib/
      echo.
      if errorlevel 1 goto failed
      goto end

      :certificate
      echo Certificate not found: %CERT_FILE%
      echo.

      if %PAUSE_ERRORS%==1 pause
      exit

      :failed
      echo APK setup creation FAILED.

      if %PAUSE_ERRORS%==1 pause
      exit

      :end

       

      </pre>

       

      but I don't know how to create a similar bash file in linux to take care of that... (I know that adt.exe and adb.exe work on windows and I have their linux equivelent already installed) I just donno how to create a bash file to package the whole thing!

       

      for some reasons, I don't want to use eclipse or other tools to package for me, I need to do it manually using just one bash file in mu ubuntu server...

       

      thanks...