Archiv ‘Apple’

Samstag, 8. Oktober 2016

Wenn iOS 10 partout „usegfunge“ zu „Umseglungen“ korrigiert

Seit dem Umstieg auf iOS 10 sah ich mich beim Erfassen von berndeutschen iMessages mit dem Problem konfrontiert, dass die berndeutschen Wörter permanent in ähnlich klingende deutsche Wörter umgewandelt wurden.

Aus „usegfunge“ (dt. herausgefunden) wurde so stets „Umseglungen“.

Bravo, Apple! Am Donnerstag regte ich mich derart über dieses „Feature“ auf, dass ich ihm genauer auf den Grund ging.

Unter Settings > General > Keyboard war die Eigenschaft „Auto-Correction“ für „All Keyboards“ längst deaktiviert. Als deutschsprachiger Schweizer ist das wohl eine der ersten Konfigurationsanpassungen, die man an einem jungfräulichen iOS vornimmt.

Doch wieso wurden meine Texte trotzdem reproduzierbar korrigiert?

Nach einigen Google-Suchen dann die Erkenntnis: Ich schreibe meine Texte auf dem iPad in der Regel mit einer Hardware-Tastatur; in meinem Fall mit einer Logitech Type+ for iPad Air.

In iOS 10 gibt es für Hardware-Tastaturen gesonderte Einstellungen (welche erscheinen, wenn die Tastatur verbunden ist)! Diese lassen sich unter Settings > General > Keyboard > Hardware Keyboard anpassen.

Ich deaktivierte so auch an dieser Stelle Auto-Capitalization und Auto-Correction.

iOS 10 General Settings Keyboard Hardware Keyboard Auto-Correction

Zurück in iMessage zeigte sich der erhoffte Effekt aber nicht: „usegfunge“ wurde weiterhin zu „Umseglungen“ ersetzt. Erst als ich iMessage zwangsweise beendete (Doppelklick auf den Home-Button, das iMessage-Fenster dann nach oben wischend) und neu startete konnte ich endlich wieder sauberes, unkorrigiertes Berndeutsch schreiben.

Via: Disable Autocorrect for External BlueTooth Keyboard – iOS 9.2

Tags: , , , , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 28. September 2016

WhatsApp kann nicht auf iCloud backupen

Nachdem ich meinen Mac mini endlich auf OS X 10.11 El Capitan gelüpft hatte, konnte ich endlich auch iCloud Drive über all meine Geräte (Mac mini, MacBook Air, iPhone SE, iPad Air 2, iPad 4) aktivieren.

Leider aber bockt WhatsApp auf meinem iPhone SE und will partout nicht nach iCloud backupen:

whatsapp-iphone-se-ios-10-backing-up

Uploading: 0 bytes of 456.0 MB (0%)

Und genau in diesem Zustand verweilt die Anzeige, minuten- und stundenlang, ohne dass ein einziges Byte in die iCloud hochgeladen wird.

Gestern und heute habe ich ein, zwei Stunden investiert, um dem Problem auf den Grund zu gehen. Leider habe ich die Lösung (noch?) nicht gefunden.

Ein Blick auf dem iPhone SE unter Settings > iCloud > iCloud Drive zeigt, dass iCloud aktiviert ist, WhatsApp der Zugriff auf iCloud erlaubt ist und das iPhone auch über das Mobilfunknetz mit iCloud kommunizieren darf:

iphone-se-icloud-drive-top

iphone-se-icloud-drive-bottom

Soweit so gut. Spannend wird es, wenn ich den iCloud Speicherverbrauch genauer anschaue. Hierzu gehe ich zu Settings > iCloud > Storage > Manage Storage, wo ich unter der Rubrik „DOCUMENTS & DATA“ den Eintrag

WhatsApp Messen… 2.1MB

entdecke:

iphone-se-icloud-manage-storage

Gestern reagierte das iPhone nicht, als ich diesen Eintrag antippte.

Versuch unter iCloud Web

Als nächste loggte ich mich auf die Web-Oberfläche von iCloud ein und versuchte es dort mit einer Bereinigung. Unter Einstellungen fand ich folgendes Dialogfeld:

Apple iCloud Web Reset Documents and Data

Leider klappte das auch nicht:

Apple iCloud Web Could not reset Documents and Data

Versuch unter macOS

Man kann übrigens auch versuchen, das WhatsApp-Backup unter OS X zu entfernen — doch gestern schlug auch das fehl:

