iOS programozás

Marmint, az appod assets.xcassetse nem tartalmazza a frameworkodben levo assets.xcassets tartalmat? Vagy a felkerulo Frameworkodbol hianyzik az abban levo assets.xcassets?

Az exportált projektben csak egy .car fájl van, gondolom az a projekté, a frameworkből, egy ilyet csinál:
04
Ebben már nincs olyan opció, hogy show package contents, szóval itt már nem tudom megnézni.

Az is konyvtar vagy valami tomoritett file, abba is bele tudsz nezni. Most nincs keznel olyan projekt, ahol sajat frameworkot hasznalok, de ebbe is bele kellene tudnod nezni.

Dupla kattintással bele tudok nézni, most vettem észre :DD
És ott vannak benne az asseteim. Szóval, most végképp nem értem miért nem találja.

Jartam mar ugy, hogy ha ugyonaz volt a neve (tehat assets.xcassets), akkor nem talalta meg. Nevezd at az egyike, pl a frameworkben levot ChessBoardKitAssets.xcassets -re. A telefon logjat, ha nezed, abban semmi nem latszik, amikor hasznalni probalsz belole valamit?

Sajnos nem jó, ugyanúgy nem találja. Esetleg megpróbálom szimplán bemásolni a projektbe, és nem az assets folderből megnyitni.

Szerintem ilyenkor nem az alkalmazás bundle-be kerül, hanem a framework bundlebe.
Szerintem próbáld meg ezzel:

let image = UIImage(named: "YourImage", in: Bundle(for: YOURFRAMEWORKCLASS.self), compatibleWith: nil)
1 kedvelés

Ez megoldotta, köszönöm :)

Ez a Safari őrületbe kerget:
Saját iPhoneomon ha meg akarok nyitni egy PGN fájlt akkor szépen hozzárendeli az appomhoz, és felkínálja a letöltést.

Még az is működik, hogy ha AirDrop-on át küldöm, azonnal megnyitja automatikusan. Vagy iCloud files-ból is szépen hozzárendeli az appomat a PGN fájlokhoz.

Ezek után feltettem egy másik iPhone-ra is az appot. (12.0.1 mind2)

Itt viszont betölti előnézetben a böngésző, és nem lehet a fájllal semmit sem csinálni.

Egyszerűen nem tudom elképzelni, hogy ugyanazt a fájlt miért máshogy nyitja meg. Vagy valahol van erre egy Safari beállítás, hogy ne mutasson előnézetet?

  • kipróbáltam most iPaden és ott is kiadja a letöltési lehetőséget, szóval ott is jó

A masik telefonra hogy kerul at a file? Nincs pl proxy beallitva? Vagy barmi egyeb, ami tonkreteszi a mime typeot? Szoval az lesz itt a baj, hogy nem ismeri fel a tipust, es a kapott filetypera van jobb match az adott eszkozon.

Mind 2 telefonra úgy kerül(ne) rá, hogy pl ezen az oldalon https://chess-db.com/public/pinfo.jsp?id=5000017 belekattintasz rögtön az oldal elején a “PGN Database (ViswanathanAnand.pgn)” nevű linkre.

Proxyról nem tudok, ez a második telefon most lett teljesen újratelepítve nemrég.

Milyen appok vannak telepitve ezen az iPhoneon? Ugye legalabb egyszer el volt mar inditva az alkalmazas rajta? A megnyitas tenye ugyan fura, mert a szervertol “application/octet-stream” tipussal jon, ahelyett, hogy “application/vnd.chess-pgn” lenne a mime, viszont ezt igazabol nem kellene megnyitni. Raadasul a server kuld filenevet is a “Content-Disposition” headerkent.

Vissza lett rakva egy iCloud mentés, szóval, ahogy nézem 72 app van, de egyik sem olyan, hogy PGN-t tudna megnyitni.

