Watch, Follow, &
Connect with Us

For forums, blogs and more please visit our
Developer Tools Community.


Welcome, Guest
Guest Settings
Help

Thread: OSX Mavericks desktop: Codesign or runtime packages - can't do both



Permlink Replies: 0
Grant Beattie

Posts: 77
Registered: 11/29/01
OSX Mavericks desktop: Codesign or runtime packages - can't do both
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 7, 2014 4:26 PM
This is a collection of two forum threads that merge to maybe find a solution. As near as I can tell the situation is the same for Delphi or CPP firemonkey.

1. If you want to codesign/sandbox/package your desktop application you need to have link with runtime packages false.

2. You can't have runtime packages false if you want to use things like MessageDlg (and I don't know how many other gotchas there are out there like this).

With runtime packages false the app bundle has the minimum files in the Contents/MacOS folder ... just the app and libcgunwind.1.0.dylib. The IDE seems to be able to codesign and package this OK. If you set runtime packages true you also get bplfmx210.dylib bplrtl210.dylib and each has an .fr .ja .de file. This cannot be codesigned successfully.

With runtime packages false you can codesign but you cannot call MessageDlg or your program will hang. There are probably other dark alleys as well.

Here is some code you can try. Two buttons and one open dialog.

procedure TForm1.Button1Click(Sender: TObject);
begin
   OpenDialog1.Execute();    // Functionality reduced when not code signed.
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
   MessageDlg('This is a message to you.', TMsgDlgType.mtError, mbOKCancel, 0);  // "Boom" if runtime packages not in bundle. 
end;


Probably similar issues with XE6 and Yosemite.
Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02