Artikel-Schlagworte: „apple“

Infos zu einer App: Version – Sprache

Dienstag, 10. Mai 2011

Eine App für eine breite Kundschaft zu entwickeln bedeutet auch, eine Vielzahl an Variationen von Problemmöglichkeiten zu kreieren. Wenn dann wirklich ein Problem auftritt, möchte man vom Kunden möglichst genau dessen Rahmenbediengungen kennen.

Dazu zählt bei einer iOS App insbesondere:

Quelle:

Welche App hat er genau genutzt?

Version:

Welche Version der App wurde verwendet? Wurde evtl. eine alte Version genutzt und ein reines Update würde helfen?

Sprache:

Welche Sprache ist eingestellt? Kommt das Problem evtl. von einem Übersetzungsfehler / einer fehlenden Übersetzung?

iOS Version:

Apple verhindert zwar recht gut, Funktionen zu verwenden, die in bestimmten iOS Versionen noch nicht oder nicht mehr verfügbar sind, nichts desto trotz, ist es bei Fehlern wichtig, zu wissen, welche iOS Version verwendet wird.

Die meisten der Informationen sind über [[NSBundle mainbundle] infoDictionary] erreichbar:

App Identifier: [[NSBundle mainBundle] infoDictionary] valueForKey:@”CFBundleIdentifier”]
App Version: [[NSBundle mainBundle] infoDictionary] valueForKey:@”CFBundleVersion”]

Die Sprache erhält man über: [[NSUserDefaults standardUserDefaults] objectForKey:@”AppleLanguages”] objectAtIndex:0]

Und zu guter letzt die iOS Version:
[[NSProcessInfo processInfo] operatingSystemVersionString] Hierbei ist darauf zu achten, dass im Simulator als Betriebssystem die OSX Version angegeben wird.

Mit den aufgeführten Angaben lässt sich schon recht genau das technische Umfeld des Nutzers eingrenzen und diese Informationen können automatisch beispielsweise in einer E-Mail angehängt werden.

iPhone ADHoc build save to disk problem

Montag, 11. April 2011

Mit XCode können nicht nur Apps an den Apple App Store geschickt werden, registrierte Entwickler können auch an registrierte iOS Devices so genannte ADHoc Builds verteilen.

Dabei wird die Datei vom Ersteller signiert und dann lauffähig. Wie das ganze erledigt werden kann, habe ich in diesem Artikel beschrieben: ios-betabuilder-version-1-5-released. (Der BetaBuilder ist mittlerweile übrigens im MacStore erhältlich).

Was nun wenn es bei dem beschriebenen Vorgehen Probleme gibt? Beispielsweise kann es vorkommen, dass der Organizer bei dem Klick auf “Save to disk” einfach nicht reagiert, ohne Fehlermeldung etc. Ein Blick in die logs mittels:

tail -f /var/log/system.log

bringt ein

header check failed

um Vorschein.

Mögliche Lösungen:

- “Project clean” und neu builden

- XCode neu starten

- Rechner neu starten

- XCode neu installieren, Projekt cleanen, Projekt builden

Xcode 4 refactoring deaktiviert

Montag, 28. März 2011

Mit der neuen Version von Xcode hat Apple einige Neuerungen und Verbesserungen gebracht. Einige Dinge fallen jedoch negativ auf.

Da wäre die beliebte Refactoring-Funktion. Refactoring bezeichnet:

Refactoring (deutsch auch RefaktorierungRestrukturierung oder Umgestaltung) bezeichnet in der Software-Entwicklung die manuelle oder automatisierte Strukturverbesserung von Programm-Quelltexten unter Beibehaltung des beobachtbaren Programm-Verhaltens. Dabei sollen die Lesbarkeit, Verständlichkeit, Wartbarkeit und Erweiterbarkeit verbessert werden, mit dem Ziel, den jeweiligen Aufwand für Fehleranalyse und funktionale Erweiterungen deutlich zu senken.

Quelle: Wikipedia