os-x-icloud-manage-storage

os-x-icloud-manage-storage-whatsapp

os-x-icloud-manage-storage-whatsapp-delete-documents-and-data

os-x-icloud-manage-storage-whatsapp-delete-documents-and-data-failed-try-again-later

In der Console las ich die nichtssagende Fehlermeldung:

com-apple-preferences-icloud-remoteservice-js_log-error-deletedate-returned-error-code-500

Erneuter Versuch auf dem iPhone

Doch heute gelange ich auf dem iPhone schnurstracks in die Detailansicht:

iphone-se-icloud-manage-storage-whatsapp

Edit angetippt, dann erscheint die Möglichkeit, die Daten zu löschen:

iphone-se-icloud-manage-storage-whatsapp-edit

iphone-se-icloud-manage-storage-whatsapp-delete-all

Dies habe ich soeben getan, und tatsächlich, WhatsApp erscheint nun nicht mehr in der Liste. Immerhin ein Fortschritt zu gestern — wobei ich felsenfest überzeugt war, dass wenn einmal dieses veraltete Backup weg ist das Backup funktionieren wird. Falsch gedacht; WhatsApp hängt immer noch bei 0 Bytes.

Ein kompletter Neustart des Gerätes änderte schlussendlich alles! Als ich den Button Back Up Now anklickte, lud das iPhone nach ein paar Sekunden „Preparing“ Daten in irrer Geschwindigkeit nach iCloud:

whatsapp-chat-backup-preparing-28

whatsapp-chat-backup-uploading-433-2-mb

whatsapp-chat-backup-last-backup-today-at-19-53

Seither kann ich endlich beruhigt sein, bei einem Verlust meines Telefons garantiert noch alle WhatsApp-Mitteilungen als Sicherung auf iCloud zu besitzen:

Die Lösung?

Leider für mich immer noch ein Mysterium. Doch was ich gestern gemacht habe: iCloud Drive auf all meinen Geräten ausgeschaltet, die Geräte heruntergefahren, neugestartet und erst dann wieder eingeschaltet.

Update 2016-11-17: Ich vermute mittlerweile, dass das iOS-Upgrade meines ehrwürdigen iPad 4 das Problem gelöst hat. Meine Hypothese: Da auf dem Gerät noch iOS 9 installiert war, verhinderte das Gerät so, dass meine iCloud upgegradet werden kann. Sobald das Gerät auf iOS 10 migriert war, konnte die von Apple durchgeführte, transparente Migration endlich losgetreten werden.

iCloud Drive-Zugang über iCloud.com

Während dem Debugging-Prozess ist mir aufgefallen, dass ich weder über meinen Mac mini, noch mein iPad Air 2 auf das (webbasierte) iCloud Drive unter iCloud.com zugreifen kann. Folgende Fehlermeldung erscheint:

icloud-com-icloud-drive-there-was-a-problem-loading-the-contents-of-this-folder

There was a problem loading the content of this folder.

Der nette Herr von der Apple Support-Hotline konnte mir heute mit diesem Problem leider auch nicht weiterhelfen. Seine einzige Empfehlung: Cookies löschen und den Mac mini neu starten. Immerhin hat mich Apple angerufen und so den Anruf auf das Mobilfunknetz bezahlt.

Er beharrte zudem darauf, dass ich diesen Screen auf meinem iPad nicht anzeigen lassen könne — doch, kann ich, wenn ich in Safari lange auf dem Reload-Button verharre und dann „Request Desktop Site“ auswähle.

iCloud Drive-Ablage auf dem lokalen Mac

Im Laufe der Untersuchung kam ich zudem auf die Idee, den WhatsApp-Ordner auf iCloud über meinen Mac zu löschen. Das iCloud Drive wird auf meinem Mac mini unter OS X 10.11 in folgendem Verzeichnis gecached:

~/Library/Mobile Documents/

Mit dem Tool Plain Cloud erhält man eine Übersichtsliste in Form eines GUIs:

plain-cloud-whatsapp

Dort habe ich dann auch WhatsApp wiedergefunden, welches im folgenden Pfad liegt (lag):

~/Library/Mobile Documents/57T9237FN3~net~whatsapp~WhatsApp

Der Inhalt gestern (vor rm -rf):

57t9237fn3netwhatsappwhatsapp

Dieses Verzeichnis auf der Kommandozeile von Hand zu löschen brachte gestern leider nicht den gewünschten Erfolg.

