2012-10-26 59 views
1

我在应用内购买中苦苦挣扎。每当我导入StoreKit时,都会收到此错误。
我一直在这没有运气的日子..有人帮忙?Apple Mach-O链接器错误(IAP)

头文件:

#import <StoreKit/StoreKit.h>  

#define kInAppPurchaseManagerProductsFetchedNotification   @"kInAppPurchaseManagerProductsFetchedNotification" 

@interface InAppPurchaseManager : NSObject <SKProductsRequestDelegate> 
{ 
    SKProduct *proUpgradeProduct; 
    SKProductsRequest *productsRequest; 
} 
@end 

实现文件:

#import "IAPManager.h" 

@implementation InAppPurchaseManager 

- (void)requestProUpgradeProductData 
{ 
    NSSet *productIdentifiers = [NSSet 
     setWithObject:@"com.runmonster.runmonsterfree.upgradetopro" ]; 
    productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers]; 
    productsRequest.delegate = self; 
    [productsRequest start]; 
} 

#pragma mark - 
#pragma mark SKProductsRequestDelegate methods 

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response 
{ 
    NSArray *products = response.products; 
    proUpgradeProduct = [products count] == 1 ? [[products firstObject] retain] : nil; 
    if (proUpgradeProduct) 
    { 
     NSLog(@"Product title: %@" , proUpgradeProduct.localizedTitle); 
     NSLog(@"Product description: %@" , proUpgradeProduct.localizedDescription); 
     NSLog(@"Product price: %@" , proUpgradeProduct.price); 
     NSLog(@"Product id: %@" , proUpgradeProduct.productIdentifier); 
    } 

    for (NSString *invalidProductId in response.invalidProductIdentifiers) 
    { 
     NSLog(@"Invalid product id: %@" , invalidProductId); 
    } 


    [productsRequest release]; 

    [[NSNotificationCenter defaultCenter] postNotificationName:kInAppPurchaseManagerProductsFetchedNotification object:self userInfo:nil]; 
} 
@end 

错误这就是我的命:

Undefined symbols for architecture armv7: 
     "_OBJC_CLASS_$_SKProductsRequest", referenced from: 
      objc-class-ref in IAPManager.o 
    ld: symbol(s) not found for architecture armv7 
    collect2: ld returned 1 exit status 

"_OBJC_CLASS_$_SKProductsRequest", referenced from:  
Objc-class-ref in IAPManager.o  
Symbol(s) not found for architecture armv7  
Collect2: Id returned 1 exit status 

回答

6

因为你已经添加了 “头”,而不是二进制。将StoreKitFramework放入带库的buildPhase-> Link二进制文件中。神奇的是,这将工作;)

+0

就这么简单!非常感谢! – iamruskie

3

你忘了添加StoreKit.framework到您链接的库。

This link显示了如何添加它。