Darn. Is there no way to manually insert values into the Info.plist before it is signed? If not, I guess I'll keep trying to get my custom script to work. I just need some kind of short term solution to get this app update out...
By the way, I noticed there is also no way to set the CFBundleVersion, so it's always set to 100. That would prevent me from using the tool as well. Note that I am using 8u25, not 8u20. Zach On Mon, Nov 10, 2014 at 2:46 PM, Danno Ferrin <danno.fer...@oracle.com> wrote: > This may be a bug in 8u20. By setting -Bclasspath=<whatever> it should be > putting <whatever> in as the string. I'de have to dig up the code because > that section of code is uner a major overhaul for 8u40 because of the new > launcher work. > > On Nov 10, 2014, at 10:33 AM, Zach Oakes <zsoa...@gmail.com> wrote: > > I can see from the Info.plist file in the app bundle that JVMAppClasspath > is an empty string: > > <key>JVMAppClasspath</key> > <string></string> > > On Mon, Nov 10, 2014 at 12:27 PM, Zach Oakes <zsoa...@gmail.com> wrote: > >> It looks like the classpath is always just the main jar, no matter >> whether I explicitly use -classPath or not. I am running >> System.getProperty("java.class.path") and it returns "/path/to/myapp.jar" >> and nothing else. This is the current command I'm running: >> >> javapackager -deploy -native \ >> -name MyApp \ >> -outdir out \ >> -outfile MyApp \ >> -srcdir bin \ >> -appclass myapp.Main \ >> -BappVersion=0.4.2 \ >> -Bicon=logo_launcher.icns \ >> -BmainJar=myapp.jar \ >> -Bmac.category=public.app-category.developer-tools \ >> -Bmac.CFBundleIdentifier=info.oakleaf.myapp \ >> -Bmac.CFBundleName=MyApp \ >> -Bmac.signing-key-app="3rd Party Mac Developer Application: XXXXX" \ >> -Bmac.signing-key-pkg="3rd Party Mac Developer Installer: XXXXX" \ >> -Bmac.app-store-entitlements=MyApp.entitlements >> >> On Mon, Nov 10, 2014 at 12:09 PM, Danno Ferrin <danno.fer...@oracle.com> >> wrote: >> >>> No, the class path is either set to all the files in the srcdir, or to >>> whatever you explicitly set it to. Since you explicitly set the class path >>> to -BclassPath=myapp.jar:ObjCBridge.jar:jna.jar then the class path is >>> explicitly set. >>> >>> Note that with the javapackager everything passed in as a resource to >>> -srcdir and/or -srcfiles is placed in .../Contents/Java, and nowhere else. >>> This is so it works mostly the same with Windows and linux, where those are >>> placed in .../app. >>> >>> On Nov 10, 2014, at 10:06 AM, Zach Oakes <zsoa...@gmail.com> wrote: >>> >>> Oh, I didn't realize you could just put native libraries in srcdir. Is >>> the classpath is set to .../Contents/Java as well? I have a few extra jar >>> files my app needs to use. I can see they are copied there successfully, >>> but I can't seem to find their classes on the classpath. >>> >>> On Mon, Nov 10, 2014 at 11:24 AM, Danno Ferrin <danno.fer...@oracle.com> >>> wrote: >>> >>>> Is this a verification on the part of apple? Is it that the program >>>> does not find the library? Or is it that the native library is not in the >>>> .app package at all? >>>> >>>> For 8u20, the launcher javapackager provides sets the java.library.path >>>> to be <app root>/Contents/Java, so a call to System.loadLibrary("jcocca") >>>> should be loading .../Contents/Java/libjcocca.dylib >>>> >>>> Is the native library in the -srcdir? >>>> >>>> >>>> On Nov 10, 2014, at 8:59 AM, Zach Oakes <zsoa...@gmail.com> wrote: >>>> >>>> The error is the parameter dealing with the native library, >>>> libjcocoa.dylib, >>>> that my app requires. Does javapackager support adding native libraries? It >>>> should be copied into MyApp.app/Contents/MacOS. >>>> >>>> On Mon, Nov 10, 2014 at 10:41 AM, Zach Oakes <zsoa...@gmail.com> wrote: >>>> >>>>> Ah, forgive me, there was an error in the bundle process so it stopped >>>>> short of creating a pkg. I will keep working on the parameters to see if I >>>>> can fix it. >>>>> >>>>> On Mon, Nov 10, 2014 at 10:38 AM, Zach Oakes <zsoa...@gmail.com> >>>>> wrote: >>>>> >>>>>> Definitely progress! It ended up creating a bundle, but not a pkg >>>>>> file. Maybe it's trying to make a normal mac bundle? I am using 8u25, by >>>>>> the way. >>>>>> >>>>>> On Mon, Nov 10, 2014 at 10:26 AM, Danno Ferrin < >>>>>> danno.fer...@oracle.com> wrote: >>>>>> >>>>>>> Try just '-native' and not '-native mac.appStore'. I think there >>>>>>> were case checking issues in the 8u20 release. >>>>>>> >>>>>>> On Nov 10, 2014, at 8:25 AM, Zach Oakes <zsoa...@gmail.com> wrote: >>>>>>> >>>>>>> Danno, since you mentioned javapackager, I decided to try using it >>>>>>> in hopes that it would solve the issue. I'm trying to put together a >>>>>>> command for it, but it's a bit confounding. So far I'm just getting a >>>>>>> jnlp >>>>>>> and html file to appear. Here's what I have so far (split onto separate >>>>>>> lines for readability): >>>>>>> >>>>>>> javapackager -deploy >>>>>>> -native mac.appStore >>>>>>> -name MyApp >>>>>>> -outdir out >>>>>>> -outfile MyApp >>>>>>> -srcdir bin >>>>>>> -appclass myapp.Main >>>>>>> -BappVersion=0.4.2 >>>>>>> -Bicon=logo_launcher.icns >>>>>>> -BclassPath=myapp.jar:ObjCBridge.jar:jna.jar >>>>>>> -Bjava.library.path=libjcocoa.dylib >>>>>>> -Bmac.category=public.app-category.developer-tools >>>>>>> -Bmac.CFBundleIdentifier=info.oakleaf.myapp >>>>>>> -Bmac.CFBundleName=MyApp >>>>>>> -Bmac.signing-key-app="3rd Party Mac Developer Application: XXXXX" >>>>>>> -Bmac.signing-key-pkg="3rd Party Mac Developer Installer: XXXXX" >>>>>>> -Bmac.app-store-entitlements=MyApp.entitlements >>>>>>> >>>>>>> On Sun, Nov 9, 2014 at 7:13 PM, Danno Ferrin < >>>>>>> danno.fer...@oracle.com> wrote: >>>>>>> >>>>>>>> What are your entitlements? For javapackager we sign only the >>>>>>>> master package with real user supplied entitlements, every other jar, >>>>>>>> dylib, and executable gets an entitlement with an entitlements that is >>>>>>>> just >>>>>>>> sandbox and inherit. We also don't put entitlements on the JRE package >>>>>>>> when it is signed under plugins. >>>>>>>> >>>>>>>> >>>>>>>> On Nov 9, 2014, at 2:26 PM, Zach Oakes <zsoa...@gmail.com> wrote: >>>>>>>> >>>>>>>> > It looks like Apple has changed its codesigning requirements for >>>>>>>> the Mac >>>>>>>> > App Store. Thus far, I've been packaging my Java app using >>>>>>>> Oracle's >>>>>>>> > appbundler tool and signing it with the following script: >>>>>>>> > >>>>>>>> > http://pastebin.com/BtLV9bur >>>>>>>> > >>>>>>>> > This worked fine even as recently as last month. This time, I get >>>>>>>> an email >>>>>>>> > from them with the following: >>>>>>>> > >>>>>>>> > Invalid code signature - Signatures created with OS X version >>>>>>>> 10.8.5 or >>>>>>>> > earlier [v1 signatures] are obsoleted and will no longer be >>>>>>>> recognized by >>>>>>>> > Gatekeeper beginning with OS X version 10.9.5. To ensure your >>>>>>>> apps will run >>>>>>>> > on updated versions of OS X they must be signed on OS X version >>>>>>>> 10.9 or >>>>>>>> > later [v2 signatures]. For more information, see OS X Code >>>>>>>> Signing In Depth >>>>>>>> > >>>>>>>> > I think this error is incorrect, because I'm using 10.9.5 with >>>>>>>> the latest >>>>>>>> > Xcode (6.1). I tried "codesign -dv MyApp.app" and it says "Sealed >>>>>>>> Resources >>>>>>>> > version=2 rules=12 files=7", so I think I am using v2 signatures. >>>>>>>> My JDK >>>>>>>> > version has not changed since last month (8u25), so I can rule >>>>>>>> that out. >>>>>>>> > >>>>>>>> > I would appreciate any help. Thank you. >>>>>>>> > >>>>>>>> > Zach >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>>> >>> >>> >> > >