[Openmcl-devel] Linking StoreKit.framework from CCL and in-app purchases

Gary Byers gb at clozure.com
Fri Apr 12 02:32:56 UTC 2013



On Thu, 11 Apr 2013, Michael Minerva wrote:

> Sorry about that Gary.  I was excited about the conversation about CCL and the app store so I wanted to respond to Paul's email as quickly as possible when I got in this morning but you're right I should have tried his suggestion about using objc::load-framework before commenting on that.
>
> I did notice that there is no StoreKit directory in the darwin-x86-headers.  Am I reading the documentation correctly that this means that I need to create an interface directory for it (as described in section 13.5).
>

That's the general idea.  I looked at what was involved in parsing the StoreKit
interfaces and there seems to be another issue.

Apple extended the syntax of ObjC 'enum' declarations to allow the type of
the enumeration's members to be specified, as in:

typedef enum : NSInteger
{
 	SKDownloadStateWaiting,
 	SKDownloadStateActive,
 	SKDownloadStatePaused,
 	SKDownloadStateFinished,
 	SKDownloadStateFailed,
 	SKDownloadStateCancelled
}
SKDownloadState;

(In traditional C, enums were defined to be of type 'int' but GCC has
supported other ways of extending that behavior.)

This particular extension is recognized by Apple's version of CLANG
but doesn't seem to be recognized by the version of GCC that Apple
still distributes (or by the version of GCC on which CCL's FFI translator
is based.)

I haven't looked further than this and don't know what would ve involved
in supporting this.

> On Apr 11, 2013, at 11:38 AM, Gary Byers <gb at clozure.com> wrote:
>
>>
>>
>> On Thu, 11 Apr 2013, Michael Minerva wrote:
>>
>>> I agree with both of your enthusiam and think it would be wonderful to have
>>> more apps in the app store. ?As far as I know there are already two CCL apps
>>> in the store but none of have been added since the era of sandboxing begun.
>>> ?
>>>
>>>      I haven't had to link a new framework yet, but as I was perusing
>>>      the CCL documentation the other day looking for something else I
>>>      noticed section "14.7. Loading Frameworks" which references
>>>      section "13.5.2. Creating new interface directories". I'm not
>>>      sure if those are sufficient, but they should provide a good
>>>      start for you I think.
>>> I was able to load the framework using a call open-shared-library:
>>> (open-shared-library
>>> "/System/Library/Frameworks/StoreKit.framework/StoreKit")
>>> but now I am having trouble actually referencing any of the classes from the
>>> framework. ?
>>
>> This is why the documentation tells you (and Paul reminded you) to use OBJC:LOAD-FRAMEWORK.
>
>



More information about the Openmcl-devel mailing list