brctl

Apple stellt mit brctl ein Kommandozeilentool zur Verfügung (Kommentar von Mendel Kucharzeck vom 11.07.16 um 22:08 Uhr), welches beim Debugging eventuell auch noch weiterhelfen könnte. Hier der Output für gestern:

$ brctl log
[note]    0.000 [2016-09-27 02:40:22.115] sqlite.clientTruth             sync-down.periodic-sync BRCPeriodicSyncOperation.m:137
        scheduled a useless periodic sync
[note]  28798.505 [2016-09-27 10:40:20.620] sqlite.clientTruth             sync-down.periodic-sync BRCPeriodicSyncOperation.m:137
        scheduled a useless periodic sync
[ERROR] 32416.649 [2016-09-27 11:40:38.764] cloudkit.operation.callback    sync.down            BRCSyncDownOperation.m:201
        fetch operation 57T9237FN3.net.whatsapp.WhatsApp error: <CKError 0x7ff7cd9f6220: "Server Rejected Request" (15/6000); server message = "Zone migration failed"; Retry after 43200.0 seconds; uuid = 1CFAE291-105A-4BA7-B0DA-663C5F5EA27F; conta
[note]  56254.108 [2016-09-27 18:17:56.223] brc.sync                       container.scheduler  BRCContainerScheduler.m:819
        received a push for container 57T9237FN3~net~whatsapp~WhatsApp
[note]  56254.412 [2016-09-27 18:17:56.527] brc.sync                       container.scheduler  BRCContainerScheduler.m:808
        received a push for the container-metadata zone
[note]  56261.563 [2016-09-27 18:18:03.677] brc.sync                       container.scheduler  BRCContainerScheduler.m:808
        received a push for the container-metadata zone
[WARN]  56318.506 [2016-09-27 18:19:00.621] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7cd6392c0; recordType=AppContainer, recordID=iCloud.com.microsoft.lync2013.iphone:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=3>
[WARN]  56318.506 [2016-09-27 18:19:00.621] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7cd68bb00; recordType=AppContainer, recordID=iCloud.com.kayak.travel:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=4>
[WARN]  56318.507 [2016-09-27 18:19:00.621] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7cd6caad0; recordType=AppContainer, recordID=iCloud.com.reddit.alienblue:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=5>
[WARN]  56318.507 [2016-09-27 18:19:00.622] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7cd631250; recordType=AppContainer, recordID=LWL9XTYF8Q.com.syniumsoftware.macfamilytree7:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=6>
[WARN]  56318.507 [2016-09-27 18:19:00.622] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7cd6392c0; recordType=AppContainer, recordID=iCloud.QW9YDLAY9G.com.hotels.HotelsNearMe:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=7>
[WARN]  56318.508 [2016-09-27 18:19:00.622] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7cd6caad0; recordType=AppContainer, recordID=ZKENARDFWN.com.ifolor.ifolor-designer:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=8>
[WARN]  56318.508 [2016-09-27 18:19:00.623] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7cd631250; recordType=AppContainer, recordID=iCloud.com.getdropbox.Dropbox:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=9>
[WARN]  56318.509 [2016-09-27 18:19:00.623] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7cd68b2e0; recordType=AppContainer, recordID=com.apple.mobilemail:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=a>
[WARN]  56318.509 [2016-09-27 18:19:00.623] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7cd6392c0; recordType=AppContainer, recordID=L996Q9B5UB.com.landi.weather:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=b>
[WARN]  56318.509 [2016-09-27 18:19:00.624] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7cd68b2e0; recordType=AppContainer, recordID=iCloud.com.apple.iBooks:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=c>
[WARN]  56318.509 [2016-09-27 18:19:00.624] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7cd68bb00; recordType=AppContainer, recordID=F6266T9T75.com.apple.iMovie:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=d>
[WARN]  56318.510 [2016-09-27 18:19:00.625] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7ca980b30; recordType=AppContainer, recordID=com.apple.Numbers:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=e>
[WARN]  56318.510 [2016-09-27 18:19:00.625] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7c860c6c0; recordType=AppContainer, recordID=com.apple.QuickTimePlayerX:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=f>
[WARN]  56318.511 [2016-09-27 18:19:00.625] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7c8610550; recordType=AppContainer, recordID=com.apple.Preview:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=g>
[WARN]  56318.511 [2016-09-27 18:19:00.626] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7cd906ac0; recordType=AppContainer, recordID=com.apple.Notes:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=h>
[WARN]  56318.511 [2016-09-27 18:19:00.626] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7c860c6c0; recordType=AppContainer, recordID=8YE23NZS57.com.kayak.travel:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=i>
[WARN]  56318.512 [2016-09-27 18:19:00.626] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7c8610550; recordType=AppContainer, recordID=com.apple.Pages:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=j>
[WARN]  56318.512 [2016-09-27 18:19:00.627] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7c860c6c0; recordType=AppContainer, recordID=iCloud.com.tinyspeck.chatlyio:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=k>
[WARN]  56318.512 [2016-09-27 18:19:00.627] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7c8610550; recordType=AppContainer, recordID=com.apple.mail:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=l>
[WARN]  56318.513 [2016-09-27 18:19:00.627] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7cd9e2800; recordType=AppContainer, recordID=com.apple.TextEdit:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=m>
[WARN]  56318.513 [2016-09-27 18:19:00.628] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7c8610550; recordType=AppContainer, recordID=57T9237FN3.net.whatsapp.WhatsApp:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=n>
[WARN]  56318.513 [2016-09-27 18:19:00.628] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7c860c6c0; recordType=AppContainer, recordID=37GSA6A9EQ.com.benkazez.FlightTrack:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=o>
[WARN]  56318.514 [2016-09-27 18:19:00.628] cloudkit.operation.callback    sync-down.container-metadata BRCContainerMetadataSyncDownOperation.m:44
        no data in record <CKRecord: 0x7ff7c8611e30; recordType=AppContainer, recordID=CZF32S63U5.com.phaidon.wallpaperParis:(com.apple.CloudDocs.container-metadata:__defaultOwner__), recordChangeTag=p>
