Delphi XE2 Firemonkey sample app not running on a MAC
I am trying to run a sample Firemonkey app on a Mac, but I am getting this message in the mac:
dyld: Library not loaded: @rpath/libcgunwind.1.0.dylib
Referenced from: /Users/nobre/Applications/Embarcadero/PAServer/scratch-dir/rafael_colucci-Nobre/Project37.app/Contents/MacOS/Project37
Reason: image not found
dyld: Library not loaded: @rpath/libcgunwind.1.0.dylib
Referenced from: /Users/nobre/Applications/Embarcadero/PAServer/scratch-dir/rafael_colucci-Nobre/Project37.app/Contents/MacOS/Project37
Reason: image not found
dyld: Library not loaded: @rpath/libcgunwind.1.0.dylib
Referenced from: /Users/nobre/Applications/Embarcadero/PAServer/scratch-dir/rafael_colucci-Nobre/Project37.app/Contents/MacOS/Project37
Reason: image not found
I used this tutorial to add a OSX platform:
New Mac and Rad Studio XE2
EDIT
More info about the error:
Process: Teste2 [34270]
Path: /Users/User/Applications/Embarcadero/PAServer/scratch-dir/rafael_colucci-VM/Test开发者_JS百科e2.app/Contents/MacOS/Teste2
Identifier: Teste2
Version: ??? (???)
Code Type: X86 (Native)
Parent Process: launchd [94]
Date/Time: 2011-09-01 19:36:26.246 +0100
OS Version: Mac OS X 10.6.8 (10K540)
Report Version: 6
Interval Since Last Report: 3908 sec
Crashes Since Last Report: 4
Per-App Crashes Since Last Report: 4
Anonymous UUID: 58C242CA-C324-4A23-86ED-96D93C7C1A84
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Crashed Thread: 0
Dyld Error Message:
Library not loaded: @rpath/libcgunwind.1.0.dylib
Referenced from: /Users/User/Applications/Embarcadero/PAServer/scratch-dir/rafael_colucci-VM/Teste2.app/Contents/MacOS/Teste2
Reason: image not found
Binary Images:
0x8fe00000 - 0x8fe4163b dyld 132.1 (???) <4CDE4F04-0DD6-224E-ACE5-3C06E169A801> /usr/lib/dyld
Model: VMware Virtual Platform, BootROM 6.00, 1 processor, 30 GHz, 1 GB, SMC 1.30f3
Graphics: VMware SVGA II, VMware SVGA II, PCI, 16 MB
Network Service: Ethernet, Ethernet, en0
Parallel ATA Device: VMware Virtual IDE CDROM Drive
SCSI Device: SCSI Target Device @ 0
USB Device: VMware Virtual USB Hub, 0x0e0f (VMWare, Inc.), 0x0002, 0x00200000 / 3
USB Device: VMware Virtual USB Keyboard, 0x05ac (Apple Inc.), 0x020b, 0x00210000 / 4
USB Device: VMware Virtual USB Mouse, 0x0e0f (VMWare, Inc.), 0x0003, 0x00100000 / 2
EDIT
Some screenshots:
I just installed the Delphi XE2 Trial and I'm getting the same issue - unable to start a FireMonkey application on Mac OS X because of the missing libcgunwind.1.0.dylib.
However, I believe I know what the problem is. This file should be inside the ($BDS)\Redist\osx32 folder ready to be deployed with your Delphi OSX application. But, if you only installed the Delphi XE2 product instead of the complete RAD Studio XE2, these redistributable files will be missing, e.g. not installed at all.
Wherever this specific file is mentioned in the documents, it's in relation to C++Builder. So if this really is the issue, it's probably a (not so small) oversight on Embarcadero side.
To answer your question - I believe if you install the C++Builder XE2 trial, or the whole RAD Studio XE2 package, you should get these redistributable files.
If you go to the directory where PAServer was installed on you Mac, you should see that libcgunwind.1.0.dylib is present there.
The installer tries to help by creating a paserver.command file. If you launch using this, it should set your library path correctly so the above file is found.
If you've moved your PAServer location, just manually update the paserver.command file with the appropriate paths and run.
Runtime error 231 at 000169AD
this is a problem under VMWare, see https://forums.embarcadero.com/message.jspa?messageID=393962
Workaround is copy FMX.Filter.pas to your project directory and modify:
function FilterByName(const AName: string): TFilter;
var
i: Integer;
begin
Result := nil;
if Filters = nil then
Exit;
if GlobalUseHWEffects then
begin
for i := 0 to Filters.Count - 1 do
if CompareText(TFilterClass(Filters.Objects[i]).FilterAttr.Name, AName) = 0
then
begin
Result := TFilterClass(Filters.Objects[i]).Create;
Exit;
end;
end;
end;
function FilterClassByName(const AName: string): TFilterClass;
var
i: Integer;
begin
Result := nil;
if Filters = nil then
Exit;
if GlobalUseHWEffects then
begin
for i := 0 to Filters.Count - 1 do
if CompareText(TFilterClass(Filters.Objects[i]).FilterAttr.Name, AName) = 0
then
begin
Result := TFilterClass(Filters.Objects[i]);
Exit;
end;
end;
end;
and in dpr set GlobalUseHWEffects := False;
This is because VMWare and emulating graphics hardware
You have to install the PA Server here follow these instructions Installing and Running the PA on Mac OS X
Embarcadero's instructions on starting the remote server seem to be incorrect. Use the paserver.copmmand file to start the server. Then my project ran fine.
Then Deploying. Change the build configuration to Release instead of Debug. You have to copy the libcgunwind.1.0.dylib to the Redist\osx32 directory or the release will fail. Then tried build/release again. The "project".rsm file is in the debug directory and not in the release directory. I copied the .rsm file to the release directory, Deployed and it worked. This was the case with my own demo project and the controlsDemo project. Either one worked the same way.
A bit rough start but everything is working. Don't know why they put a menubar on the controls demo since it is not very mac-like. Change it to a main menu and everything works great.
Bill
I have solved this for me. I was clicking the green run button in the ide which is 'run without debugging'.
Click the run button next to it, which in XE2 is the run button us older people are used to.
If think you need to open a cmd window and do the following command to populate the Redist folder, after that the the Deployment Manager will locate the necessary files:
C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\Redist> redistsetup default
Deployment Manager has a "Reconcile" button to refresh the list.
console "Hello, World"
release - works fine (Hello, World) appears in Platform Assistant
terminal window debug - same as release
empty 2D Form
release - Runtime error 231 at 000169AD debug - seems to run (bouncing Spartan Helmet icon in dock) but
the form never appears
empty 3D Form
release - Platform Assistant terminal window shows "invalid pixel
format" and "invalid context" messages but form appears and menu bar has "Project1" in it debug - same as release
These errors mean that you run your application under MacOS that was installed on Virtual Machine. Installation of MacOS on VM conflicts with license, and therefore Embarcadero does not plan to support the VM environment.
Just click paserver.command instead of just paserver.. It works!
U can even add -password=(your password) , at the end of the last line inside paserver.command (after the last " . then it starts without asking for password.
Make sure there is a space after the path to the paserver in your paserver. Command before the -password
part. For instance, my password is firemonkey
and the line is as follows:
"/Users/firemonkey/Applications/Embarcadero/PAServer/paserver" -password=firemonkey
Then, make sure you run the paserver from the paserver.command
file.
Check the new "Redist" folder in the RAD Studio installation path. Your application needs some files from it.
Running the paserver.command helped with the first problem but most of it is the I think a missing file.
Checking deploy, the file libcgunwind.1.0.dylib in ($BDS)\Redist\osx32 folder was greyed out so I copied the file from the PAServer on the mac and refreshed now the app runs fine stand alone :)
Just copy and run the application from the PAServer folder. Remember that to install and run PAServer you should do this http://docwiki.embarcadero.com/RADStudio/XE2/en/Installing_and_Running_the_Platform_Assistant_on_the_Target_Platform#Mac%3a_Installing_and_Running_the_Platform_Assistant_.28paserver.29_on_a_Mac
精彩评论