D.h. über Refactoring kann beispielsweise eine Variable umbenannt werden, wobei die Entwicklungsumgebung dafür sorgt, dass diese Variable überall wo sie vorkommt, umbenannt wird. Auf das extrahieren von Quellcode in eine Extra Methode mit entsprechendem Funktionskopf fällt unter das Refactoring.

Wo hat Apple hier aber nun geschlafen? Wer ein “altes” Xcode 3Projekt hatte, und dies in Xcode 4 öffnet, wird sich bei einem Rechtsklick wundern, alle Refactoring Optionen sind ausgegraut.

Mit dem Update 4.0.1 hat Apple das Problem behoben, nach einem Project-Clean kann wieder die Refactor-Funktion genutzt werden.

Neuerungen in XCode 4.0.1:

- Improved Assistant editor logic when switching among different file types
- Fixed a bug in “Install Xcode.app” that hangs at 99% complete, never finishing
- Fixed a bug that prevented indexing of some projects
- Fixed a bug related to nil settings in the Core Data model editor
- Fixed a bug that prevented automatic download of iOS documentation
- Fixed a bug in LLVM GCC 4.2 and LLVM compiler 2.0 for iOS projects
- Additional bug fixes and stability improvements

Welcome Xcode 4

Donnerstag, 10. März 2011
Xcode 4

Xcode 4

Ab heute ist das neue iOS 4.3 für iPhone 4, iPhone 3 GS, iPad und iPad 2 verfügbar. Ersten Hinweisen zu Folge sogar schon für das kommende iPhone 5.

Zusätzlich hat Apple die neue Version der Entwicklungsumgebung Xcode 4 für die breite Öffentlichkeit zugänglich gemacht. War es bisher registrierten (zahlenden) Entwicklern vorbehalten, darf nun jeder die neue Version nutzen. Jeder? Nicht ganz, war Xcode bisher kostenfrei, muss es ab jetzt im MacStore für 3,99 € gekauft werden.

Neuerungen in Xcode4:
Single-Window-Interface
Integrierter Interface Builder
Apple LLVM Compiler 2.0 inklusive Live Issues und Fix-It
Versionseditor (Git)
Neuer Debugger
Instruments for Xcode 4

Sehr schön ist auch das schon verfügbare Shortcut Blatt.

Weitere Artikel zum Thema:
Golem
Macnotes

Icon specified in the Info.plist not found under the top level app wrapper: Icon.png

Donnerstag, 3. März 2011

Kleiner Fehler, große Wirkung, wer beim Submitten einer App an Apple die Fehlermeldung erhält:

Icon specified in the Info.plist not found under the top level app wrapper: Icon.png

Darf sich erstmal freuen, die Fehlermeldung ist schwer zu beheben.

