Kategorien
iPhone/iOS

Probleme mit dem Apple Application Loader

Die hochzuladene .app Datei befindet sich im Ordner Projekt-Name/Build/foo.app. Diese muss gezippt werden und wird dann akzeptiert vom Loader. Um vorab zu testen, welche Probleme es gibt, sollte man Button links oben, einstellen: Active Configuration->Release. Der Button ist derselbe, bei dem man auch zwischen Simulator und Device wechseln kann.

Wenn meine seine App für Apple bereitstellt zum Testen und zum ersten Mal mit dem Application Loader hochlädt, kann es zu folgenden Problemen kommen:

application executable is missing a required architecture At least one of the following architecture(s) must be present: armv6

Dieser Fehler kann nur mit einem Versionswechsel des Application Loaders verhindert werden. Wer Version 1.4.1 hat sollte sich 1.4 oder Application Loader 1.3 installieren.

An dieser stellen fängt Apple auch gleich an zu rummeckern, dass das Icon in 57×57 Pixel groß und als png vorliegen muss. Der Sinn entzieht sich total, weil Icons in der Größe auf dem iPad und iPhone4 richtig pixelig aussehen. Deswegen ist zu empfehlen mehrer Icons anzulegen in den folgenden Größen:

57×57 (iPhone), 114×114 (iPhone4), 72×72 (iPad) und 512×512 (wer weiss, was noch kommt)

Kategorien
iPhone/iOS Mobil

Wie stelle ich meine App in den App Store Anmeldung

Wenn ihr eine App programmiert habt und das gute Stück in den App Store uploaden wollt für die ganze Welt,müsst ihr euch einem Account vom Apple Developer Programm besorgen. Dieser kostet 99$ pro Jahr und es sollte beachtet werden, dass Apple die App aus dem App Store schmeist, wenn der Account nicht bezahlt wird jährlich.

Die App muss danach auf ITunes Connect registriert werden:

  1. App Name: wird nur im App Store angezeigt.
  2. SKU Number: selbst ausgedachte ID für die App
  3. Bundle ID: im apple developer center zu erstellen
  4. App Beschreibung Plain ohne HTML (max 4000 Bytes)
  5. Keywords für die Suche, sehr wichtig. Tipp: von Google Analytics Keywords inspirieren lassen (max 100 Bytes, entspricht ca. 10 Keywords)
  6. 2 Kategorien, von 20 möglichen, in denen die App erscheinen soll z.B: Lifestyle oder  Utilities
  7. eine Support Webseite und/oder eine allgemeine Webseite über die App (beides optional)
  8. Screenshots der App, die im App Store angezeigt werden sollen. vom iPhone und/oder iPad
  9. ein Logo für den App Store in 512×512 Pixel und mindestens 72dpi

Der App Code kann konfortabel mit dem Xcode Application Loader (/Developer/Applications/Utilities/Application Loader.app) hochgeladen werden.

Bei Problemen lesen Sie Xcode Application Loader

Kategorien
iPhone/iOS

IOS überprüfen, ob eine Kamera vorhanden ist

Da die Apps auf allen IOS Geräten funktionieren müssen, wozu auch der iPod Touch gehört, der keine Kamera in den älteren Versionen enthält, sollte Folgendes beachtet werden:

  1. Bei notwendiger Verwendung der Kamera innerhalb der App, muss in der foo-Info.plist ein Vermerk unter Required device capabilities gemacht werden. Dann wird die App nur für Geräte installiert und angezeigt, die eine Kamera haben.
  2. Bei einer möglichen Verwendung der Kamera, sollte dies im Code geprüft werden:
        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] == NO){
            NSLog(@"Kamera nicht vorhanden");
        }
        else{
            NSLog(@"Kamera vorhanden");
        }
Kategorien
CodeIgniter Framework SEO

$_GET Variablen in CodeIgniter und SEO

