From: Kevin W. <kw...@co...> - 2011-01-26 16:13:09
|
Hi all, I'm pleased to report that I've successfully submitted one of my Tcl/Tk applications to the Mac App Store. Here's a blog entry on some of the details: http://bit.ly/hpH82t I'll be posting a more technical discussion of the mechanics of App Store submission to the list and/or my blog in the very near future; this will focus on both general issues and specific things I had to do to get the Tcl/Tk app ready. (It was rejected twice, and the third time was the charm.) Thanks to all your advice and encouragement, both on- and off-list. I'll have more info to report soon. Thanks, Kevin -- Kevin Walzer Code by Kevin http://www.codebykevin.com |
From: Damon C. <da...@tc...> - 2011-01-26 22:37:51
|
> I'm pleased to report that I've successfully submitted one of my Tcl/Tk > applications to the Mac App Store. Here's a blog entry on some of the > details: > > http://bit.ly/hpH82t Excellent! I see from your blog that you had to revert back to the Carbon Tk to get it accepted, right? That's a real shame that Tk's Cocoa, which was (at least in part) paid for by Apple themselves can't even make it in. > I'll be posting a more technical discussion of the mechanics of App > Store submission to the list and/or my blog in the very near future; > this will focus on both general issues and specific things I had to do > to get the Tcl/Tk app ready. (It was rejected twice, and the third time > was the charm.) > > Thanks to all your advice and encouragement, both on- and off-list. I'll > have more info to report soon. I would also love a report (blog post or otherwise) about all the different pieces you're using in your apps now. In the last couple years you have become probably the most experienced Tcl/Tk application developer on the Mac, and you've done a lot of work to integrate with the native system. I know you've released some pieces yourself and contributed to others, but I would honestly love a run down of what you're using now and for what parts. Are there any pieces you use that you haven't already released? Just throwing that out there seeing as I'm sure you have TONS of time on your hands. 0-] Thanks, D |
From: Kevin W. <kw...@co...> - 2011-01-26 22:59:31
|
On 1/26/11 1:21 PM, Damon Courtney wrote: >> I'm pleased to report that I've successfully submitted one of my Tcl/Tk >> applications to the Mac App Store. Here's a blog entry on some of the >> details: >> >> http://bit.ly/hpH82t > > Excellent! I see from your blog that you had to revert back to the Carbon Tk to get it accepted, right? That's a real shame that Tk's Cocoa, which was (at least in part) paid for by Apple themselves can't even make it in. I didn't revert to Carbon--I linked to the Tk-Cocoa installed in /System/Library/Frameworks. That makes the private API calls allowed because it's installed by Apple and is part of the system. Not entirely logical, I know. :-) I'll say more about this later on my blog. > > I would also love a report (blog post or otherwise) about all the different pieces you're using in your apps now. In the last couple years you have become probably the most experienced Tcl/Tk application developer on the Mac, and you've done a lot of work to integrate with the native system. I know you've released some pieces yourself and contributed to others, but I would honestly love a run down of what you're using now and for what parts. Are there any pieces you use that you haven't already released? > > Just throwing that out there seeing as I'm sure you have TONS of time on your hands. 0-] > Well, actually, documenting this stuff in some format is a priority. I'm also going to begin work soon on documenting all the tk::mac magic bits and some of the Mac-specific C API bits, since so many folks have complained about it at the Tk tracker. --Kevin -- Kevin Walzer Code by Kevin http://www.codebykevin.com |
From: David Z. <zol...@lr...> - 2011-03-23 16:20:19
|
Hi all, I tried to submit a small starpack to AppStore but it was rejected because my uses non-public APIs. In resolution Center the detail is : The app includes "_spin_lock_try" from the framework . I paste "as is" so I think the space at the end means 'no framework'. My starpack was built with ActiveState Basekit 8.5.9. Does this mean something for you ? How can I find the part using _spin_lock_try ? -- David Zolli kr...@kr... http://www.kroc.tk |
From: Kevin W. <kw...@co...> - 2011-03-23 20:48:33
|
On 3/23/11 12:04 PM, David Zolli wrote: > Hi all, > > I tried to submit a small starpack to AppStore but it was rejected because my uses non-public APIs. In resolution Center the detail is : > > The app includes "_spin_lock_try" from the framework . > > I paste "as is" so I think the space at the end means 'no framework'. > > My starpack was built with ActiveState Basekit 8.5.9. > > Does this mean something for you ? > > How can I find the part using _spin_lock_try ? > David, I suspect that there's no way you can successfully submit with AT basekits. My experience with bundling the Tcl/Tk Cocoa frameworks with my app also led to initial rejection for private API's; they are embedded in Tk-Cocoa all the way down. My approach was to link with the version of Tk shipped with Snow Leopard--that worked around the private API restriction because this version is installed by Apple itself. Here's a link with more info: http://www.codebykevin.com/opensource/app-store.html Thanks, Kevin -- Kevin Walzer Code by Kevin http://www.codebykevin.com |
From: David Z. <zol...@lr...> - 2011-03-24 16:04:56
|
Le 23 mars 2011 à 21:48, Kevin Walzer a écrit : > David, > > I suspect that there's no way you can successfully submit with AT > basekits. My experience with bundling the Tcl/Tk Cocoa frameworks with > my app also led to initial rejection for private API's; they are > embedded in Tk-Cocoa all the way down. My approach was to link with the > version of Tk shipped with Snow Leopard--that worked around the private > API restriction because this version is installed by Apple itself. Hi Kevin, I'm really disappointed! Starkit with well known basekit are so easier to maintain and deploy. At least, it seems it works if I rename my starkit AppMain.tcl and copy it in MyApp.app/Contents/Resources/Scripts/ But, there is "About Tcl & Tk" in menu and I can't remove it (with Tclkit I override it with .menu.apple). Is there a trick for this? I also see wish8.5 from Apple framework doesn't handle correctly button's image for disabled state: I have a white rectangle instead of the shaded picture I have with basekit 8.5.9 :/ In fact, I'm falling back again in problems I've happily forgotten when I started to use Tclkit. For me, it looks like a huge step backward! :( I really hope somebody knows how to use starkit without this _spin_lock_try API! -- David Zolli kr...@kr... http://www.kroc.tk |
From: Damon C. <da...@tc...> - 2011-03-24 16:33:34
|
> I'm really disappointed! Starkit with well known basekit are so easier to maintain and deploy. > > At least, it seems it works if I rename my starkit AppMain.tcl and copy it in MyApp.app/Contents/Resources/Scripts/ > > But, there is "About Tcl & Tk" in menu and I can't remove it (with Tclkit I override it with .menu.apple). Is there a trick for this? > > I also see wish8.5 from Apple framework doesn't handle correctly button's image for disabled state: I have a white rectangle instead of the shaded picture I have with basekit 8.5.9 :/ > > In fact, I'm falling back again in problems I've happily forgotten when I started to use Tclkit. For me, it looks like a huge step backward! :( > > I really hope somebody knows how to use starkit without this _spin_lock_try API! Yeah, Apple is shipping a fairly old version of Tcl/Tk with its base system, and I don't think Lion is going to improve that much. Maybe a little. The problem is that I don't think it's just this one little _spin_lock_try API call we're talking about. According to Kevin's research, there are probably a lot of private APIs Tk is using, and it looks to be a daunting task to remove them all. One which, really, only one person is qualified for. And he's quite busy these days. 0-] Kevin's solution so far has been to just build his own extensions to cover the shortfall in the base Tcl/Tk. You can package your own extensions fairly easily, and they don't run afoul of Apple's guidelines if they don't call into private APIs. Though I really think Apple should allow some kind of exception in this case since the Tcl/Tk with private APIs they're rejecting is the one THEY PAID to write! D |
From: David Z. <zol...@lr...> - 2011-03-24 17:01:05
|
Le 24 mars 2011 à 17:33, Damon Courtney a écrit : > Kevin's solution so far has been to just build his own extensions to cover the shortfall in the base Tcl/Tk. You can package your own extensions fairly easily, and they don't run afoul of Apple's guidelines if they don't call into private APIs. Sure I can. In fact, I don't really understand why I should include Tcl and Tk frameworks in my app while I can just start it with a small run.sh shell script like this: #!/bin/sh # Note we have to quote paths because they might contain spaces dir=`dirname "$0"` exec /usr/bin/tclsh8.5 "$dir/MyApp.kit" "$*" That's way easier to do, and as I'm using system tclsh, it should be ok for Apple reviewers. However, I still have this problem with this "About Tcl & Tk" I can't remove from menu. :/ -- David Zolli kr...@kr... http://www.kroc.tk |
From: Jeff H. <je...@ac...> - 2011-03-24 17:23:50
|
On 24/03/2011 10:00 AM, David Zolli wrote: > Le 24 mars 2011 à 17:33, Damon Courtney a écrit : > >> Kevin's solution so far has been to just build his own extensions to cover the shortfall in the base Tcl/Tk. You can package your own extensions fairly easily, and they don't run afoul of Apple's guidelines if they don't call into private APIs. > > Sure I can. > > In fact, I don't really understand why I should include Tcl and Tk frameworks in my app while I can just start it with a small run.sh shell script like this: > > #!/bin/sh > # Note we have to quote paths because they might contain spaces > dir=`dirname "$0"` > exec /usr/bin/tclsh8.5 "$dir/MyApp.kit" "$*" > > That's way easier to do, and as I'm using system tclsh, it should be ok for Apple reviewers. > > However, I still have this problem with this "About Tcl& Tk" I can't remove from menu. :/ Yes you can, just add your 'About ...' to the magic .apple menu. Jeff |
From: David Z. <zol...@lr...> - 2011-03-24 18:31:30
|
Le 24 mars 2011 à 18:22, Jeff Hobbs a écrit : > On 24/03/2011 10:00 AM, David Zolli wrote: >> >> >> However, I still have this problem with this "About Tcl& Tk" I can't remove from menu. :/ > > Yes you can, just add your 'About ...' to the magic .apple menu. Nope, it works with SA basekit but it doesn't in this case. When I add my 'About ..' it really adds another Apple menu in the menubar as you can see on this screenshot: http://www.casimages.com/img.php?i=110324073404648064.jpg The "About Tcl& Tk" I can't change is the one under "tclsh". -- David Zolli kr...@kr... http://www.kroc.tk |
From: David Z. <zol...@lr...> - 2011-03-24 19:15:15
|
Le 24 mars 2011 à 19:45, Gerald W. Lester a écrit : > David, > > Can you post the exact code you used to create the image? Sure: KrocBook:~ dzolli$ /usr/bin/tclsh8.5 % package require Tk 8.5.7 % menu .menu % . configure -menu .menu % menu .menu.apple -tearoff 0 % .menu add cascade -label "Apple" -menu .menu.apple % .menu.apple add command -label "About ArcCode" etc.. -- David Zolli kr...@kr... http://www.kroc.tk |
From: David Z. <zol...@lr...> - 2011-03-24 19:59:35
|
Le 24 mars 2011 à 20:49, Trevor Williams a écrit : > If you remove the -label "Apple" from the "add cascade" line, what result do you get? I got an empty menu. :) http://www.casimages.com/img.php?i=110324090243116541.jpg -- David Zolli kr...@kr... http://www.kroc.tk |
From: Daniel A. S. <da...@ca...> - 2011-03-24 20:44:27
|
move the [. configure -menu .menu] to after you've added .apple, c.f. menu.n: Such a .apple menu must be present in a menu when that menu is first configured as a toplevel's menubar, otherwise a default application menu (hidden from Tk) will be inserted into the menubar at that time and subsequent addition of a .apple menu will no longer result in it becoming the Application menu. On Mar 24, 2011, at 12:15 PM, David Zolli wrote: > Le 24 mars 2011 à 19:45, Gerald W. Lester a écrit : > >> David, >> >> Can you post the exact code you used to create the image? > > Sure: > > KrocBook:~ dzolli$ /usr/bin/tclsh8.5 > % package require Tk > 8.5.7 > % menu .menu > % . configure -menu .menu > % menu .menu.apple -tearoff 0 > % .menu add cascade -label "Apple" -menu .menu.apple > % .menu.apple add command -label "About ArcCode" > > etc.. > > -- > David Zolli > kr...@kr... > http://www.kroc.tk > ------------------------------------------------------------------------------ > Enable your software for Intel(R) Active Management Technology to meet the > growing manageability and security demands of your customers. Businesses > are taking advantage of Intel(R) vPro (TM) technology - will your software > be a part of the solution? Download the Intel(R) Manageability Checker > today! http://p.sf.net/sfu/intel-dev2devmar > _______________________________________________ > Tcl-mac mailing list > tc...@li... > https://lists.sourceforge.net/lists/listinfo/tcl-mac |
From: David Z. <zol...@lr...> - 2011-03-24 21:07:48
|
Le 24 mars 2011 à 20:44, Daniel A. Steffen a écrit : > move the [. configure -menu .menu] to after you've added .apple, c.f. menu.n: Nice Daniel! It does it!! Now, I'ld like to understand why this menu is named 'tclsh' instead of my app name and why it use the blue feather icon instead of the one I set in the Info.plist? Of course, this Info.plist works fine with tclkit / basekit. -- David Zolli kr...@kr... http://www.kroc.tk |
From: David Z. <zol...@lr...> - 2011-04-06 15:46:19
|
Le 24 mars 2011 à 22:07, David Zolli a écrit : > Le 24 mars 2011 à 20:44, Daniel A. Steffen a écrit : > >> move the [. configure -menu .menu] to after you've added .apple, c.f. menu.n: > > Nice Daniel! It does it!! > > Now, I'ld like to understand why this menu is named 'tclsh' instead of my app name and why it use the blue feather icon instead of the one I set in the Info.plist? I still have some problems with .menu.apple when I use /System/Library/Frameworks/Tk.framework/Versions/8.5/Resources/Wish.app : 1) As I already said, it doesn't use Info.plist CFBundleName for your appname (instead, it uses the name of the file MyApp.app/Contents/MacOS/MyApp which is a copy of /System/Library/Frameworks/Tk.framework/Versions/8.5/Resources/Wish.app/Contents/MacOS/Wish). 2) "About appname" and "Quit appname" labels are not localized but always in english, which made your app rejected from AppStore when your application language is not english. Is it a Tk-Cocoa feature or a bug? Is there any known workaround for that? -- David Zolli kr...@kr... http://www.kroc.tk |
From: David Z. <zol...@lr...> - 2011-03-24 21:14:20
|
Le 24 mars 2011 à 22:07, David Zolli a écrit : > Now, I'ld like to understand ... why it use the blue feather icon instead of the one I set in the Info.plist? Just a funny thing you should try: it starts with my icon, then quickly switch to the blue feather. And when I quit, my icon reappears just before the icon start to shrink and vanish in the Dock. -- David Zolli kr...@kr... http://www.kroc.tk |
From: Adrian R. <adr...@gm...> - 2011-03-25 06:37:11
|
On 2011/03/24, at 23:14, David Zolli wrote: > Le 24 mars 2011 à 22:07, David Zolli a écrit : > >> Now, I'ld like to understand ... why it use the blue feather icon instead of the one I set in the Info.plist? > > Just a funny thing you should try: it starts with my icon, then quickly switch to the blue feather. And when I quit, my icon reappears just before the icon start to shrink and vanish in the Dock. I've gotten this as well in my experiments w/Tk-Cocoa. |
From: David Z. <zol...@lr...> - 2011-03-28 21:14:11
|
Hi all, Good news: I finally found a way to submit successfully a starkit to App Store. :) Here is what I've done: 1) I included Kevin's appstorereceipt 1.0 package in my app 2) I wrapped my starkit with sdx for a custom interp: sdx wrap myapp.kit -interp ../../MacOS/MyApp 3) I moved this starkit in MyApp.app/Contents/Resources/Scripts/AppMain.tcl 4) I copied /System/Library/Frameworks/Tk.framework/Versions/8.5/Resources/Wish.app/Contents/MacOS/Wish in MyApp.app/Contents/MacOS/MyApp (you must rename it if you want .menu.apple displays the good app name). 5) I recorded a valid Info.plist and app.icns as explained by Apple. 6) I signed my app with command-line tool: codesign -f -s "3rd Party Mac Developer Application: Kroc" MyApp.app 7) I packaged my app with command-line tool: chmod -R 775 MyApp.app productbuild --component MyApp.app /Applications \ --sign "3rd Party Mac Developer Installer: Kroc" \ --product MyApp.app/Contents/Info.plist MyApp.pkg 8) Finally, I sent my app to itunes connect with Application Loader.app I hope this will help others to promote Tcl and starkits thru Apple's Appstore. -- David Zolli kr...@kr... http://www.kroc.tk |