I have an application that implements a FinderSync app extension. The problem is that on a customer computer, it seems that FinderSync is installed only after Finder is restarted, but not before. The customer has osx El Capitan(10.11.2).
I have a screenshot from that customer with the application running, but finder extension not installed in System Preferences->Extensions
I also have a log file where I logged the output of the following command:
pluginkit -m -A -i com.xxx.xxx.xxx -v
which returns
(no matches)
The thing is that this happens only on that machine, all other machines we are testing on are working fine: the extension is loaded immediately after the application is opened.
Do you know why Finder does not load the appex immediately after application is running?
Is there a way to avoid this behavior?
Thanks!
You got to look in the System.log file for plugin com.xxx.xxx.xxx invalidated.
If you see that, it means that the system has kicked out your plugin. You can just re-add then.
I'm currently looking into why mine get's invalidated.
Related
I created a Mac app that uses ConnectionKit to connect to a server using FTP. Today I went to export the file and use it on another computer only to find that the app does not open entirely on a different computer.
On the development computer, the app functions completely, but on another computer, it opens, the icon stops bouncing in the dock, and the name of the app is shown in the menu bar, but the first view controller and window are never opened.
The menu is also not visible. It just shows the app title and nothing else.
I assume that this has to do with ConnectionKit, but I checked the package contents of the exported bundle and ConnectionKit is in there under Frameworks.
Here are the steps I took to include it.
I downloaded ConnectionKit using git clone
I downloaded each git submodule using git submodule update --recursive --init
I dragged the ConnectionKit.xcodeproj file to my Frameworks directory in the project explorer
I added ConnectionKit from the workspace into the "Link Binary with Libraries" section
I added a new "Copy Files" build phase.
I changed the destination to "Frameworks"
I added the ConnectionKit.framework from the Products of the ConnectionKit.xcodeproj to the copy files phase.
The build phases tab looks like this:
This doesn't seem to work. The application just sits there and doesn't launch the app on any computer other than the development computer.
What am I doing wrong here?
You need to run the app in Xcode under the debugger on one of these other computers. It sounds very likely that you are getting a raise at launch. Seeing the raise in the debugger would doubtless shed light on the cause, which might or might not even have anything to do with ConnectionKit. :-> You could also look at the console logs generated by your app, in Console.app (in Applications/Utilities/), but actually getting the raise in the debugger is generally more useful unless the problem is something very obvious.
I cannot manage to install Squeak and Pharo Smalltalk on Mac OS X 10.9.
as general a smalltalk system is composed of three elements; a VM, an image(if any changes to image then a changes file), and a sources file.
on squeak page
I have downloaded all in one linked file, but it does to include an .image or .sources. it includes a .app. on the page this is mentioned to be the VM on mac, and it is mentioned to include all files one require. anyway double clicking does not launch smalltalk.
on pharo page
similar promise but does not launch again. it says download that file it includes everything necessary and just run the executable. but it includes .image .changes and .sources files in sub directory of /Pharo2.0.app/Contents/Resources.
Am I doing something wrong?
UPDATE:
for squeak I have also found the .image .change and .sources files in some sub directory of the all-in-one. Should i, both for pharo and squeak, move these files to the same directory with the .app file.
UPDATE:
i have tried so. no change.
UPDATE:
because it is not signed upon first launch i modify settings to launch it authorizing as admin user one time. no problem with that.
The first time you run the Squeak all-in-one, you need to right-click the app and choose "open". Then you will get a dialog that let's you run it. If you just double-click you get the same warning dialog, but without the option to run it.
This is because the Squeak app is not signed with an Apple developer key.
You also can to change the run permission in System Preferences (Security Preferences), from "Map App Store" to "Anywhere".
The problem emerged from the fact that the application I had downloaded from Squeak or Pharo websites were not executable in my computer.
Issuing a change mod add executable command from terminal solves the problem for each one.
chmod +x /path/to/smalltalk/squeak/or/pharo/apps
I would like to detect if my application was "reinstalled".
Currently my application install means only a copy to the /Applications folder.
I would like to detect if somebody deleted the application and after a time he installed it again.
Do you have any ideas how can this be solved?
I would like to detect if somebody deleted
You can use FNSubscribeByPath(Deprecated in OS X v10.8.) for watching trash folder.
I would like to detect if my application was "reinstalled"
You can create one file in application support (your application folder) folder and refer that file. Write application version number in that file.
Your app is just a folder on HDD/SSD, so user can manipulate it like usual file. User can put your app in ~/Applications/MyStuff, make 300 copies of your app and launch them at once.
The only thing you can check is the bundle version of app. Read version from user defaults (written by previous app lauch) and compare to your own bundle version. This may be useful for updates to detect which resources can be upgraded or created.
How about checking for an existing preferences file or expected user defaults setting?
That would give you some hint it was installed recently - few people clean up their preferences folder.
I am new to programming in Go. I would really like your help regarding one of my problems.
I am required to do go install on a file, the executable of which (in Windows) is created in a folder called GOPATH\bin.
Until now, I typically followed the routine: go install <file>.go ---> <file>.exe.
However, this time it appears that after the execution of <file>.exe, the exe doesn't finish complete executing for a while and I get the following error when I go install again.
C:\Users\Rahul\Desktop\Compilers\src\cs553s2013\mylexer>go install
is_digit.go go install command-line-arguments: open
C:\Users\Rahul\Desktop\Compilers\bin\is_ digit.exe: Access is denied.
See http://grokbase.com/t/gg/golang-nuts/135fyje5d9/go-nuts-go-build-access-is-denied-windows-7x64
Absolutely no idea why, but the above suggestion worked. One must enable the "Application Experience" windows service on Windows 7 to solve this issue.
I had this service disabled, and was seeing a similar strange 2-3 minute time of "Permission Denied" on my project's binary (the binary would also disappear after a refresh via alt+F2 of $GOPATH/bin, from a Windows Explorer view of the $GOPATH/bin where Eclipse + Goclipse was building my binary). I noticed that just after execution, and before the binary finally disappeared, it was changed to be owned by some unknown user (in Explorer, it isn't owned by the compiling user, Administrator, or even SYSTEM).
I can only speculate -- perhaps Windows keeps any .exe on the filesystem, if it has exited without some sort of undocumented 'all-OK' status to the windows kernel, assuming it 'crashed', so the Application Experience service can send it as diagnostic data to Microsoft -- and if that service is disabled, the Application Experience service can't finalize whatever handshake NTFS or Explorer is waiting for to allow the file to be overwritten by subsequent compiles. So the golang .exe sits there, with elevated permissions, with some system/undefined user, un-deleteable by Eclipse, until Explorer does something to mark it as definitely dead.
I have created a minimal OS X boot stick (basically the Snow Leopard DVD with all the packages and installer stripped out). I've written a basic Cocoa app launcher to launch other apps that I put in the Applications folder (the minimal install lacks Dock and Finder).
When I try to launch an app I get this error:
LSOpenFromURLSpec() returned -10810 for application (null) path /Applications/MyApp.app
Where "MyApp.app" is the app I tried to launch. I've tried this with both NSWorkspace's openFile method and the UNIX "open" utility and I get more or less the same error. One way that launching an app works is if I just execute the main executable of the app itself. (e.g. /Applications/MyApp.app/Contents/MacOS/MyApp). However this method is kind of inconvenient as it stalls the launcher until the app I launched exits. Any alternate ways to launch an app (or fix the LSOpenFromURL error)?
Thanks
Found a workaround:
/Applications/MyApp.app/Contents/MacOS/MyApp >/dev/null 2>/dev/null &
Using that command starts apps without stalling the launcher.
open relies on Launch Services, which relies on the Finder. Your script workaround starts a new background process executing the application's code with its standard out and standard error open to /dev/null. That should work fine.
The C equivalent under Mac OS X would be to either posix_spawn or fork/vfork then exec the executable file.