Вверх ↑
Этот топик читают: Гость
Ответов: 163
Рейтинг: 33
#1666: 2018-11-30 13:51:16 ЛС | профиль | цитата
Так как подпись apk своим ключем вызывает интерес, делюсь своим решением, которым пользуюсь уже полгода. В архиве находятся модифицированные android.sha, android.exe и файл с инструкцией.
инструкция
1. Создаем хранилище с ключем, как описано здесь: https://startandroid.ru/ru/uroki/vse-uroki-spiskom/221-urok-123-kak-podpisat-prilozhenie-utility-keytool-i-jarsigner.html
Строка запуска keytool будет иметь следующий вид:

keytool -genkey -keystore android-release-key.keystore -storepass пароль_хранилища -alias android -keypass пароль_ключа -dname "CN=ваше_имя_или_псевдоним" -validity 20000

Вместо "пароль_хранилища" и "пароль_ключа" подставьте придуменные вами пароли; можно использовать одинаковые пароли.
Так же не забудьте про "ваше_имя_или_псевдоним".

В процессе создания ключа keytool запросит у вас дополнительные параметры (страна, организация и т. д.), но они в принципе не важны и можно оставить их пустыми.

2. Перемещаем созданное хранилище (файл android-release-key.keystore) в папку \Elements\Android\code\result.
В той же папке создем файл "ant.properties" следующего содержания:

key.store=android-release-key.keystore
key.alias=android
key.store.password=пароль_хранилища
key.alias.password=пароль_ключа

3. Запускаем HiAsm и добавляем новый компилятор (сервис - компиляторы - добавить), например, "Android_release".
Расширение - java
Путь - путь_до_папки_HiAsm\compiler\Android\android.exe
Командная строка - "%fname%" "%upath%" "%opath%" release

Сервис - пакеты - Android - ставим галку на новом компиляторе.

4. Идем в папку \compiler\Android и переименовываем файлы android.exe и android.sha во что-нибудь другое (например, добавляем в начале "_").
Распаковываем сюда модифицированные версии этих файлов из архива.

Готово. Теперь остается перед компиляцией выбирать компилятор "Android_release", и apk будет подписан вашим ключем.
Если же выбрать "Android", то apk, как и раньше, будет подписан отладочным ключем.



Модифицированный компилятор умеет делать еще 2 вещи:
  1) компилировать проект без гугловской библиотеки поддержки.
  2) По окончанию компиляции и перед очисткой папок bin, res, libs, src (в директории result) создавать их копии в папке _last.
Первое пользователям пакета будет бесполезно, т.к. требует еще и модификации некоторых файлов пакета. Второе упрощает доступ к исходникам создаваемого приложения и экономит время при поиске в них ошибок.
карма: 3

0
Ответов: 4621
Рейтинг: 746
#1667: 2018-11-30 14:06:25 ЛС | профиль | цитата
Можешь сразу написать Install.his, который зарегистрирует второй компилятор.
карма: 26

0
Ответов: 3
Рейтинг: 0
#1668: 2018-12-25 10:15:51 ЛС | профиль | цитата
Доброго времени суток. Подскажите пожалуйста как сделать чтобы программа могла создавать файл в системе и считывать его. Никак не могу решить данную задачу. При записи выходит сообщение Read only file system.
Make(android)
ver(4.05 build 186)
Add(MainActivity,2953706,21,105)
{
link(onCreate,14958838:doFormat,[(223,111)(223,76)])
}
Add(StringList,5859936,385,168)
{
Point(doSave)
Point(FilePath)
Point(doLoad)
link(onChange,1915656:doSetText,[])
link(onError,3026847:doShow,[(478,181)(478,223)])
link(String,5578263:Value,[(391,138)(321,138)])
link(FilePath,14958838:Result,[(398,114)(391,114)])
}
Add(EditText,5578263,315,77)
{
Left=10
Top=10
}
Add(Button,11611803,210,168)
{
Left=20
Top=45
Caption="Добавить"
Point(onClick)
link(onClick,5859936:doAdd,[])
}
Add(Button,4622913,210,266)
{
Left=20
Top=100
Caption="Загрузить"
Point(onClick)
link(onClick,5859936:doLoad,[(314,272)(314,202)])
}
Add(Environment,5533442,364,21)
{
Point(Data)
}
Add(FormatStr,14958838,385,70)
{
DataCount=1
Mask="%1/arhiv.txt"
Point(Result)
link(Str1,5533442:Data,[(391,54)(398,54)])
}
Add(TextView,1915656,546,168)
{
Left=10
Top=130
}
Add(Button,6956926,210,210)
{
Left=20
Top=70
Caption="Сохранить"
Point(onClick)
link(onClick,5859936:doSave,[(314,216)(314,195)])
}
Add(ToastNotification,3026847,539,217)
{
}
Add(GetDataEx,12845948,595,266)
{
}


Редактировалось 1 раз(а), последний 2018-12-25 10:16:17
карма: 0

0
Ответов: 4621
Рейтинг: 746
#1669: 2018-12-25 12:00:19 ЛС | профиль | цитата
Environment.Data: Каталог данных (в виде объекта File)
А FormatStr работает со строками.
Пробуй так:


