He creado un aplicación de AIR que está actualmente en el mercado. Para actualizar la aplicación, es obvio que debe mantener el mismo nombre de paquete. Mi primera versión fueron empaquetados con Eclipse con el ADT plugin.

Ahora, para utilizar AIRE 3.0 Extensiones Nativas (ANE), que no estaban disponibles cuando por primera vez desarrollada la aplicación, que actualmente debe crear mi APK usando el AIRE de herramientas de línea de comandos. Por desgracia, estas herramientas de línea de comandos de la fuerza que tienen un nombre de paquete que se inicia con la palabra «aire». Por ejemplo, necesito el nombre del paquete «com.ejemplo». AIRE crea el nombre del paquete como «aire.com.ejemplo».

Así que ahora, no puedo actualizar mi aplicación en el mercado ya que el paquete haya cambiado el nombre. Adobe ha horroroso artículo para ayudarle a cambiar el nombre y eliminar el «aire» en el paquete. Yo no soy un gran programador así que esto realmente ha sacado de mí.
http://kb2.adobe.com/cps/875/cpsid_87562.html

Al parecer, esta información se encuentra desactualizada o incorrecta en algunas áreas.
Yo me he tropezado en el paso 12, que utiliza apkbuilder:

 apkbuilder final.apk -u -z resources.arsc -f classes.dex

Estoy recibiendo este mensaje de error:

ESTA HERRAMIENTA ESTÁ EN DESUSO. Ver –help para obtener más información.
java.io.FileNotFoundException: recursos.arsc no existe

He utilizado el paso 10 para crear el nuevo recursos.arsc archivo. Es obvio que existen y en la ubicación correcta. He intentado utilizar apkbuilder con otros recursos.arsc archivos de otros proyectos. Me sigue apareciendo el mismo mensaje de error.

Hay una oportunidad en el infierno de este trabajo? Si alguien está interesado en esto, tengo un archivo zip con una muestra de AIRE apk, windows bate todos los archivos de la línea de comandos de trabajo, y todas las herramientas necesarias para que ellos no necesitan ser descargados. Para empezar se necesita cambiar mi camino.la mtd para adaptarse a su sistema. Y usted necesita notepad++ (o equivalente) para el lote automatizar el cambio de nombre de la nombre del paquete a través de varios archivos.
bradwallacedesign.com/dktimer/renameApkProject.zip

Muchas gracias!

Agregar a brad51 la respuesta, para aquellos que no tienen un almacén de claves, pero sólo una .archivo p12 (trabajando en Flash), he aquí un artículo de gran ayuda en la conversión de: aleksmaus.blogspot.com/2012/01/… También, no tengo errores acerca de los archivos no se movió más.
Además de este vínculo fue muy útil en la creación del almacén de claves: mobilefish.com/tutorials/java/java_quickguide_keytool.html

OriginalEl autor brad51 | 2012-02-09

