iPhone ADHoc build save to disk problem

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

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

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

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.

trim NSString iPhone objective C

trimmed string obj c

trimmed string obj c

Aus anderen Programmiersprachen kennt man den trim(); Befehl, der folgendes tut:

trimEntfernt Whitespaces (oder andere Zeichen) am Anfang und Ende eines Strings

In ObjC ist eine solche trim Funktionalität z.B: sinnvoll wenn man eine XML parsen möchte und in der XML Leerzeichen vor dem eigentlichen String sind.

Folgende Anweisung entfernt die störenden Leerzeichen (whitspaces):

NSString *trimmedString = [StringWithWhitespaces stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

Resultat ist ein NSString, der ohne Probleme genutzt werden kann.

Facesquatting facebook username funktion

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.

jaeger empfiehlt preisjaeger

Der Namensvetter preisjaeger.at bietet einen Blog mit aktuellen Schnäppchen, Aktionen und Gutscheinen.

Die Aktionen sind dabei entweder für Deutschland oder Österreich relevant, erkennbar an einer kleinen Flagge in jedem Artikel.

Exemplarisch eine aktuelle Aktion: Apple iPod nano 8 GB und 16 GB ab 117 €, relevant für Deutschland und Österreich, da die Aktionen von Preisbock für beide Länder relevant ist.

Nett dabei auch immer ein Verweis auf geizhals.at mit den dort günstigsten Preisen, wie z.B.:

Solche Aktions- Gutscheinblogs leben von der Aktivität der Macher, daher bleibt zu hoffen, dass das Niveau weiterhin hoch bleibt.

iPhone development howto device release with code signing

Wer sich bei Apples iPhone Development Programm angemeldet hat, möchte auch in den Genuss kommen, die eigenen Programme auf einem gerät testen zu können.

Hier eine kleine Anleitung, wie man Xcode dazu bewegt, die Programme auf das iPhone zu spielen.

Weiter unten im Artikel werden Probleme und mögliche Ursachen beschrieben.

1. Schritt Zertifikat beantragen um als iPhone Developer erkannt zu werden

Certificate Signing Request erstellen

Schlüsselbundverwaltung -> Zertifikatsassistent -> Zertifikat einer Zertifizierungsinstanz anfordern

csr

  • Mail Adresse und Name entsprechend dem Apple Account eintragen
  • CSR auf Festplatte speichern
  • Zertifikatverwaltung Apple Developer Connection -> hochladen
  • Nach Bestätigung das Zertifikat herunterladen und zum Schlüsselbund hinzufügen

developmenet-certificates

  • Schlüsselbundverwaltung -> Einstellungen -> Zertifikate beide Optionen ausschalten

2. Device registrieren

3. App ID

Jedes Programm benötigt einen eigenen Identifier.

4. Provisioning

Im 4. Schritt wird das Gerät, der Entwickler und das Programm zu einem Datensatz zusammengeführt.

  • Apple Developer Connection Provisioning Verwaltung -> Add Profile
  • Gerät, Entwickler und App ID auswählen
  • Submit
  • Kurz warten, dann Download des entstandenen Files
  • Datei mit XCode öffnen
  • Im XCode Organizer kann in „Provisioning Profiles“ geprüft werden, was bereits installiert ist.
  • Selbiges beim angeschlossenen iPhone

5. Projekt signen

  • Projektname -> Rechtsklick -> Get Info
  • Code Signing -> Any iPhone OS -> iPhone Developer auswählen

6. Build

  • Device – OS Version Release auswählen
  • Build and Go klicken

build-success

Probleme

Mögliche Fehler die auftreten können:
iphone code signing error

Ursachen:

  • Das kann zum einen daran liegen, das man nicht die richtige Identität ausgewhlt hat, um das Projekt zu signen.
  • Zum anderen kann es sein, dass man sich verschrieben hat beim AppName oder dem Package.
  • Als letzte Ursache kann ein fehlen des gebündelten Provisioning Pakets sein, siehe Schritt 4.

Weitere Infos:

nerdpride Blog Eintrag

Apple Developer Support Center

SVN subclipse howto

Subclipse Apple OSX

Subclipse Apple OSX

Der Informatik Fachbereich der Uni Köln etwas versteckt eine sehr gut beschriebene Anleitung zum Thema SVN mit Subclipse.

Die Anleitung umfasst dabei die Installation und Benutzung des Plugins und Umschreibt die Vorgänge / Notwendigkeiten in ausreichendem Maße.

SVN sublipse howto Uni Köln

Subclipse ist ein Plugin der freien Entwicklungsplattform Eclipse, welche plattformunabhängig auf Java aufbaut. Sublipse wird dabei zur Versionierung von Dateien im Entwicklungszyklus genutzt und kommuniziert mit einem Subversion Server.

Subversion:

Subversion (SVN) ist eine Open-Source-Software zur Versionsverwaltung von Dateien und Verzeichnissen.

Die Versionierung erfolgt in einem zentralen Projektarchiv (engl. repository) in Form einer einfachen Revisionszählung. Wenn Änderungen an Inhalten verteilt auf den Computern der Bearbeiter ausgeführt werden, werden zwischen dem Projektarchiv und einem Arbeitsplatz jeweils nur die Unterschiede zu bereits vorhandenen Ständen übertragen; anfangs das gesamte Projekt, später nur Änderungen.[…]

Getdropbox – manage files from everywhere

Im neuen Jahr der erste Beitrag über eine Dienstleistung / Applikation die mir die letzten Monate die tägliche Arbeit erheblich erleichtert hat: getdropbox.com

Angeboten wird dort nach Anmeldung eine Online-Verwaltng für die eigenen Dateien. Das Besondere ist die Flexibilität und Einfachheit, so können die Dateien von überall per Web Interface verändert, gelöscht, verschoben oder auf den zugreifenden Rechner heruntergeladen werden. Neben dem Browserzugriff sind Applikationen für Windows, Apple Mac OS und Linux verfügbar. So kann auf jedem eigenen Rechner das Programm installiert werden und nach Eingabe der Accountdaten hällt die Software die Dateien automatisch auf dem aktuellsten Stand. So wird nach getaner Schreibarbeit am Notebook während einer Zugfahrt beim nächsten Internetzugriff automatisch die neuesten Versionen hochgeladen und sind dann am heimischen PC verfügbar und können verfeinert werden.

Neben der reinen Synchronisation der Dateien wird im Hintergrund auch eine Versionierung der Dateien vorgenommen, ein Rückspung zu einer alten Version ist somit kein Problem, selbst ein versehentliches Löschen einer Datei / eines Ordners stellt kein Problem dar, gelöschte Inhalte können wiederhergestellt werden.

Die Software verhällt sich auf dem lokalen Rechner sehr zurückhaltend und wird nur in Form eines Ordners genutzt, der sich in die Dokumente respektive Eigenen Dateien eingliedert.

Um das Angebot rund zu machen, hat man über die Web Schnittstelle die Möglichkeit, Dateien mit anderen gemeinsam zu bearbeiten via Share, oder aus einer Sammlung von Bilddateien ohne weitere Eingriffe ein simplex attraktives Webalbum der Bilder zu generieren.

Zusamenfassend liefert die Software: Synchronisation, Versionierung, Plattformunabhängigkeit, Rechnerunabhängigkeit, Datensicherung und Publizierung von Bildern

Bei der kostenlosen Mitgliedschaft sind 2.0 GB Speicherplatz verfügbar, 50 GB erhällt man für 9,99 $ / Monat bzw. 99 $ / Jahr. Zum Austausch der eigenen Dateien, Arbeitsdokumente und einigen Bildern sollten 2 GB aber ausreichend sein.

Weitere Artikel:

Artikel auf Apfelquak

freewareosx

Artikel über drop.io auf BasicThinking

Osx Bluescreen Tipps und Hilfe

Wenn beim booten von OSX ein Bluescreen erscheint ist das keine Windows Krankheit, sondern ein mittlerweile bei OSX häufiger vorkommendes Probem.

Als Lösungen kommen mehrere Ansätze in Frage:

1) Kommandozeile nutzen und „Applikation enhancement Software“ löschen

  • Single User starten: beim booten Steuerung+S (Crtl+S) gedrückt lassen
  • In der Shell eingeben:
    • /sbin/fsck -fy
    • /sbin/mount -uw /
    • rm -rf /System/Library/SystemConfiguration/ApplicationEnhancer.bundle
    • reboot
  • Nach dem Reboot sollte alles wie gewohnt funktionieren

2) Leopard neu installieren

After completing an upgrade installation of Leopard and restarting the computer, a “blue screen” may appear for an extended period of time.

Dieses Problem tritt bei der Installation vom aktuellen Apple Betriebssystem Leopard auf. Apple selbst hat dazu ein Supportdokument erarbeitet.

3) Rechte reparieren

  • OSX Installations DVD einlegen
  • Installation beenden und Festplattendiagnose starten
  • Rechte überprüfen & reparieren
  • Reboot

4) Kommandozeile nutzen und Festplatte überprüfen

  • Single User starten: beim booten Steuerung+S (Crtl+S) gedrückt lassen
  • In der Shell eingeben:
    • fsck -yf
    • reboot