CodeIgniter hat aufgrund der Sichheitsprobleme von Get-Variablen dieses standmäßig deaktiviert, d.h. sie werden überschrieben beim Starten der Webseite.

Ein Möglichkeit GET-Variablen trotzdem zu nutzen und gleichzeitig suchmaschinenfreundliche URLs zu erzeugen ist:

$this->uri->segment(3)

Dieser Befehl gibt bei einer URL namens:http://www.foo.de/1/2/3/ den Wert 3 zurück.

Der Vorteil ist, dass keine Namen-Wert-Paare mehr in der URL befindlich sind, sondern nur noch die Werte, was die Länge der URL verkürzt und sehr seo freundlich ist. Der Nachteil ist, dass die Reihenfolge sich natürlich verändern kann und es dann zu Problen kommt.

Kategorien
iPhone/iOS WordPress

iPhone Oberfläche für WordPress

Mit dem Plugin WPtouch ist das kinderleicht erledigt und funktioniert bestens. Gerade habe ich das Plugin für meinen Blog installiert und bin begeistert.

20110819-101522.jpg

Kategorien
iPhone/iOS

Erstellen einer zweiten Lite Version einer App

Wenn man ein Projekt kopieren will, um bspw. eine Lite-Version einer App zu erstellen, muss man folgende Schritte durchführen:

  1. kopieren des Projekt Verzeichnisses
  2. Projekt umbennen in Xcode: Project->Rename
  3. erstellen einer neuen App ID auf http://developer.apple.com/
  4. ändern der eingegebenen Bundle ID in der foo-Info-plist
  5. löschen des build-Ordners des Projektes in der Terminal Konsole mit dem folgenden Befehl. Natürlich muss man sich im Projekt Verzeichnis befinden dafür. Die Xcode Funktion „Clean all Targets“ reicht leider nicht aus.
rm -rf build/
Kategorien
CodeIgniter Framework PHP

RESTful Services in CodeIgniter und White Screen

Um einen RESTful Service in CodeIgniter einzubauen, nutzt man am besten die sehr gute Bibliothek von Phil Sturgeon, vielen Dank dafür!

Ich habe mich leider mit dem White Screen of Death bei Code Igniter rumschlagen müssen und folgende Lösung gefunden: Die Bibliothek in der neusten Version 2.4 funktioniert nicht mit CodeIgniter 1.7x. Es sollte die Version 2.2 der Bibliothek installiert werden.

Um das zu überprüfen, kann die Versionsnummer von CodeIgniter in der Datei system/codeigniter/CodeIgniter.php herausgefunden werden.

Wenn der REST-Service läuft, sollte man übrigends die folgende Zeile in der  REST_controller.php abändern,damit deutsche Umlaute und Sonderzeichen korrekt ohne Error : Entity ‚ouml‘ not defined usw. angezeigt werden:

Zeile 693

$value = htmlspecialchars(html_entity_decode($value, ENT_QUOTES, 'UTF-8'), ENT_QUOTES, "UTF-8");
Kategorien
CodeIgniter Framework PHP Webdeveloper Tools

CodeIgniter debuggen mit FirePHP

Codeignitor macht einem das debuggen nicht einfach, weil bei einem normalen printf oder var_dump() Ausgaben die komplette Seite nicht geladen wird und es nur einen Serverfehler zurückgibt. Deshalb wird der Entwickler gezwungen, sein Projekt ordentlich zu debuggen, es gibt mehrer Möglichkeiten:

  1. per Logfile
  2. nutzen der oben benannten Funktion und danach ein die()
  3. XDebug, was aber lokal einfach möglich ist
  4. FirePHP für den Firefox
  5. per Codeigniter Profiler

Die Installation von FirePHP in Codeignitor ist sehr gut hier beschrieben.

Die Debug Informationen können mit folgendem Code in der Firebug Konsole ausgegeben werde:

$this->firephp->log('Message');