[WARN]

Spannend ist insbesondere dieser Eintrag mit dem Fehler „Zone migration failed“:

[ERROR] 32416.649 [2016-09-27 11:40:38.764] cloudkit.operation.callback    sync.down            BRCSyncDownOperation.m:201
        fetch operation 57T9237FN3.net.whatsapp.WhatsApp error: <CKError 0x7ff7cd9f6220: "Server Rejected Request" (15/6000); server message = "Zone migration failed"; Retry after 43200.0 seconds; uuid = 1CFAE291-105A-4BA7-B0DA-663C5F5EA27F; conta
[note]  56254.108 [2016-09-27 18:17:56.223] brc.sync                       container.scheduler  BRCContainerScheduler.m:819
        received a push for container 57T9237FN3~net~whatsapp~WhatsApp
[note]  56254.412 [2016-09-27 18:17:56.527] brc.sync                       container.scheduler  BRCContainerScheduler.m:808
        received a push for the container-metadata zone
[note]  56261.563 [2016-09-27 18:18:03.677] brc.sync                       container.scheduler  BRCContainerScheduler.m:808
        received a push for the container-metadata zone

Tags: , , , , , , , , , , ,
Labels: Apple

3 Kommentare | neuen Kommentar verfassen

Montag, 19. September 2016

Videos in der Facebook iOS-App mit AirPlay auf einen Apple TV streamen

Stephanie speichert in der Facebook-App regelmässig Videos, welche sie mir am Abend über den Apple TV 4 auf dem Plasma-Fernseher zeigen möchte. Leider will die Facebook iOS-App partout nicht mit AirPlay auf den Apple TV streamen; und auch wenn man den ganzen Bildschirm spiegelt („mirroring“) klappt die Wiedergabe nicht zuverlässig.

Keine Ahnung, was in Mark gefahren ist.

Gestern fand ich dann die Lösung des Problems:

It’s not the most convenient way, but it works:

  1. First airplay a video from youtube to your Apple TV
  2. As soon as the video start playing on your ATV go to facebook and start playing the video you want to airplay to Apple TV
  3. Voilà – Now you can play any facebook video on your Apple TV

Quelle: Trick: How to Airplay facebook videos to Apple TV natively.

Man öffnet die YouTube-Applikation, öffnet ein Video, lässt es mit AirPlay auf den Apple TV streamen, verlässt die YouTube App und öffnet Facebook. Nun streamen auch diese Videos anstandslos auf den Apple TV.

Tags: , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 31. August 2016

SMB (Samba) unter OS X El Capitan schneller machen

Obwohl ich vorher gar keine Tests gefahren bin, habe ich folgende Konfigurationseinstellung gleich nach der Installation von El Capitan aktiviert:

