2012-10-26 60 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顯示瞭如何添加它。