Add(MainActivity,8780049,77,133)
{
link(onCreate,14958838:doFormat,[])
}
Add(StringList,5859936,448,231)
{
Point(doSave)
Point(FilePath)
Point(doLoad)
link(onChange,1915656:doSetText,[])
link(onError,3026847:doShow,[(534,244)(534,286)])
link(String,5578263:Value,[(454,201)(377,201)])
link(FilePath,14958838:Result,[])
}
Add(EditText,5578263,371,140)
{
Left=10
Top=10
}
Add(Button,11611803,266,231)
{
Left=20
Top=45
Caption="Добавить"
Point(onClick)
link(onClick,5859936:doAdd,[])
}
Add(Button,4622913,266,329)
{
Left=20
Top=100
Caption="Загрузить"
Point(onClick)
link(onClick,5859936:doLoad,[(370,335)(370,265)])
}
Add(Environment,5533442,413,28)
{
Point(Data)
}
Add(FormatStr,14958838,455,133)
{
DataCount=1
Mask="%1/arhiv.txt"
Point(Result)
link(Str1,10029338:FilePath,[])
}
Add(TextView,1915656,602,231)
{
Left=10
Top=130
}
Add(Button,6956926,266,273)
{
Left=20
Top=70
Caption="Сохранить"
Point(onClick)
link(onClick,5859936:doSave,[(370,279)(370,258)])
}
Add(ToastNotification,3026847,595,280)
{
}
Add(GetDataEx,12845948,651,329)
{
}
Add(File,10029338,441,70)
{
Point(FilePath)
link(NFile,5533442:Data,[])
}
Вероятно, в Environment можно добавить свойство, включающее выдачу путей в виде строк.
карма: 26

0
Ответов: 3
Рейтинг: 0
#1670: 2018-12-25 12:09:11 ЛС | профиль | цитата
При попытке записать. Ошибка: Premission denied
карма: 0

0
Ответов: 4621
Рейтинг: 746
#1671: 2018-12-25 12:19:14 ЛС | профиль | цитата
Посмотри что выдаёт на выходе FormatStr. Попробуй замени точку File.FilePath на скрытую точку File.FileName.

Редактировалось 1 раз(а), последний 2018-12-25 12:19:54
карма: 26

0
Ответов: 3
Рейтинг: 0
#1672: 2018-12-25 12:27:24 ЛС | профиль | цитата
Ситуация не меняется. Файл не создается. Сообщение: data (is a directory)
карма: 0

0
Ответов: 10
Рейтинг: 1
#1673: 2019-01-09 20:58:29 ЛС | профиль | цитата
israr05 писал(а):
При попытке записать. Ошибка: Premission denied

Скорее всего надо добавить в манифест разрешения на чтение и запись файлов
при помощи компонента GreM (ссылка на первой странице) "Permission".
Я добавлял два компонента:
PermName=custom
первый: CustomPermission=android.permission.READ_EXTERNAL_STORAGE
второй: CustomPermission=android.permission.WRITE_EXTERNAL_STORAGE
карма: 1

0
Ответов: 1328
Рейтинг: 69
#1674: 2019-01-11 18:59:18 ЛС | профиль | цитата
GreM, спасибо огромное за инструкцию, все получилось. Теперь новая проблема:
Сбой при загрузке
Сбой при загрузке
Целевой уровень API для вашего приложения – 15. Чтобы обеспечить необходимую производительность и безопасность, целевой уровень API должен быть не ниже 26. Установите для своего приложения целевой уровень API не менее 26. Подробнее…
Что с этим можно сделать?
карма: 2

0
Ответов: 839
Рейтинг: 17
#1675: 2019-01-14 06:57:28 ЛС | профиль | цитата
Подскажите устанавил пакет ,но нет палитры элеметов она пуста ,что делать
карма: 0

0
Ответов: 4621
Рейтинг: 746
#1676: 2019-01-14 11:55:53 ЛС | профиль | цитата
В пути к папке HiAsm не должно быть русских букв. Проверить всё ли установилось (наличие папок HiAsm\compiler\Android, HiAsm\Elements\Android).
карма: 26

0
Ответов: 1328
Рейтинг: 69
#1677: 2019-01-14 17:09:08 ЛС | профиль | цитата
Netspirit, не знаешь где можно настроить целевой уровень api, не пускает приложение в плеймаркет?
карма: 2

0
Ответов: 4621
Рейтинг: 746
#1678: 2019-01-14 17:35:51 ЛС | профиль | цитата
В главном кмопоненте MainActivity есть свойство Application.Compatibility - не знаю то ли, что нужно. Оно больше внутри компонентов предполагалось использовать.
карма: 26

0
Ответов: 839
Рейтинг: 17
#1679: 2019-01-14 18:53:54 ЛС | профиль | цитата
теперь другая проблема ,копилирует в java ,а не в apk ,в чем может быть проблема
карма: 0

0
Ответов: 1328
Рейтинг: 69
#1680: 2019-01-14 19:18:20 ЛС | профиль | цитата
GAv, в компиляторах, что выбрано? если copy, то так и будет
карма: 2

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)