Lisp HUG Maillist Archive

Signing + Apple App Store

If anyone here has experience with signing their LW app and submitting 
it to Apple's App store (and you wouldn't mind sharing that experience), 
I'd very much appreciate a run-down of anything special you needed to do 
when delivering your app, and any pitfalls you ran into submitting it 
(e.g. if you kept debug mode and were rejected because of it).

Thanks!

Jeff M.

_______________________________________________
Lisp Hug - the mailing list for LispWorks users
lisp-hug@lispworks.com
http://www.lispworks.com/support/lisp-hug.html


Re: Signing + Apple App Store

Hello Jeff
Here is some meta code of how we do it. I hope I haven’t forgotten anything.
Best,
Sven

Step 1, building from a shell file
/Applications/LispWorks\ 6.1/LispWorks.app/Contents/MacOS/lispworks-6-1-0-macos-universal -build deliver.lisp

Step 2, this happens inside deliver.lisp
(compile-system ’myapp :load t)
(deliver ’run-myapp-gui
…
;; some things needed for App Store delivery
:split :resources
:exe-file (current-pathname "xstarter-with-uuid" nil)
…)

Step 3. Now we are back in the shell script
# Prepare for delivery in App Store
dsymutil --arch=i386 -o ~/Desktop/myapp.app.dSYM ~/Desktop/myapp.app/Contents/MacOS/ScoreCloud
# Sign myapp.app including everything in the bundle
# SANDBOXING
codesign --deep -s "Mac App Distribution: My Company" -v --entitlements ./myapp.entitlements ~/Desktop/myapp.app
productbuild --sign "Mac Installer Distribution: My Company" --product ./product-definition.plist --component ~/Desktop/myapp.app /Applications ~/Desktop/myapp.pkg

Step 4. Use "Application Loader.app” to upload ~/Desktop/myapp.pkg to App Store

--- the end ---

# example of the myapp.entitlements file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>com.apple.security.app-sandbox</key>
  <true/>
  <key>com.apple.security.device.microphone</key>
  <true/>
  <key>com.apple.security.files.user-selected.read-write</key>
  <true/>
  <key>com.apple.security.network.client</key>
  <true/>
  <key>com.apple.security.network.server</key>
  <true/>
  <key>com.apple.security.print</key>
  <true/>
  <key>com.apple.security.temporary-exception.mach-lookup.global-name</key>
  <array>
    <string>com.apple.midiserver</string>
    <string>com.apple.midiserver.io</string>
  </array>
  <key>com.apple.security.temporary-exception.audio-unit-host</key>
  <true/>
</dict>
</plist>

# example of product-definition.plist
# NOTE: myapp doesn’t run with 10.7
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>os</key>
  <array>
    <string>10.6</string>
    <string>10.8</string>
    <string>10.9</string>
    <string>10.10</string>
  </array>
</dict>
</plist>



22 jan 2015 kl. 16:52 skrev Jeffrey Massung <massung@gmail.com>:

> 
> If anyone here has experience with signing their LW app and submitting it to Apple's App store (and you wouldn't mind sharing that experience), I'd very much appreciate a run-down of anything special you needed to do when delivering your app, and any pitfalls you ran into submitting it (e.g. if you kept debug mode and were rejected because of it).
> 
> Thanks!
> 
> Jeff M.
> 
> _______________________________________________
> Lisp Hug - the mailing list for LispWorks users
> lisp-hug@lispworks.com
> http://www.lispworks.com/support/lisp-hug.html
> 


_______________________________________________
Lisp Hug - the mailing list for LispWorks users
lisp-hug@lispworks.com
http://www.lispworks.com/support/lisp-hug.html


Updated at: 2020-12-10 08:33 UTC