/etc/nsmb.conf

[default]
signing_required = no

Quelle: OS X 10.11 El Capitan: Langsame SMB-Verbindungen!

Motto: Nützt’s nüt, schadt’s nüt.

Tags: , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 31. August 2016

Xcode für die Verwendung mit MacPorts bereit machen

Bevor man anfängt, mit MacPorts Pakete zu kompilieren, muss man Apples Xcode installieren.

Damit ist es aber noch nicht getan — einerseits gehören die Command Line Tools installiert:

$ xcode-select --install

Quelle: How to Install Command Line Tools in OS X Mavericks & Yosemite (Without Xcode)

Anschliessend muss man noch die Lizenzbestimmungen abnicken:

# xcodebuild -license accept

Tags: , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Montag, 29. August 2016

MacPorts kann spidermonkey und mozjs17 nicht installieren

Nach meiner kürzlichen Migration auf OS X El Capitan habe ich noch mit den einen oder anderen Kinderwehen zu kämpfen.

Unter anderem bringt es MacPorts nicht fertig, die Pakete spidermonkey und mozjs17 zu installieren.

Die Fehlermeldungen lauteten:

--->  Building spidermonkey
Error: org.macports.build for port spidermonkey returned: command execution failed
Please see the log file for port spidermonkey for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_spidermonkey/spidermonkey/main.log
Error: Unable to upgrade port: 1
Error rebuilding spidermonkey
    while executing
"error "Error rebuilding $portname""
    (procedure "revupgrade_scanandrebuild" line 395)
    invoked from within
"revupgrade_scanandrebuild broken_port_counts $opts"
    (procedure "macports::revupgrade" line 5)
    invoked from within
"macports::revupgrade $opts"
    (procedure "action_revupgrade" line 2)
    invoked from within
"action_revupgrade $action $portlist $opts"
    (procedure "action_upgrade" line 25)
    invoked from within
"$action_proc $action $portlist [array get global_options]"
    (procedure "process_cmd" line 103)
    invoked from within
"process_cmd $remaining_args"
    invoked from within
"if { [llength $remaining_args] > 0 } {

    # If there are remaining arguments, process those as a command
    set exit_status [process_cmd $remaining..."
    (file "/opt/local/bin/port" line 5268)
Done.

Die Datei /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_spidermonkey/spidermonkey/main.log enthält über 9000 Zeilen, doch schlussendlich fand ich die aussagekräftigsten Stellen:

:debug:archivefetch Found Dependency: receipt exists for nspr
...
:info:build cat: ../../dist/Darwin_OPT.OBJ/nspr/Version: No such file or directory

… sowie viel weiter unten …

:info:build ld: symbol(s) not found for architecture x86_64
:info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)
:info:build make[1]: *** [Darwin_OPT.OBJ/libjs.dylib] Error 1

Nach einigem herumgoogeln (das Problem ist im Netz nirgends erwähnt; es handelt sich also um ein ganz spezifisches Aeby-Problem) stiess ich auf den über sechs Jahre alten Fehlerreport Spidermonkey build failure (undefined symbols) with non-default build_arch.

Irgendwie schien mein spidermonkey Symbole für die x86_64-Architektur nicht zu finden, und vielleicht hing dies ja mit einer Einstellung in macports.conf zusammen.

Und siehe da:

/opt/local/etc/macports$ ls -l
total 112
-rw-r--r--  1 root  admin  1941 17 Mai  2014 archive_sites.conf
-r--r--r--  1 root  admin  1941  1 Okt  2015 archive_sites.conf.default
-rw-r--r--  1 root  admin  8251 17 Mai  2014 macports.conf
-r--r--r--  1 root  admin  8248  1 Okt  2015 macports.conf.default
-rw-r--r--  1 root  admin   523 17 Mai  2014 pubkeys.conf
-r--r--r--  1 root  admin   523  1 Okt  2015 pubkeys.conf.default
-rw-r--r--  1 root  admin  1243 17 Mai  2014 sources.conf
-r--r--r--  1 root  admin  1243  1 Okt  2015 sources.conf.default
-rw-r--r--  1 root  admin   461 17 Mai  2014 variants.conf
-r--r--r--  1 root  admin   461  1 Okt  2015 variants.conf.default