Im einfachsten Fall hat man wirklich vergessen, das Icon.png in das Projekt zu legen. Es ist darauf zu achten, dass das Icon bestimmte Kriterien erfüllen muss (nachzulesen unter: http://developer.apple.com/library/ios/#qa/qa2010/qa1686.html)

Wichtig, die Icon File muss im Root des Projektes liegen und die Groß- und Kleinschreibung muss beachtet werden. Es kann helfen, das Projekt komplett aufzuräumen über:

Build -> Clean All Targets

Zusätzlich kann man nach dem cleanen noch die Icons alle umbenennen z.B. in bIcon.png und dann wieder zurück nach Icon.png benennen. Danach wie gehabt

Build -> Build and archive

An Apple senden

Je nachdem, ob man eine iPad App erstellt gibt es folgende möglichen Icon Variationen die in der Info.plist Datei hinterlegt werden:

  • Icon.png (57×57px – iPhone und iPod Touch)
  • Icon@2x.png (114×114 – iPhone 4 Retina Display)
  • Icon-72.png (72×72 – iPad)
  • Icon-Small.png (29×29 – Settings app und Suchergebnisse auf iPhone und iPod Touch)
  • Icon-Small@2x.png (58×58 – Settings app und Suchergebnisse auf iPhone 4)
  • Icon-Small-50.png (50×50 – Suchergebnisse auf iPad)

 

Paypal iOS SDK

Mittwoch, 23. Februar 2011
PayPal iphone / iOS SDK

PayPal iphone / iOS SDK

In der aktuellen Diskussion über die Abo-Gebühren von Apple, die inApp Beteiligungen die verlangt werden, geht voll unter das es auch noch andere Bezahlmöglichkeiten gibt.

Unter anderem bietet PayPal ein eigenes iPhone / iOS SDK an.

Dieses kann in jede App eingebunden werden und den Bezahlvorgang für Inhalte übernehmen. Beträge, Rechnungsposten, Steuer / Versandgebühren sind dabei sehr gut einstellbar. Im Fall einer erfolgreichen Zahlung erhält man von PayPal eine PayPal-Transactions-ID, womit der jeder Bezahlvorgang eindeutig ist.

Eingebunden wird das SDK sehr einfach: Downloaden, Add existing Files -> die *.a Datei und alle .h Dateien auswählen und importieren.

In dem Viewcontroller, in dem der Bezahlvorgang dann vonstatten gehen soll folgende include Anweisung:

#import “PayPal.h”

weitere Schritte können in der Doku von Paypal entnommen werden.

Was nicht ind er Dokumentation erwähnt ist: um das SDK nutzen zu können, bedarf es auch einer xml Lib. Wenn diese nicht vorhanden ist, bekommt man Fehlermeldungen im folgenden Stil:

“_xmlNodeListGetString”, referenced from:

-[ap_ReceiverIdentifier deserializeElementsFromNode:] in libPayPalMEP.a(ap.o)

-[ap_Address deserializeElementsFromNode:] in libPayPalMEP.a(ap.o)

-[ap_AddressList deserializeElementsFromNode:] in libPayPalMEP.a(ap.o)

-[ap_CurrencyCodeList deserializeElementsFromNode:] in libPayPalMEP.a(ap.o)

-[ap_CurrencyList deserializeElementsFromNode:] in libPayPalMEP.a(ap.o)

-[ap_CurrencyConversionList deserializeElementsFromNode:] in libPayPalMEP.a(ap.o)

-[ap_CurrencyConversionTable deserializeElementsFromNode:] in libPayPalMEP.a(ap.o)

-[ap_DisplayOptions deserializeElementsFromNode:] in libPayPalMEP.a(ap.o)

-[ap_ErrorList deserializeElementsFromNode:] in libPayPalMEP.a(ap.o)

usw.

Dieses kann verhindert werden, indem man die libxml2.dylib als existing Framework einbettet / hinzufügt.

Xcode All-in-one Window

Donnerstag, 19. November 2009

xcode-all-in-one-1

Da codet man monatelang mit XCode und ärgert sich Tag um Tag über die zig Fenster die mit Debugger, Build Fenster, Konsole, Simulator und Quellcode gefüllt sind.

Dazu noch ein Browser und selbst zwei Monitore sind überfüllt.

Die Lösung ist so simpel, warum Apple das nicht als default setzt ist daher fraglich.
Im XCode Preferences -> General Tab kann man das Layout umstellen, sofern alle Projekte geschlossen sind. Wenn dieses auf “All-in-one” geändert wird, hat man ein Fenster, in dem man zwischen Debug und Code schalten kann, ins das Debug Fenster kann dann noch die Konsole eingebettet werden -> perfekt!

xcode-all-in-one-2

xcode-all-in-one-3

Link zu Apple:
http://developer.apple.com/mac/library/DOCUMENTATION/DeveloperTools/Conceptual/XcodeWorkspace/010-The_Project_Window/project_window.html

via:

http://www.mobileorchard.com/14-essential-xcode-tips-tricks-and-resources-for-iphone-devs

git unter Apple MaxOSX

Donnerstag, 29. Oktober 2009

git
Git unter Apple OSX ist eine richtig feine Sache.

Dazu benötigt man folgende Anleitungen:

http://blog.ardes.com/2008/5/19/git-hosting-with-leopard
http://www.koushikdutta.com/2009/04/setting-up-gitosis-server-on-os-x.html
http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way
http://theappleblog.com/2009/03/10/using-git-with-os-x-6-tools-to-get-you-up-and-running/

Dazu noch folgendes Tool:
http://gitx.frim.nl

Und für die Nutzung von XCode mit git dieses nette script:
http://www.komprovisation.de/attachments/download/16/xcode-git-init.sh (http://www.komprovisation.de/news/show/9)

Gut ist auch git gui

In der shell muss dann in das Verzeichniss gewechelt werden und bei jeder Änderung folgendes eingegeben werden:

git commit -a

Worauf ein vi aufgeht, der die Änderungen aufzeigt und ein Kommentar eingegeben werden kann. (vi speichert mit :wq.

Eine schöne Beschreibung von der git Handhabung in dieser PDF file:

http://uberhip.com/projects/presentations.html

Wer ein git repository unter debian anlegen möchte um seine eigenen git repos zu verwalten:
http://debian.asconix.com/git-central-debian-howto und mit web access:
http://www.cryptronic.de/wiki/Blogs/20070408_howto_debian_setup_subversion_daemon_with_web_access

weitere Links:

http://stefanimhoff.de/notiz/einstieg-in-git-als-versionskontrollsystem/

http://www.online-tutorials.net/programmierung/git/tutorials-t-3-263.html#erste-schritte

http://www.kernel.org/pub/software/scm/git/docs/everyday.html

http://hoth.entp.com/output/git_for_designers.html

itunes 9 Genius Mixes aktivieren

Mittwoch, 9. September 2009
Genius Mixe Übersicht

Genius Mixe Übersicht

Apple hat am heutigen Tag iTunes 9 veröffentlicht. Eine der Neuerungen ist dabei Genius Mixe. Wer Genius bereits in der vorherigen iTunes Version verwedente, wird sich fragen, wo Genius Mixe auffindbar ist.

Genius Mixe

Genius Mixe

Genius aktualisieren Menü

Genius aktualisieren Menü

Genius aktualisieren Fortschritt

Genius aktualisieren Fortschritt

Problemlösung: Genius aktualisieren über Store – Genius aktualisieren

Weitere Neuerungen:

  • iTunes LP
  • Verbesserte Synchronisierung
  • Home Syncing
  • Klingeltöne

Facesquatting facebook username funktion

Montag, 15. Juni 2009
Facebook Username Funktion

Facebook Username Funktion

Basic thinking beschriebt heute einen aufkommenden Trend: Facesquatting. Dabei wird wie beim Domaingrabbing bekannt, ein prominenter Name oder ein Produktname genutzt, um eigene Sachen zu pushen. Beispielsweise www.facebook.com/apple könnte man über die von Facebook neu geschaffene Funktion http://www.facebook.com/username/ registrieren. Wer zukünftig auf facebook.com/apple surft wird aber nicht wie zu erwarten Infos über Apple sondern gezwitscher des Grabbers finden.

Dieses Vorgehen kennt man aus der URL / Domainszene, wobei dieser Markt durch diverse Gerichtsurteile zugunsten der rechtmäßigen Rechteinhaber quasi ausgestorben ist. In den Web2.0 Portalen Twitter, Facebook und Konsorten bleibt jedoch abzuwarten, wie dort das weitere Vorgehen ist.

Für Webmaster wäre relevant, ob durch die neue Usernamen-Funktion sichtbar wäre, wer auf einen Link geklickt hat, bzw. wer ihn in Facebook über die “Link teilen” – bzw “Share Link” Funktion publiziert. Dadurch könnten Personen ausgemacht werden, die über ein großes Mundpropaganda (OnlinePropaganda) Publikum verfügen.

Was ist der Facebook Username:
Man kann eine Facebook-URL (spezifische Webadresse) persönlich gestalten, indem man einen eindeutigen Nutzernamen auswählst. Er wird dann, wenn das Profil angesehen wird, in der Adressleiste desBrowsers nach “http://www.facebook.com/” angezeigt.
Wo kann man den Facebook Usernamen anfordern?

Ab Samstag, den 13. Juni 2009 kann man einen eigenen Benutzernamen unter http://www.facebook.com/username auswählen.

Entweder kannst man den von Facebook vorgeschlagenen Nutzernamen auswählen oder einen eigenen erstellen.