josh- / CloudyTabs

CloudyTabs is a simple menu bar application that lists your iCloud Tabs.
http://joshparnham.com/projects/cloudytabs/
789 stars 52 forks source link

Does not work in El Capitan or Sierra #33

Closed mcdado closed 6 years ago

mcdado commented 8 years ago

The app launches, but the menubar icon is not responsive to any type of click. After launch, I can see two identical successive messages in Console.app:

26/11/15 23:04:32,746 CloudyTabs[30513]: -[__NSCFArray objectForKeyedSubscript:]: unrecognized selector sent to instance 0x7fa1c2c72c60
sillygwailo commented 8 years ago

I have the same experience. CloudyTabs version 1.6 doesn't work at all on OS X version 10.11.2.

josh- commented 8 years ago

Thanks very much for reporting this guys – it works fine here on my end (OS X 10.11.3) so I'm struggling to reproduce this issue. If you'd be happy to share any relevant crash logs with me (usually stored in ~/Library/Logs/DiagnosticReports/) that would be an immense help!

sillygwailo commented 8 years ago

@josh- Are there any other logs we can provide? It doesn't exactly crash, but is just unusable. I can only quit out of it by going into Activity Monitor and force-quitting the process.

mcdado commented 8 years ago

Yep, the menubar icon basically does nothing on click. There's no crash, only thing close to it are those console logs that I first reported.

sillygwailo commented 8 years ago

Still true on 10.11.4. Here are the messages I get in Console.

3/24/16 1:35:39.026 PM CloudyTabs[10092]: -[__NSCFArray objectForKeyedSubscript:]: unrecognized selector sent to instance 0x7fd431e4c850
3/24/16 1:35:39.026 PM CloudyTabs[10092]: -[__NSCFArray objectForKeyedSubscript:]: unrecognized selector sent to instance 0x7fd431e4c850

No crash logs titled with "CloudyTabs" in ~/Library/Logs/DiagnosticReports/.

sean-rose commented 8 years ago

Seeing this on 10.11.5, but with two different (hopefully more helpful) messages in the console:

CloudyTabs[15019]: *** Assertion failure in -[NSMenuItem initWithTitle:action:keyEquivalent:], /Library/Caches/com.apple.xbs/Sources/AppKit/AppKit-1404.47/Menus.subproj/NSMenuItem.m:402
CloudyTabs[15019]: Invalid parameter not satisfying: aString != nil
MarkEstefanos commented 8 years ago

Also getting this issue.

dhalarewich commented 8 years ago

Getting the same issue here on 10.11.5. Here's the messages that I'm seeing in console:

CloudyTabs[1958]: *** Assertion failure in -[NSMenuItem initWithTitle:action:keyEquivalent:], /Library/Caches/com.apple.xbs/Sources/AppKit/AppKit-1404.47/Menus.subproj/NSMenuItem.m:402
CloudyTabs[1958]: Invalid parameter not satisfying: aString != nil
jadchaar commented 8 years ago

Had this issue on my old Mac (running El Capitan) and I recently got a new Mac, and the issue is still present. The menu bar icon used to at least click on my old machine, but nothing would come up when the icon is clicked.. Now, on my new Mac (clean install), the menubar app doesn't even open when I click the icon. No press feedback or anything. It is like I am not clicking anything.

This is a video depicting the behavior. This video was recorded after a fresh install and first startup after dragging to applications. Nothing occurring in the console when icon clicked. Video located in this zip file. Thanks!

sean-rose commented 8 years ago

After investigating a bit further, it looks like Apple now encrypts the iCloud tabs data in ~/Library/SyncedPreferences/com.apple.Safari.plist (there are remotevalue, com.apple.Safari.EncryptedKVS.PCSEncryptedData, and com.apple.Safari.EncryptedKVS.PCSObject entries for each device containing binary data).

So unfortunately, unless someone can figure out how to decrypt that data then this app and others like it that rely on reading the iCloud tabs from ~/Library/SyncedPreferences/com.apple.Safari.plist are dead in the water.

nehayward commented 7 years ago

Any ideas on how to decrypt it?

josh- commented 7 years ago

I haven't successfully been able to decrypt the data yet unfortunately. It appears that Apple is now using CloudKit to sync the preferences, as there are references to PCS decryption in the CloudKitDaemon framework – it might be possible to use that private framework to decrypt the data?

Alternatively it might be possible to go down the route of interacting with the API as this project attempted to do a while ago – there is a good writeup of the Protobuf API here. However, I'm not in favour of this option at all as it probably violates the TOS.

I'm not sure how much spare time I'll have to be able to investigate, but hopefully someone will be able to figure it out eventually 👍

josh- commented 6 years ago

Fixed in https://github.com/josh-/CloudyTabs/commit/4b64bd19f9b59730d5956c5661c9e1c377864757 👍