Der sehr gute Codeigniter Profiler kann mit dem folgenden Befehl aktiviert werden:

            $this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate");
            $this->output->set_header("Cache-Control: post-check=0, pre-check=0");
            $this->output->set_header("Pragma: no-cache");
            $this->output->enable_profiler(TRUE);
Kategorien
iPhone/iOS

Grundlagen für die iPhone Entwicklung (IOS)

Apple macht es einem nicht einfach, die Firma zu mögen. Besonders als Entwickler für das (wirklich tolle) iPhone werden einem verschiedenste Stolpersteine in den Weg gelegt:

  1. Entwickelt werden darf nur auf einem MAC und der kostet bekanntlich. Ältere und erschwinglichere MACs sind ausgeschlossen, weil ein aktuelles MAC OS installiert werden muss (Minimum 10.5 für Xcode 3.26).
  2. Man muss eine Lizen kaufen für 100$ (im Jahr!), wenn man seine Apps, bevor man sie in den App Store stellen will, auch mal auf seinem iPhone testen will.
  3. Das iPhone kostet einen Haufen Asche  🙂
  4. Sprache Objective C ist noch aus den 80er Jahren und das merkt man auch, trotz objektorientiert, ich sag nur Garbage Collector und Fehlermeldungen, mit denen man nichts anfangen kann (manchmal einfach auch garkeine Fehlermeldung, oder nur den sigbert).
  5. Soll die App auch im App Store bleiben, muss die Entwicklerlizenz jedes Jahr neu gekauft werden, d.h. 100$ pro Jahr Gebühren. Allerdings kann man dafür so viel Apps reinstellen wie man will.
  6. wenn alles überlebt ist: Der App Strore
Kategorien
iPhone/iOS

Worauf muss geachtet werden um die App in den App Store zu bekommen?

Wenn man die Grundlagen heil ohne Genickschuss überstanden hat, muss man auch noch persönlich an Apple vorbei. Bei der Lektüre der „App Store Review Guidelines“ von Apple, aus dem alle folgenden Zitate stammen, bin ich schließlich auf so lustig-dreiste Dinge gestoßen, dass ich das posten musste 🙂

Aus der Einleitung:

  1. „Wir (Apple) haben mehr als 350.000 Apps im App Store. Wir brauchen keine langweiligen Apps“ (Original: Fart apps, was man mit langweilig oder Pups übersetzen kann).
  2. Wenn die App nichts Praktisches macht oder nur kurzweiliges Entertainment bietet, kann die App abgelehnt werden.
  3. Apps, die zum Rauchen auffordern, werden abgelehnt.
  4. Jede App, die eine andere Plattform (als den App Store, Ovi-Store z.B.) nur benennen, fliegen raus.
  5. Wenn die App nur vorschlägt das iPhone nach der App Installation neu zu starten, kommt sie erst garnicht dazu 🙂
  6. Und der Hammer: Die Geodaten (wo befindet sich der User gerade), dürfen nur  benutzt werden, wenn es relevant für die App ist. Demnach müsste Apple wohl selber aus dem App Store fliegen 🙂
  7. Selbst, wenn das Design oder die Usability nicht sehr gut ist, gibts Stress, Zitat: „If your user interface is complex or less than very good, it may be rejected.“
  8. Verboten ist auch, den User dazu zu animieren, sein iPhone zu beschädigen: „Apps that encourage users to use an Apple Device in a way that may cause damage to the device will be rejected.“
  9. Schade ist Folgendes 🙂 : Apps containing pornographic material, defined by Webster’s Dictionary as „explicit descriptions or displays of sexual organs or activities intended to stimulate erotic rather than aesthetic or emotional feelings“, will be rejected. Was kann den dieser „Porno“ dafür?
  10. Die App darf nicht zum Trinken am Steuer auffordern 🙂

Die Liste kann ich jedem nur empfehlen. Ich bin gespannt, ob meine App, trotz dieser sehr hohen Barrieren, es in den App Store schafft, besonders Punkt 8 bis 10 machten einige Änderungen notwenig. Tschakka.