4 Comentarios

  1. 9

    esto fue hecho en un pc. no tengo idea de cómo hacer esto en un mac.

    yo no recomiendo el uso de este para eliminar el «aire». a partir de un paquete de air nombre. Si lo hace, el usuario no se le pedirá para descargar el aire en su dispositivo. el usuario recibirá un mensaje de error en lugar no tienen ni idea del problema. por supuesto, usted puede utilizar aire cautivo de tiempo de ejecución para resolver este problema.

    http://bradwallacedesign.com/share/renameAPK.zip

    descargar y descomprimir el archivo (renameAPK.zip) c:\renameAPK.

    archivos necesarios:

    1. mi archivo (renameAPK.zip) que contiene el apkTool
    2. java jdk/jre
    3. SDK de android
    4. notepad++ (o equivalente en un editor de texto que puede cambiar el nombre a través de múltiples archivos)

    hice muchos archivos bat ya que no estoy seguro de cómo combinarlos en un solo archivo. usted tendrá que editar cada uno de ellos para cambiar sus nombres de ruta de acceso y nombre de archivo para trabajar con su equipo y su archivo apk.

    conté a todos los murciélagos en el orden que yo los uso. una vez que una línea de comandos es abierta, no me escriba el número del archivo bat quiero, a continuación, pulse la tecla de tabulación para automáticamente acabado el nombre del archivo bat, a continuación, pulse enter para ejecutar ese archivo bat.

    instrucciones:

    haga doble clic `openCmd.bate para abrir una línea de comandos que apunta al directorio con todos los archivos.

    0. ejecutar 0path.bate para establecer su camino. (no recuerdo ahora si el sdk de adobe air es necesario para esto, pero lo tengo en mi camino. obviamente, la versión de JDK que se necesita y el sdk de android para el jarsigner zip y alinear creo.)

    1. ejecutar 1decompileAPK.bate tener apkTool descompilar su aplicación en una carpeta llamada UNZIPPEDapk

    2. siga las instrucciones que aparecen en 2editManifest & PackageName – Instrucciones (no un murciélago).txt para editar el manifiesto y el nombre del paquete con el Bloc de notas++ dentro de UNZIPPEDapk:

    editar AndroidManifest.xml:

    una. cambio de nombre de paquete de aire.oldPackageName a newPackageName

    b. editar otras necesidades de las entradas:

    c. cambiar el nombre de la carpeta system dentro de «smali» carpeta para que funcione con el nuevo nombre de paquete
    por ejemplo:
    si el paquete antiguo nombre era: aire/oldName, a continuación, cambiar las carpetas para que coincida con el nuevo nombre del paquete: air/newName

    uso notepad++ (o cualquier editor que puede buscar y reemplazar texto a lo largo de muchos archivos)


    d. ctrl+mayús+f — «Buscar en archivos»

      find:
    air/oldPackageName
      replace with:
    newPackageName
      where:
    all files in UNZIPPEDapk/smali

    (creo que eran más de 200 los reemplazos)

    3. ejecutar 3buildDistFolder.bate tener apkTool construir el nuevo apk en la UNZIPPEDapk\Dist carpeta

    4. siga las instrucciones que aparecen en 4getMissingFiles – instructions.txt a reincorporar a los 2 archivos que faltan en la nueva construcción:

    una. Dos archivos no fueron construidos durante 3buildDistFolder:

    3buildDistFolder.bate la construcción de la nueva apk en la \UNZIPPEDapk\dist carpeta pero no se pudo copiar los 2 archivos:

    (skipping hidden file 'C:\Users\computer\apkTool\UNZIPPEDapk\assets\META-INF

    \AIRE\extensions\com.de adobe.mobile\META-INF\ANE\Android-BRAZO.classpath’)
    (omitiendo los archivos ocultos ‘C:\Users\computer\apkTool\UNZIPPEDapk\assets\META-INF
    \AIRE\extensions\com.de adobe.mobile\META-INF\ANE\Android-BRAZO.proyecto»)

    de apoderarse de estos 2 archivos de su original apk y colocarlos en su nueva apk en la carpeta correcta

    b. copia yourApp.apk de DKTimer/Dist/en el directorio raíz donde su bate archivos.

    5. ejecutar 5signAPK.bate para firmar el apk.

    developer.android.com/guide/publishing/app-signing.html

    6. ejecutar 6verifySigned.bate para verificar la firma ha funcionado correctamente,

    7. ejecutar 7zipAlign.bate para alinear el archivo apk.

    developer.android.com/guide/developing/tools/zipalign.html


    Haya terminado en este punto. Continuar por si quieres probarlo en un dispositivo.

    8. ejecutar 8installAPK.bate a instalar la apk en un dispositivo usb conectado.

    9. ejecutar 9remoteDebugger.bate si desea utilizar la depuración remota.


    espero que esto ayude a alguien. quisiera saber si me olvidé de incluir algo.
    también, si usted conoce una manera mejor de hacer esto, por favor deje un comentario (como por ejemplo, combinar esto en 1 larga pausa archivo bat…)

    OriginalEl autor brad51

  2. 6

    No es una simple variable de entorno puede configurar para desactivar la air. prefijo fácilmente. Existe el siguiente código en el Adobe AIR empaquetador:

    String optOut = System.getenv("AIR_NOANDROIDFLAIR");
    if ((optOut == null) || (optOut.indexOf("true") == -1)) {
      packageName = "air." + packageName;
    }

    Así que, simplemente, establecer el AIR_NOANDROIDFLAIR variable de entorno true, empaquetar la aplicación y no tiene air. prefijo. Google cómo configurar las variables de entorno en windows o mac para su particular versión del sistema operativo.

    Por ejemplo, yo uso el compilador de línea de comandos en Mac/Linux, así que me quede:

    > export AIR_NOANDROIDFLAIR=true
    > java -jar $AIR_HOME/lib/adt.jar -package -target apk-captive-runtime -storetype pkcs12 -keystore cert.p12 -storepass *** Main.apk Main-app.xml Main.swf

    Advertencia: no sé qué implicaciones que esto tiene. Por alguien de la nota anterior, esto sólo puede ser una buena idea con la que el motor de ejecución captador (pero ese es el defecto que va adelante de AIRE 3.8).

    Actualización: Renaun Erickson dijo no debería causar problemas.

    Publicado aquí (ligeramente diferente de la pregunta, la misma respuesta).

    Hola jeff, ya casi me da una idea de lo que estás haciendo. Pero no no está seguro de que voy a escribir realmente fuera de las exportaciones de AIR_NOANDROIDFLAIR=true’ he estado buscando en google esta como loco, pero sigo sin entender cómo ir sobre este enfoque. Estoy empezando a pensar que tal vez lo que necesito para crear algunos .plist archivo? Pero, ¿dónde? Es la única cosa que yo escriba en el archivo de exportación de AIR_NOANDROIDFLAIR=true’? La mente de explicar a dónde voy a poner esto? Lo siento, justo pegado arreglar esto porque soy de conmutación del AIRE de un viejo aplicación desarrollada con android nativo. Odio Adobe para esto.
    de hecho, no sé mi camino alrededor de la OSX lo suficientemente bien como para establecer permanente de las variables de entorno que funcionará a partir de la interfaz gráfica de usuario. Pero sin duda la información que está ahí fuera. Lo siento!
    Wow, si es que era así de fácil, ¿por qué Adobe tiene este complicado proceso de varios pasos que se explicó en su sitio, que participan en la edición y reembalaje de la APK? (Creo que fue de 12 pasos o más!)

    OriginalEl autor Jeff Ward

  3. 4

    Después de haber probado varios apkRename herramientas, me encontré con que todos fracasaron por alguna aplicación, tales como com.android.navegador en el dispositivo de HTC.

    La razón está en apktool que no correctamente descomprimir archivo apk a veces.


    Así, puedo crear mi propia herramienta: https://github.com/sjitech/ApkRename
    No hay necesidad apktool, no hay necesidad de aapt, acaba de java y jar los servicios públicos.
    Esta utilidad modificar directamente AndroidManifest.xml así que sin recompilar todo el recurso por apktool,
    así es limpio.

    Dispositivos probados: 11 tipos (android 4+, pero 2.2+ debe ser no ACEPTAR)
    Probado OS: Mac OS X 10.9 y CentOS 6. (Cygwin con bash 4+ se debe ACEPTAR, pero no se ha probado aún)

    OriginalEl autor osexp2003

  4. 1

    De hecho, me trató de brad enfoque y que no podía imaginar tener que pasar por el proceso CADA VEZ que he compilado una versión. así que no hizo otra cosa…he modificado ADT para que no se introduzca aire».» al principio y lo reemplaza con un más útil extensión como «com.»

    He aquí un resumen de su enfoque:

    uso:
    jar xf adt.jar

    para extraer el adt.jar archivo a un directorio en el escritorio. usted encontrará en {SDK de adobe}/lib/

    buscar el archivo APKOutputStream.class

    com/adobe/air/apk/APKOutputStream.class

    Abrirlo en un editor hexadecimal (por ejemplo, HxD es lo que he usado). Búsqueda de «aire». (sin las comillas, pero incluyendo el punto).

    No borrar la entrada. he intentado, no se puede, corrompe la clase y no se ejecutará. Lo que puede hacer, sin embargo, es reemplazar «aire». con «com.» porque tiene el mismo número de caracteres y no meterse con la longitud del archivo. El prefijo com es mucho más útil para la mayoría de nosotros.

    guardar la modificación de APKOutputStream.class archivo y volver a empaquetar con el JAR. algo como esto:

    frasco cfm ..\patchedadt.jar ..\MANIFESTARSE.MF *

    usted querrá copiar los que se MANIFIESTAN.MF archivo en el subdirectorio del paquete que se llama META-INF

    Cambiar el nombre de tu patchedadt.jar a adt.jar y poner de nuevo en el directorio lib. Funciona con el Flash Builder y todo lo que traje.

    Huelga decir que, cuando usted está allí, usted querrá para producir el paquete sin un «com.» prefijo para no acabar con com.com.tu.paquete.nombre.

    tal vez había una manera más fácil, pero yo no sabía nada mejor y nadie tenía una respuesta, excepto para descompilar el apk, modificar y recompilar y que ni siquiera funciona. así que he pensado que voy a compartir lo que yo hice por si alguien tropieza con él más adelante 🙂

    jim

    solución agradable, yo lo seguí.
    solución inteligente! No estoy seguro de si has visto mi respuesta, pero hay una variable de entorno de configuración integrada en ADT así que usted puede desactivar fácilmente el air. prefijo.

    OriginalEl autor jim

Dejar respuesta

Please enter your comment!
Please enter your name here