Nem feltetlen a pgn-t kell tudnia megnyitni, mivel a filerol nem derul ki, hogy tenyleg pgn-e. Tehat barmilyen app bekavarhat itt, ami barmit meg tud nyitni. Es ha egy ilyen barmileyn filera (tehat lehet az egy korabbi lofasz.bin vagy egy kiskakas.XXD, tehat barmi, ami a generikus “application/octet-stream” tipussal jott) korabban az lett mondva, hogy Safarival nyiljon meg, akkor az azzal fog megnyilni. At kellene allitani a szervert, hogy megfeleli filetipust kuljdon.

Akkor ha jól értem akkor vagy a szervert kell átállítani (ezt nem tudom mivel ez egy tőlem teljesen független weboldal), vagy meg kell keresni melyik app kavarhat be. Nyilván ez meg nem egy járható út, mert még ha sikerülne is akkor is a jövőben gyakorlatilag bármelyik app “tönkre teheti” az egészet.

UI: van egy 3. iPhone, azon csinálok majd egy clean installt, csak a saját appom lesz rajta, megnézem majd, hogy úgy jó e.

A fileok azonositasa nem a kiterjesztes alapjan tortenik. http://homokozo.czo.hu/mime/ Itt csinaltam neked egy csomo peldat, amikor a .txt kepkent jelenik meg vagy amikor a jpg allomanynak a tartalmat latod (ami valid kep egyebkent) csak a mime ugy van melle beallitva, hogy az text tipus. Itt egyertelmuen a hiba a szerver oldalon van.

2 kedvelés

Köszi a magyarázatot :)

Létrehoztam egy mappát az appomból, hogy ha a user szeretne exportálni egy file-t, akkor azt oda szépen ki tudja menteni. Akkor észrevettem, hogy ott van alapból a realm adatbázis fájlja. .realm kiterjesztéssel, meg még pár hozzá tartozó file.

Apple dokumentációban azt írják, hogy ebben a mappában nem lehet olyan fájl, amit nem a user hozott létre az app-pal, tehát olyan fájlokat nem tárolhatok amik az alkalmazás működéséhez elengedhetetlenek, mivel ezt a mappát szinkroniálja a user icloud-jára.

    let cachesDirectoryPath = NSSearchPathForDirectoriesInDomains(.libraryDirectory, .userDomainMask, true)[0]

2 lehetőség maradt szerintem. Szóval vagy a cacheDirectoryba rakom, de a dokumentáció szerint, ha kevés a hely a telefonon, akkor a rendszer szó nélkül ürítheti a cache-t. Ami gáz, mert akkor a felhasználó elveszti az összes mentett partiját. (több ezer) Szóval emiatt beraktam a libraryDirectoryba, kérdés, hogy egy adatbázisnak valóban itt kéne, hogy legyen a helye? Vagy érdemes lenne e másik mappába tenni?

Nem egészen értem milyen mappát és hol hoztál létre.
Mert alapból nem azinkronizálja tudtommal az alkalmazás által létrehozott fajljait. Kivéve ha a files-ban hoztad létre. De azt nem hiszem, hogy a realm adatbázis ott jönne létre alapból.

A documents directory-ban hozza létre alapból. Ezt ugye úgy tudod elérni, hogy a Files appban van egy olyan, hogy saját iPhone, és ott van azoknak az appoknak a saját mappája, amelyekben be van kapcsolva a UIFileSharingEnabled és az LSSupportsOpeningDocumentsInPlace.

Alapból a Realm ebbe beleteszi a saját adatbázisfájlját, amivel ugye az a gond, hogy egyrészt a user hozzáfér (törölni tudja pl), másrészt bekerül az iCloud backupba (elvileg van egy flag amit átállítva nem tölti fel, de ebben az esetben nem tudom beállítani, mert nem én hozom létre a fájlt hanem a Realm) . Másrészt az Apple vissza is dobja az appot, és nem engedi feltölteni.

Itt jön a kérdés, hogy kerüljön e a cache mappába, vagy a Library-be. Library-be tettem, de kérdés, hogy biztos ott van e a helye az ilyen fájloknak.