Rady a tipy pro vyvojApache Cordova a tvorba hybridních aplikací

Moderátoři: mArtinko5MB, mArtinko5MB

Odpovědět
Coatl
Nové Androidě
Příspěvky: 17
Registrován: ned 11. bře 2018 9:28:36

Apache Cordova a tvorba hybridních aplikací

Příspěvek od Coatl »

Zdravím, dělá tady někdo s "apačskou kurvou"? Udělal jsem několik ne zcela triviálních aplikací v JavaScriptu, a pro jejich převod na android jsem se musel začít učit s ní pracovat. Ale pořád mám nějaký problémy, připadá mi, jako by to mělo vlastní vrtošivou vůli...

Např. se mi občas stane - a to je hlavní důvod, proč jsem založil tuhle diskusi - že hotová aplikace si vyžaduje úplně zbytečná povolení, jako třeba čtení a zápis na externí kartu. Nevím, kde se to tam bere. Z pluginů to není, nebo by být nemělo. Jak tomu můžu zabránit? Smazat zmínky "uses-permission" ze souboru AndroidManifest.xml nepomáhá, androidmanifest se při buildování přepíše zpátky. Navíc, souborů s tímto názvem je v celém cordova projektu rozeseto třeba 10, a zdá se mi, že s každým projektem jsou umístěny někde jinde a tvoří se podle jiných pravidel... To se ta Cordova updatuje rychleji než k tomu stíhají autoři dělat návod? Proč nikde na internetu není rada na odstranění zbytečných permisí, která by nebyla zastaralá a fungovala by?
Pablo74
Stálý androiďák
Příspěvky: 65
Registrován: sob 09. srp 2014 21:04:12
Typ mobilu / ROM: GT-N7000

Re: Apache Cordova a tvorba hybridních aplikací

Příspěvek od Pablo74 »

Ano, s Cordovou pracuje velký množství vývojářů. Koukám, že po problémech s podepisováním aplikace (mimochodem: vyřešeno?) máš další problémy.

Ono by to chtělo víc info: co máš nainstalováno a jak nakonfigurováno; jak vytváříš nový projekt, jak provádíš build atd. Takhle je to jen hádání naslepo. S popsaným problémem jsem se nikdy nestetkal. Prošel sis aspoň stack overflow fórum?
Coatl
Nové Androidě
Příspěvky: 17
Registrován: ned 11. bře 2018 9:28:36

Re: Apache Cordova a tvorba hybridních aplikací

Příspěvek od Coatl »

Používám Cordovu, Gradle, Android Studio... Zvláštní na tom je, že jsem v rozmezí asi týdne tvořil dvě velmi podobný aplikace, každá z nich má tutéž skupinu pluginů. Přesto u tý první nevzniknul problém s nadbytečnýma povoleníma, a u tý druhý jo. Jedinej rozdíl, kterej mě napadá, je, že tu první jsem nejdřív buildoval bez některých pluginů (admob, network-information) a dodával je dodatečně, zatímco u tý druhý jsem hned nainstaloval pluginy a buildoval to hned napoprvý už s nima. Ale nemyslím si, že by v tom měl být rozdíl, protože ještě jiná moje ("nultá") aplikace měla tytéž problémy s povoleníma, a přitom jsem pluginy dodával taky až později. Aby v tom byl pořádnej hokej, tak v "nultý" aplikaci jsem vše vyřešil tak, že jsem smazal dodatečný povolení ze všech souborů AndroidManifest.xml a buildnul. Ale teď nově nemůžu zopakovat tentýž postup u druhý aplikace, protože ta struktura projektu se vytvořila úplně jinak, androidmanifesty jsou jinde, jako by se mezitím cordova updatovala a buildilo se to zase podle jiných pravidel.

StackOwerflow jsem zkoukával hodněkrát, všude jsou na tuhle otázku zastaralý nebo nefunkční rady. Jestli mi tady nikdo neporadíte, budu si tam asi muset založit účet a zeptat se tam přímo.

A ne, problém s podepisováním aplikace jsem ještě nevyřešil, díky za optání. Jenom jsem ho odložil, prostě jsem to podepsal pomocí původního klíče. Ale teď, jak finišuju nový dvě aplikace, je to zase velmi aktuální...
Pablo74
Stálý androiďák
Příspěvky: 65
Registrován: sob 09. srp 2014 21:04:12
Typ mobilu / ROM: GT-N7000

Re: Apache Cordova a tvorba hybridních aplikací

Příspěvek od Pablo74 »

