Hello!

Here is a procedure to submit a VisualWorks application on AppStore.
Maybe it can be adapted for Pharo?

Cheers,
Alexandre


> Begin forwarded message:
> 
> From: Annick Fron <annick.f...@afceurope.com>
> Subject: [vwnc] Publishing an app to apple store : the full script !
> Date: July 15, 2016 at 3:30:20 PM GMT+2
> To: vwnc NC <v...@cs.uiuc.edu>
> Cc: Annick Fron <i...@afceurope.com>
> Reply-To: Annick Fron <annick.f...@afceurope.com>
> 
> Hi,
> 
> 
>       Besides Maarten’s package to publish on applestore, here is a more 
> condensed procedure describing the process.
> 
> Summary of needed actions to publish an application to applestore 
> 
> 
> Note : You can use the nano editor to edit system files using « nano" my file 
> to ensure you stick to pure text format
> 
> - 1) Enroll as a developer on developer.apple.com 
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__developer.apple.com&d=CwMF-g&c=8hUWFZcy2Z-Za5rBPlktOQ&r=oQmY7z9BeClneFUFwUmfhw&m=QjkjlI7SzG9jxsr5Dyo16yT_L_enoNSP-Ix7Lg9GdS0&s=oUDWfTdG297ybGEBLeqg3xdNWKMHlJ8o9H4_99BniD4&e=>
> - 2) Generate certificates : Developer id; 3rd party application installer
> - 3) Download certificates together with middle certificates from Apple (to 
> complete the CA chain)
> - 4) Check availability of certificates in keychain utility, and avoid 
> certificates duplicated in session and system tabs
> - 5) Generate one or more application ids in apple developer web site (in the 
> following the app id will be com.fencingfox.saintgeorges)
> 
> - 6) Copy visual.app in a directory and rename it
> - 7) Thin visual and its Frameworks components to architecture i386
> 
> cd myapp.app/Contents
> cd MacOS
> lipo visual -thin i386 -output visual
> cd ../Frameworks
> lipo libcairo.2.dylib -thin i386 -output libcairo.2.dylib
> lipo libpixman-1.0.dylib -thin i386 -output libpixman-1.0.dylib
> lipo libpng15.0.dylib -thin i386 -output libpng15.0.dylib
> 
> Check it
> lipo - info visual
> 
> - 8) Edit myapp.app/Contents/Info.plist . To do that download Xcode, create a 
> workspace, import the file myapp.app.
> Modify Bundle identifier with one of the application ids you have crated on 
> Apple Developers’ site, define application category, bundle version without 
> any letter
> 
> 
> - 9) Edit localizations subdirectories  under 
> Contents/Resources/English.lproj (resp. French.lproj), etc. Modify the 
> MainMenu.nib under Xcode.
> 
> - 10) Modify the icons MainIcons.icns in Contents/Resources using various 
> tools. In case of problems you may use the following trick :
> ICON_OLD=icon.icns
> ICON_NEW=icon_new.icns
> iconutil -c iconset -o "${ICON_OLD%.icns}.iconset" "$ICON_OLD"
> iconutil -c icns -o "$ICON_NEW" "${ICON_OLD%.icns}.iconset"
> 
> -11) Copy your image.im to myapp.app/Contents/Resources/resource.im
> 
> - 12) Ensure everything is readable by all :
> chmod -R a+r myapp.app
> - 13) Ensure dylibs and visual have executable rights for all (chmod 555 
> visual).
> 
> 
> - 14) Optional step : sign the components located in 
> myapp.app/Contents/Frameworks with your developer Id certificate
> 
> codesign -s "Developer ID Application: Annick Fron (XXXXXXXXXX)" -v 
> ./SaintGeorges.app/Contents/Frameworks/libcairo.2.dylib
> codesign -s "Developer ID Application: Annick Fron (XXXXXXXXXX)" -v 
> ./SaintGeorges.app/Contents/Frameworks/libpixman-1.0.dylib
> codesign -s "Developer ID Application: Annick Fron (XXXXXXXXXX)" -v 
> ./SaintGeorges.app/Contents/Frameworks/libpng15.0.dylib
> 
> - 15) Sign the app
> 
> codesign --entitlements ./sg.entitlements -s "Developer ID Application: 
> Annick Fron (XXXXXXXXXX)" -v ./SaintGeorges.app
> 
> with for instance the following entitlements file (allows for networking)
> sg.entitlements
> <?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 
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.apple.com_DTDs_PropertyList-2D1.0.dtd&d=CwMF-g&c=8hUWFZcy2Z-Za5rBPlktOQ&r=oQmY7z9BeClneFUFwUmfhw&m=QjkjlI7SzG9jxsr5Dyo16yT_L_enoNSP-Ix7Lg9GdS0&s=suq_Rm8s6qwyG970Q4m5zNZySs7tQXWWOcacUDBeKuY&e=>">
> <plist version="1.0">
> <dict>
>       <key>com.apple.security.app-sandbox</key>
>       <true/>
>       <key>com.apple.security.device.usb</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/>
> </dict>
> </plist>
> 
> - 16) Create an installer
> Create a component list :
> 
> pkgbuild --analyze --root ./SaintGeorges.app SaintGeorgesComponents.plist
> 
> Then use it
> pkgbuild --root ./SaintGeorges.app --component-plist 
> SaintGeorgesComponents.plist --identifier "com.fencingfox.saintgeorges" 
> --install-location "/" ./SaintGeorges.pkg
> 
> You can also use Packages
> http://s.sudre.free.fr/Software/Packages/about.html 
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__s.sudre.free.fr_Software_Packages_about.html&d=CwMF-g&c=8hUWFZcy2Z-Za5rBPlktOQ&r=oQmY7z9BeClneFUFwUmfhw&m=QjkjlI7SzG9jxsr5Dyo16yT_L_enoNSP-Ix7Lg9GdS0&s=gAjduabCesMj90835RN6lfzqsTzr5RzceJjHaxgtywo&e=>
> http://thegreyblog.blogspot.fr/2014/06/os-x-creating-packages-from-command_2.html
>  
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__thegreyblog.blogspot.fr_2014_06_os-2Dx-2Dcreating-2Dpackages-2Dfrom-2Dcommand-5F2.html&d=CwMF-g&c=8hUWFZcy2Z-Za5rBPlktOQ&r=oQmY7z9BeClneFUFwUmfhw&m=QjkjlI7SzG9jxsr5Dyo16yT_L_enoNSP-Ix7Lg9GdS0&s=cnSVtCmVTOXYPNRxMF_npFBb44doetXcfYinUlNaC5s&e=>
> 
> - 17) Create and sign an archive
> productbuild \
>  --distribution distribution.plist \
>  --resources . \
>  --sign "3rd Party Mac Developer Installer: Annick Fron (XXXXXXXXXX)" \
>  --package-path ./SaintGeorges.pkg \
>  SaintGeorgesFinal.pkg
> 
> 
> using for instance the following distribution.plist file
> <?xml version="1.0" encoding="utf-8" standalone="no"?>
> <installer-gui-script minSpecVersion="2">
>     <pkg-ref id="com.fencingfox.saintgeorges"/>
>     <options customize="never" require-scripts="false"/>
>     <volume-check>
>         <allowed-os-versions>
>             <os-version min="10.9"/>
>         </allowed-os-versions>
>     </volume-check>
>     <choices-outline>
>         <line choice="default">
>             <line choice="com.fencingfox.saintgeorges"/>
>         </line>
>     </choices-outline>
>     <choice id="default"/>
>     <choice id="com.fencingfox.saintgeorges" visible="false">
>         <pkg-ref id="com.fencingfox.saintgeorges"/>
>     </choice>
>     <pkg-ref id="com.fencingfox.saintgeorges" version="0" 
> onConclusion="none">SaintGeorges.pkg</pkg-ref>
> 
> - 18) Generate the product
> productbuild --sign "3rd Party Mac Developer Installer: Annick Fron 
> (XXXXXXXXXX)" --component SaintGeorges.app /Applications 
> SaintGeorgesFinal.pkg --product ./requirements.plist 
> 
> using for instance the following empty requirements.plist
> <?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 
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.apple.com_DTDs_PropertyList-2D1.0.dtd&d=CwMF-g&c=8hUWFZcy2Z-Za5rBPlktOQ&r=oQmY7z9BeClneFUFwUmfhw&m=QjkjlI7SzG9jxsr5Dyo16yT_L_enoNSP-Ix7Lg9GdS0&s=suq_Rm8s6qwyG970Q4m5zNZySs7tQXWWOcacUDBeKuY&e=>">
> <plist version="1.0">
> <dict>
> <key>os</key>
> <array>
> </array>
> </dict>
> </plist>
> 
> 
> 
> - 19) From you Apple developer account connect to itunesconnect and describe 
> your product
> 
> - 20) Upload your final package.pkg using ApplicationLoader launched from 
> Xcode menu/Open Developer Tool (double click on the empty zone to upload)
> 
> Enjoy !
> 
> Annick Fron
> 
> 

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



Reply via email to