Ich hatte offenbar noch eine uralte macports.conf herumliegen, und aus irgendeinem Grund wurde bei einem Upgrade die neuere Version der Datei (.default) nicht über die Alte kopiert. Doch was ist der Unterschied zwischen den beiden Dateien?

$ diff macports.conf.default macports.conf 
1c1
< # $Id: macports.conf.in 117120 2014-02-17 00:55:33Z jmr@macports.org $
---
> # $Id: macports.conf.in 108047 2013-07-11 06:19:13Z larryv@macports.org $
63c63
< # "x86_64 i386" on OS X 10.6 and later.
---
> # "x64_64 i386" on OS X 10.6 and later.

Ein Schreibfehler! Es hätte heissen sollen „x86_64“, stattdessen aber hatte wohl jemand in aller Flüchtigkeit „x64_64“ geschrieben. Ich löschte die alte Datei und platzierte die neue Datei an ihrer Stelle.

Als nächstes installierte ich npsr erneut …

# port install nspr

… welches im gleichen Rutsch eine ganze Ladung Dependencies ebenfalls aktualisierte (unter anderem GTK3, welches mörderisch lange zum kompilieren braucht).

Schlussendlich führte ich ein ordentliches MacPorts-Update aus:

# port selfupdate
# port upgrade outdated
# port uninstall inactive
# port clean --all vile

Fertig.

Tags: , , , , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 28. August 2016

Mit Atom HTML-Code konvertieren

Gestern war es soweit: Ich habe (endlich!) TextMate in die Wüste geschickt und bin auf Githubs Atom als meinen Text-Editor der Wahl umgestiegen.

Essentiell ist, dass man als erstes die Kommandozeilen-Unterstützung installiert: Atom > Install Shell Commands. Denn ich rufe den Text-Editor meistens aus einem Ordner mit zu editierenden Dateien von der Kommandozeile auf:

$ atom .

Anschliessend habe ich mir über den Paketmanager apm auch noch als allererstes das Paket html-entities installiert. Damit kann ich HTML-Code so umwandeln, dass ich ihn in WordPress-Artikeln in ein <pre> einfüllen kann:

$ apm install html-entities

Tags: , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 28. August 2016

launchd vergisst nach Upgrade auf OS X El Capitan die Pfade (PATH)

Dies ist bei mir ganz kritisch, da meine Scripts auf viele MacPorts-Tools angewiesen sind — unter anderem realpath, wget sowie curlftpfs.

Abhilfe schafft man folgendermassen:

~/Library/LaunchAgents/com.emeidi.environment.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>my.startup</string>
  <key>ProgramArguments</key>
  <array>
    <string>sh</string>
    <string>-c</string>
    <string>launchctl setenv PATH /opt/local/bin:/opt/local/sbin:$PATH</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

Quelle: Setting the system-wide PATH environment variable in Mavericks

Anschliessend startet man den „Job“:

$ launchctl load ~/Library/LaunchAgents/com.emeidi.environment.plist

Tags: , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Samstag, 27. August 2016

Eine MacPorts-Variante installieren

Wenn MacPorts folgende oder ähnliche Fehler meldet …

--->  Computing dependencies for jslint
--->  Configuring jslint
Error: You need to install spidermonkey with the +fileobject variant in order to use jslint.
Error: org.macports.configure for port jslint returned: incompatible spidermonkey installation
Please see the log file for port jslint for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_jslint/jslint/main.log

installiert man die geforderte Variante folgendermassen:

# port install spidermonkey +fileobject

Quelle: 3.2. Port Variants

Tags: , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Samstag, 27. August 2016

Das iPhone bei SMS und Anrufen „blitzen“ lassen (optischer statt haptischer Alarm)

Ein neuer Arbeitskollege verwendet statt eines Vibrationsalarms (ich habe diesen im geräuschlosen Modus komplett ausgeschaltet, da er in Sitzungen nur nervt) einen optischen Alarm: Kriegt er ein SMS oder einen Anruf, blinkt der LED-Blitz seines iPhones äusserst gut sichtbar, auch durch Kleidungsstücke hindurch.

Fasziniert musste ich natürlich sofort wissen, wie man diese Funktionalität einschaltet:

  • Settings
  • General
  • Accessibility
  • [x] LED Flash for Alerts

Quelle: How to turn on the LED notification light on your iPhone

Ich denke, dass diese Funktion eigentlich für taube Mitmenschen entwickelt wurde — im Büroalltag aber durchaus auch brauchbar.

Tags: , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen