Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash Приложения: AIR, Zinc и тд. (http://www.flasher.ru/forum/forumdisplay.php?f=94)
-   -   Изменить идентификатор AIR приложения (http://www.flasher.ru/forum/showthread.php?t=210519)

a.konigin 25.03.2015 17:38

Изменить идентификатор AIR приложения
 
Проблема в обновлении приложения лежащего в GP и написанного на Java, на новое приложение AIR. Google play ругается на неправильное название пакета. Но как я понял не устраивает его не просто название apk файла, а идентификатора приложения, так как названия файлов - старого и нового совпадают. Идентификатор указывается в дескрипторе, однако в предыдущем id - есть нижнее подчеркивание, а сборщик AIR на нижнее подчеркивание ругается, и говорит что идентификатор должен состоять только из букв, цифр и точек. Есть ли способ переписать идентификатор после сборки APK.

Также скорее всего имеет место префикс air. Его получают все air приложения, однако скорее всего после установки, ибо при разборке APK в дескрипторе ID указан все еще без air. Простая замена ID в дескрипторе в собранном приложении не помогает, приложение перестает устанавливаться. Магазин говорит что приложение не оптимизировано, после оптимизации - что не подписано, ну а после подписи снова не оптимизировано и т.д.

AlexCooper 29.03.2015 01:31

Догадка ( создать ANE с Вашим ид, подключить к AIR и подписать тем же сертификатом что и старое на java )

Zebestov 29.03.2015 14:41

1. Префикс "air." устанавливается при сборке apk
2. Чтобы сделать апдейт приложение в плеймаркете, необходимо подписывать новый apk тем же сертификатом.

a.konigin 11.05.2015 09:52

Вот как решил, может кому пригодится. Все же изменил идентификатор после сборки. Для начала префикс AIR убрал переменной окружения Windows, теперь все приложения мои по умолчанию собираются без него. Но возникла проблема в следующем - у заказчика название приложения в идентификаторе разделялось нижним подчеркиванием, что опять же не допустимый символ для сборщика Air. В общем плюнул на это, собрал APK слитно без нижнего подчеркивания (apkname). Потом декомпилировал его apktool'ом. Вставил нижнее подчеркивание в индентификатор в дескрипторе, там кажется 2 строчки, переименовал папки, которые лежат одна в другой соответсвуя вашему дескриптору - например com/companyname/app_name, и из головной папки, текстовым редактором прошелся поиском по файлам с заменой совпадений appname -> app_name. Потом все тем же Apktool'ом собрал, оптимизировал zipalign'ом, подписал jarsigner'ом и снова оптимизировал. И гугл плей принял )

В связи с этим вопрос, нельзя ли как-то разрешить испозльование нижнего подчеркивания сборщиком? Танцев с бубном можно было бы избежать.

Инструкцию частично подсмотрел тут, http://stackoverflow.com/questions/9...-inside-an-apk
пользователь brad51 подробно все изложил и даже пакет всего необходимого приложил, но у меня воспользоваться им полностью не вышло, java выдавала ошибки, по этому качал эти же утилиты в интернете. И еще на заметку, 64 разрядная windows оказалась слабым помощником, по этому я ставил виртуалку XP и собирал половину в ней.

Zebestov 11.05.2015 11:50

Цитата:

Сообщение от a.konigin (Сообщение 1182249)
Для начала префикс AIR убрал переменной окружения Windows, теперь все приложения мои по умолчанию собираются без него.

Интересно. Можно подробней?

a.konigin 11.05.2015 12:43

Цитата:

Сообщение от Zebestov (Сообщение 1182251)
Интересно. Можно подробней?

Свойства системы -> дополнительно -> переменные окружения. Создаете новую переменную AIR_NOANDROIDFLAIR и даете значение ей true. Можно еще через командную строку
Код:

set AIR_NOANDROIDFLAIR=true
Ну а после перезагрузки собирайте приложения снова. Но будьте внимательны, если до этого в id можно было написать только appname, и приложение бы собиралось с идентификатором air.appname, то теперь такое приложение без префикса на устройствах не открываются вызывая ошибку и имея другой значок apk файла. Нужно добавлять префикс вручную, например com.appname. Если не ошибаюсь, это имеет значение для файловой системы

Zebestov 11.05.2015 13:51

О! Буду знать :) может пригодится.
Что до ID, то я с этим не балуюсь и создаю его сразу по правилам.

caseyryan 11.05.2015 14:29

Цитата:

Сообщение от a.konigin (Сообщение 1182255)
Свойства системы -> дополнительно -> переменные окружения. Создаете новую переменную AIR_NOANDROIDFLAIR и даете значение ей true. Можно еще через командную строку
Код:

set AIR_NOANDROIDFLAIR=true
Ну а после перезагрузки собирайте приложения снова. Но будьте внимательны, если до этого в id можно было написать только appname, и приложение бы собиралось с идентификатором air.appname, то теперь такое приложение без префикса на устройствах не открываются вызывая ошибку и имея другой значок apk файла. Нужно добавлять префикс вручную, например com.appname. Если не ошибаюсь, это имеет значение для файловой системы

Круто. Как-то искал способ от этого избавиться, не нашел, и забил. Теперь точно уберу)

Zebestov 11.05.2015 15:34

Меня в этом всем лишь одно смущает. Этот воркэраунд будет работать вечно?

a.konigin 11.05.2015 18:48

Цитата:

Сообщение от Zebestov (Сообщение 1182262)
Меня в этом всем лишь одно смущает. Этот воркэраунд будет работать вечно?

Если вы об обходе добавления префикса говорите, то думаю да. Как я понял, сам по себе этот идентификатор никакой роли не играет, кроме того, что он идентифицирует именно AIR приложения. И приложение без него будет функционировать абсолютно нормально. Вот с сайта хелпа цитата
Цитата:

Примечание. Префикс, добавляемый к идентификатору приложения, можно использовать для идентификации приложений AIR на Android Маркете. Если идентификация приложения AIR на основе префикса не требуется, необходимо распаковать файл APK, изменить идентификатор приложения и повторно упаковать его, как описано в статье Отклюение анализа приложений AIR for Android.
Предусмотрели его отключение. Только вот указанной в этом примечании статьи почему-то уже нет ))

http://help.adobe.com/ru_RU/air/buil...98b2f93a0-7fff


Часовой пояс GMT +4, время: 22:18.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.