Apple Mail quit unexpectedly

On Apple OSX the following issue is very bad to solve:

Crashed Thread:        23  -[DeliveryQueue _deliverQueuedMessages:]  Dispatch queue: NSOperationQueue 0x7fcf5eb248f0 :: NSOperation 0x7fcf62396ec0 (QOS: UTILITY)

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Application Specific Information:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Encoding a malformed address (unbalanced quote or parenthesis), bad things may be about to happen.
"XYZ,'
abort() called
terminating with uncaught exception of type NSException

There are some articles how to potentially solve it with deleting settings of mail etc. but there is another solution:

– Turn the system to offline mode (turn of WiFi etc.)
– Open Mail
– Search for the email with malformated content
– delete the email
– close Mail
– Turn the system back to online mode
– start Mail again

–> Done

Hope that helped

Android Samsung Galaxy S5 mini Osx Mavericks sync

Samsung has recently released a pretty nice Phone, Samsung Galaxy S5 Mini. Water resistent etc etc.

Having that phone after some days I found a serious problem: how can you sync and backup your Samsung Galaxy S5 mini with your Apple Mac running the latest version Apple OSX 10.9 called Mavericks?

Of course you can use File transfer for Android to transfer single files / Folders. But being a iPhone user for quite some time, I was compfortable using Apple iTunes, simple to use, mostly no problems.

So what can you do with your Android Phone? According to Samsung you should use „Kies„. This is also avaliable for Mac.
Starting the Application in latest version:

Kies_error

:-/

So what now?
I found an tutorial: http://www.pavtube.cn/guide/make-kies-work-on-mountain-lion-108.html with a link to an older Version. First I check the linked file if it contains malware, nothing found.
I followed the instructions, started the Application, at least no crash.
Tried to install drivers for the device, but even then, no success for syncing my Android Samsung Galaxy S5 mini.

Last chance: Use Kies for Windows…

Anyone else any suggestions?

Is rooting of the device a possible solution? Maybe a virtual machine within OSX in order to run KIES and then pass USB to the virtual machine?

Is there any software available for syncing your Android device with Linux (Ubuntu, Debian etc.)?

Apple OSX Maveric QNAP TimeMachine Probleme

Wer mit OSX 10.9 Probleme hat ein TimeMachine backup zu erstellen und den folgenden Fehler bekommt:

com.apple.prefs.backup.remoteservice[602]: Error while confirming network destination: Error Domain=NSOSStatusErrorDomain Code=64 "Der Vorgang konnte nicht abgeschlossen werden. (OSStatus-Fehler 64.)" (kOTSerialFramingErr / EHOSTDOWN: / Host is down)

bzw


NetAuthSysAgent[1071]: ERROR: AFP_GetServerInfo - connect failed 64

Kann mal versuchen den AFP Server manuell als TimeMachine Destination zu nutzen mit dem folgenden Kommando:


sudo tmutil setdestination afp://$QNAPTIMEMACHINEUSER:$QNAPTIMEMACHINEPASSWORD@$QNAPIPADRESS/TMBackup

TimeMachine Backup per AFP mounten und reparieren


Warning: Parameter 2 to wp_hide_post_Public::query_posts_join() expected to be a reference, value given in /www/htdocs/w0089d2a/wp-includes/class-wp-hook.php on line 286

Warning: Parameter 2 to wp_hide_post_Public::query_posts_join() expected to be a reference, value given in /www/htdocs/w0089d2a/wp-includes/class-wp-hook.php on line 286

Um ein TimeMachine Backup zu reparieren, welches z.B. auf einem NAS liegt, kann man folgende Herangehensweise versuchen:

0. Sichern des Images

Bevor man irgenwelche Schritte durchführt, sollte man das Image sichern

„cp /share/TMBackup/Name.sparebundle /home/user/foo“

1. Mounten des Images auf dem Mac

sudo mkdir /Volumes/temp

sudo mount -t afp afp://user:pass@192.168.x.x/home/user/foo /Volumes/temp

oder alternativ über den Finder.

Über den Befehl findet man heraus ob es eingebunden wurde

mount

2. Image mit hdiutils bearbeiten

hdiutil attach -nomount -readwrite Name.sparsebundle

 

Ergebnis:

/dev/disk3              Apple_partition_scheme
/dev/disk3s1            Apple_partition_map
/dev/disk3s2            Apple_HFSX

wobei disk3 durchaus variieren kann

3. Fsck durchführen

fsck_hfs -rf /dev/disk3s2

 

4. warten

** /dev/rdisk3s2    Using cacheBlockSize=32K cacheTotalBlock=16384 cacheSize=524288K.   Executing fsck_hfs (version diskdev_cmds-557.3~1).** Checking Journaled HFS Plus volume.** Detected a case-sensitive volume.   The volume name is Time Machine-Backups** Checking extents overflow file.** Checking catalog file.** Rebuilding catalog B-tree.

 

Achtung: Das Image muss mit Schreibrechten gemounted werden, sonst kann nichts repariert werden.

Bei dem Fehler:

** /dev/rdisk3s2 (NO WRITE)
Can’t open /dev/rdisk3s2: Permission denied

Ggf. versuchen den Befehl per sudo auszuführen.

See:

http://tonylawrence.com/blog/2012/08/11/fixing-corrupted-time-machine-backups/

http://blog.jthon.com/?p=31

Wer sich fragt was TimeMachine ist – TimeMachine ist die Backup Technik, vorgestellt am 26. Oktober 2007 mit der OSX Version 10.5 Leopard eingeführt wurde. Die Speicherung erfolgt auf HFS formatierte Festplatten / Netzlaufwerke. Apple vertreibt auch einige Hardware mit TimeMachine unterstützung die als Speichermedium dienen. Einige NAS Hersteller haben mittlerweile auch TimeMachine Server Funktionalität eingebaut.

Infos zu einer App: Version – Sprache

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.

Dabei bietet es sich an, die ankommenden E-Mails automatisch in ein Ticket System laufen zu lassen um auch keine Meldung zu vergessen. Als praktisch hat sich hierbei die OpenSource Ticket Verwaltung OTRS erwiesen. Auch für den professionellen Einsatz lohnt sich das System, da hinter den Entwicklern eine Firma steckt, die auch professionellen Support anbietet und Unterstützung bei der Umsetzung anbieten kann.

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

Xcode 4 refactoring deaktiviert

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

Update 2014: Mittlerweile ist XCode bei Version 6 angelangt.

Welcome Xcode 4

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

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.