// 在AppDelegate.m文件中\n\n#import <StoreKit/StoreKit.h>\n\n@interface AppDelegate () \n\n@end\n\n@implementation AppDelegate\n\n- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n // 注册观察者\n [[SKPaymentQueue defaultQueue] addTransactionObserver:self];\n \n // 其他初始化代码\n \n return YES;\n}\n\n- (void)purchaseSubscription {\n if ([SKPaymentQueue canMakePayments]) {\n // 发起订阅请求\n SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:@"your_product_id"]];\n request.delegate = self;\n [request start];\n } else {\n // 用户不允许进行支付\n }\n}\n\n#pragma mark - SKProductsRequestDelegate\n\n- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {\n NSArray *products = response.products;\n if (products.count > 0) {\n SKProduct *product = products.firstObject;\n \n // 创建支付请求\n SKPayment *payment = [SKPayment paymentWithProduct:product];\n \n // 添加支付请求到支付队列\n [[SKPaymentQueue defaultQueue] addPayment:payment];\n } else {\n // 未找到订阅产品\n }\n}\n\n#pragma mark - SKPaymentTransactionObserver\n\n- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray<SKPaymentTransaction *> *)transactions {\n for (SKPaymentTransaction *transaction in transactions) {\n switch (transaction.transactionState) {\n case SKPaymentTransactionStatePurchased:\n // 订阅成功\n [self completeTransaction:transaction];\n break;\n case SKPaymentTransactionStateFailed:\n // 订阅失败\n [self failedTransaction:transaction];\n break;\n case SKPaymentTransactionStateRestored:\n // 已经购买过订阅,进行恢复处理\n [self restoreTransaction:transaction];\n break;\n case SKPaymentTransactionStateDeferred:\n // 交易延迟处理\n break;\n default:\n break;\n }\n }\n}\n\n- (void)completeTransaction:(SKPaymentTransaction *)transaction {\n // 完成交易,提供订阅服务\n [[SKPaymentQueue defaultQueue] finishTransaction:transaction];\n}\n\n- (void)failedTransaction:(SKPaymentTransaction *)transaction {\n if (transaction.error.code != SKErrorPaymentCancelled) {\n // 订阅失败,显示错误信息\n }\n \n // 取消交易\n [[SKPaymentQueue defaultQueue] finishTransaction:transaction];\n}\n\n- (void)restoreTransaction:(SKPaymentTransaction *)transaction {\n // 恢复订阅,提供订阅服务\n [[SKPaymentQueue defaultQueue] finishTransaction:transaction];\n}\n\n@end\n\n以上是一个简单的自动续费订阅的demo代码,其中包括了订阅请求、支付请求、交易处理等相关逻辑。你可以根据自己的需求进行修改和扩展。