Tak snad zkusit virtuální počítač (např. VirtualBox) a zkusit to v něm. Že by se Cordova sama updatovala, to teda nevím jak, když je spouštěná ručně přes příkazovaj řádek. Leda že bys používal jinej způsob než já.

Taky jsem psal, že by bylo dobrý znát verzi Cordovy a popsat postup, jakým vytvoříš projekt, přidáváš pluginy, provádíš build. Bez toho se jaksi nehneme dál. Taky mi přijde divný, že bys měl více souborů manifestu v jednom projektu.

Fakt nemám čas řešit něco takhle nekonkrétně popsanýho; snad se ti teda ozve někdo další.
Coatl
Nové Androidě
Příspěvky: 17
Registrován: ned 11. bře 2018 9:28:36

Re: Apache Cordova a tvorba hybridních aplikací

Příspěvek od Coatl »

Cordovu mám verzi 8.0.0.
Aplikaci tvořím víceméně tak, jak je popsáno v manuálu: (přes command lajnu node.js)
-cordova create ...
-cordova add platform android
-nasázim html5 soubory do www-složky projektu
-přidám pluginy (cordova plugin add ...)
-cordova build android.
Když stáhnu přes bluetooth výsledný debug soubor .apk do mobilu a chci ho tam nainstalovat, tak to obvykle vyžaduje ty nadbytečný oprávnění. V aktuálním projektu mám opravdu asi 10 souborů jménem AndroidManifest.xml, rozesetých na různých umístěních. Ale tentokrát jen jeden z nich obsahuje seznam oprávnění. Je umístěn ve složce platforms\android\app\build\intermediates\manifests\full\debug. Jak jsem říkal, když ho změním, tak se při buildu znovu přepíše.

Když vezmu např tento dotaz na stackOverflow, tak rada úplně nahoře nic neřeší, protože soubor plugins/android.json má úplně jiný složení. Zkoušel jsem i radu těsně pod ní, že se do config.xml zapíše hook na vymazání odpovídajících permisí na odpovídajícím místě manifestu, ale nic se tam nesmazalo... :cry:
Pablo74
Stálý androiďák
Příspěvky: 65
Registrován: sob 09. srp 2014 21:04:12
Typ mobilu / ROM: GT-N7000

Re: Apache Cordova a tvorba hybridních aplikací

Příspěvek od Pablo74 »

Cordova 8.0.0 je ok.

Kód: Vybrat vše

cordova build android --release
(jsou tam dvě pomlčky)

No jo, teď jsem mrkl na svůj projekt a opravdu tam mám 12 AndroidManifest.xml souborů s různým datem a velikostí. Takže potvrzuju. Já teda nikdy žádný oprávnění ručně neřešil.
Coatl
Nové Androidě
Příspěvky: 17
Registrován: ned 11. bře 2018 9:28:36

Re: Apache Cordova a tvorba hybridních aplikací

Příspěvek od Coatl »

Build parametr --release a následná instalace souboru app-release-unsigned.apk bohužel na oprávněních nic nemění...
Jsem nasranej :evil: :) Taková maličkost, a tolik je s tím zlobení...
Pablo74
Stálý androiďák
Příspěvky: 65
Registrován: sob 09. srp 2014 21:04:12
Typ mobilu / ROM: GT-N7000

Re: Apache Cordova a tvorba hybridních aplikací

Příspěvek od Pablo74 »

Coatl
Nové Androidě
Příspěvky: 17
Registrován: ned 11. bře 2018 9:28:36

Re: Apache Cordova a tvorba hybridních aplikací

Příspěvek od Coatl »

SNAD VYŘEŠENO

Zjistil jsem, že ta nechtěná trojka oprávnění (WRITE_EXTERNAL_STORAGE, READ_PHONE_STATE, READ_EXTERNAL_STORAGE) se tam občas dostane, když v JavaScriptu pracuju s localStorage. Naštěstí z toho tentokrát nevzniknul novej problém, protože tam localStorage vůbec nevyužívám, jenom se mi tam připletla část kódu, která její existenci testuje. Po vymazání tohohle zbytečnýho kousku kódu mi to ovšem nejdřív začalo házet BUILD FAILED. Až když jsem z projektu odstranil android platformu a znovu ji přidal, tak se to úspěšně nabuildovalo a oprávnění zmizely!

Jedno pořád nechápu: jak se mi podařilo se těch oprávnění zbavit v jiný aplikaci, kterou jsem vytvořil asi před měsícem a která extenzivně využívá localStorage... Přepsal jsem tehdy manifesty, a bylo vymalováno. Teď to nešlo.
Odpovědět

Zpět na „Rady a tipy pro vyvoj“