I'm in the process of building a commercial application for Racket, so this is really good to know. Thank you, Seamus -- this would have had me tearing my hair out.
Dave PS: I read through this entire thread, understanding the information and the references and finding it useful, while simultaneously wondering why you were talking about codesigning code and who was designing it with you. I literally just realized as I started to type this that you're saying "code signing" not "co-designing". On Mon, Jul 3, 2017 at 6:17 PM, Seamus Brady <[email protected]> wrote: > On Monday, 3 July 2017 15:18:07 UTC+1, Matthew Flatt wrote: > > At Mon, 3 Jul 2017 08:15:38 -0600, Matthew Flatt wrote: > > > to make progress for now, you can > > > change > > > > > > collects/compiler/private/mach-o.rkt > > > > > > and replace the call on line 164 to `detect-linkedit-padding` with the > > > constant 12 --- since 12 seems to be the right number for the v6.9 > > > build, but `detect-linkedit-padding` thinks it's 8. > > > > Make that 4 instead of 12 if you're using `raco exe --gui`. > > Thank you Matthew and Norman for taking the time to reply. I got a bit > further than Norman :) > > The trick from Matthew did the trick and that Racket based app gets signed > and passes all the local GateKeeper checks :) Great stuff. This means that > I get create a commercial grade application using Racket - I am delighted. > Thank you, thank you. > > As some extra feedback that may be useful to other readers, I also had to > edit the app slightly to conform to Apples latest app guidelines: > > https://developer.apple.com/library/content/documentation/ > MacOSX/Conceptual/BPFrameworks/Concepts/FrameworkAnatomy.html > > I needed to add Resources folder and an Info.plist with the correct > CFBundleIdentifier set for the Racket Framework: > > <?xml version="1.0" encoding="UTF-8"?> > <!DOCTYPE plist SYSTEM "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> > <plist version="0.9"> > <dict> > <key>CFBundleDevelopmentRegion</key> > <string>English</string> > <key>CFBundleExecutable</key> > <string>Racket</string> > <key>CFBundleIdentifier</key> > <string>org.racket-lang.Racket</string> > <key>CFBundleIconFile</key> > <string>Starter</string> > <key>CFBundleInfoDictionaryVersion</key> > <string>6.0</string> > <key>CFBundlePackageType</key> > <string>APPL</string> > <key>CFBundleSignature</key> > <string>MrSt</string> > <key>CFBundleVersion</key> > <string>6.9</string> > <key>CFBundleShortVersionString</key> > <string>6.9</string> > <key>NSPrincipalClass</key> > <string>NSApplicationMain</string> > <key>NSHighResolutionCapable</key> > <true></true> > <key>NSSupportsAutomaticGraphicsSwitching</key> > <true></true> > </dict> > </plist> > > Then I updated the framework folders using the bash script below so that > they conform to the new folder structure as outlined in the Apple docs: > > cd .<MyApp>.app/Contents/Frameworks/Racket.framework/Versions/ > ln -s ./6.9_3m Current > cd ./<MyApp>.app/Contents/Frameworks/Racket.framework/ > ln -s ./Versions/Current/Racket Racket > ln -s ./Versions/Current/Resources Resources > > Then I signed the app using the codesign utility as outlined below: > > https://successfulsoftware.net/2012/08/30/how-to-sign- > your-mac-os-x-app-for-gatekeeper/ > > I hope that helps. Again, many thanks. I am very grateful to get this > working. I would have lost weeks ot work otherwise! > > Regards > > Seamus > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

