如何关闭 iapfree源,iap carcker,买游戏道具的时候会出现无法完成购买,请联系itu

如何禁止iPhone在游戏/软件内购买道具 | 苹果教程网
我的图书馆
如何禁止iPhone在游戏/软件内购买道具 | 苹果教程网
应用内购买(In-App Purchase,简称 IAP)已经不是什么新鲜的概念了,现在越来越多的 App 已经加入了 IAP 的行列。像我们熟悉的真实赛车系列,从开始完全转型为 IAP 模式,也就是说你可以不花一分钱就下载到这款赛车大作,但是想玩的痛快?还是得乖乖花钱。
当然我们在这里并不是说 IAP 模式不好,恰恰相反,对于那些挂羊头卖狗肉的应用,你不用再担心花钱买了货不对板的东西。毕竟你可以免费下载和体验游戏,然后再决定花钱在这个 App 上是否值得。
当然,今天要探讨的如何禁止iPhone、iPad 在 App 内购买道具的问题,主要是为了解决当你把手机借给别人(尤其是熊孩子)的时候可能会不经意产生的费用问题。一旦禁止了道具内购,你就不用担心别人在玩你 iPhone 上的游戏时不小心给你买了一个“ 99 美元的超级道具套餐”了。
那么具体的操作方法如何呢?
如何关闭 IAP
首先,你需要打开 iOS 自带的访问限制功能。
依次点击主屏幕上的【设置】-【通用】-【访问限制】,若你之前没有设置过,则需要先设置【访问限制】的密码,这个密码和你设定的锁屏密码并不是一回事。
设置完【访问限制】的密码后,向下滑动找到【应用程序内购买】一项,关闭开关即可。详见下图。
关注我们,及时获得最新教程、资讯和精彩推荐!
分享本文:
这些文章你可能也感兴趣
TA的最新馆藏
喜欢该文的人也喜欢posts - 30,&
comments - 11,&
trackbacks - 0
  最近正在做一个iphone游戏内购买的项目,所以了解了一些In App Purchase相关的技术。
  根据Apple官方文档,In App Purchase(IAP)有两种模型:内建模型(Built-in Model)和服务器模型(Server Model)。由于我做的项目需要用自己的服务器管理虚拟货币,因此自然就选择了服务器模型。
  由于IAP的整个流程比较复杂,一篇博客的篇幅无法完全介绍清楚,所以我将用几篇博客的篇幅来做介绍。在这篇博客里就仅仅介绍IAP购买完成后如何通过将客户端收到的transactionReceipt发送到我自己的服务器(我用的Google App Engine,Python环境),再由我的服务器验证用户的购买行为是否已完成。
  如果想要全面了解IAP流程的,请移步至apple文档:
  以下是验证receipt的详细流程:
  IAP在购买流程中,会给每一次购买行为创建一个SKPaymentTransaction,这个transaction会记录用户购买行为的状态,如正在购买(SKPaymentTransactionStatePurchasing),已购买(SKPaymentTransactionStatePurchased),购买失败(SKPaymentTransactionStateFailed)等。而当transaction状态是 SKPaymentTransactionStatePurchased的时候,客户端就能得到一个transaction.transactionReceipt。我的目的就是要从客户端发送这个receipt,然后服务器收到receipt后,通过POST方式发送receipt到app store,app store会验证receipt并返回验证结果,服务器收到结果后再判断验证是否成功。
  第一步:发送receipt
  首先在SKPaymentTransaction的状态改变的时候,会调用一个delegate:- (void)paymentQueue:(SKPaymentQueue&*)queue updatedTransactions:(NSArray&*)。我可以通过transactions数组得到里面的每一个transaction。再判断它的transactionState,如果是等于SKPaymentTransactionStatePurchased,就调用另外一个函数:completeTransaction,这个函数的具体实现:
- (void)completeTransaction:(SKPaymentTransaction *)transaction {
// truely purchase IAP product for user
NSString* jsonObjectString = [self encode:(uint8_t *)transaction.transactionReceipt.bytes
length:transaction.transactionReceipt.length];
NSString* varStr = [[NSString alloc] initWithFormat:
@"your_url?receipt=%@",
jsonObjectString];
VMRequest* request = [[VMRequest alloc] initWithVariableStr:varStr
requestType:PURCHASED_IAP_PRODUCT
delegate:self];
[[VMRequestQueue sharedQueue] addRequest:request
toQueue:[VMRequestQueue sharedQueue].requestSetInfoQueue];
[mIAPRequestDict setObject:request forKey:transaction.transactionIdentifier];
[varStr release];
[request release];}
  这个函数首先是执行了一段encode操作。这段操作是对transactionReceipt做了一次base64的编码(根据apple文档的要求)。编码的代码是我从网上找到的,代码如下:
- (NSString *)encode:(const uint8_t *)input length:(NSInteger)length {
static char table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/=";
NSMutableData *data = [NSMutableData dataWithLength:((length + 2) / 3) * 4];
uint8_t *output = (uint8_t *)data.mutableB
for (NSInteger i = 0; i & i += 3) {
NSInteger value = 0;
for (NSInteger j = j & (i + 3); j++) {
value &&= 8;
if (j & length) {
value |= (0xFF & input[j]);
NSInteger index = (i / 3) * 4;
output[index + 0] =
table[(value && 18) & 0x3F];
output[index + 1] =
table[(value && 12) & 0x3F];
output[index + 2] = (i + 1) & length ? table[(value && 6)
& 0x3F] : '=';
output[index + 3] = (i + 2) & length ? table[(value && 0)
& 0x3F] : '=';
return [[[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding] autorelease];}
原文链接:
  encode完成后,就开始将编码过的receipt发送到我的服务器。这一段很简单,只要先创建一段url格式的字符串,再创建url,然后在初始化request的时候添加这个url,最后创建connection就行了。其中VMRequest是我写的一个继承自NSMutableURLRequest的类,这里可以直接用NSMutableURLRequest代替。需要注意的是这里的request最好使用POST方式,因为GET方式很可能因为发送的receipt数据量过大而导致数据丢失。VMRequestQueue是VMRequest的队列,这个队列会自动按顺序执行队列中的request,这部分可以改成直接创建NSURLConnection。总之,只要创建好需要访问的URL,再用POST方式发送到自己的服务器,这第一步就完成了。
  第二步:向app store验证
  这一步中所做的事全部是在服务器端完成。我的服务器使用的是Google App Engine(GAE)的Python环境。
  首先,服务器收到receipt。因为这段receipt是已经经过编码的,所以不需要再度编码,唯一要做的就是生成一个json格式的数据,发送到app store并获取返回的数据。具体代码如下:
import httplib&# have to import simplejson because google app engine uses python 2.5. When it upgrades, can import json directlyimport simplejson as jsonjsonStr = json.dumps({"receipt-data": receipt})#connect = httplib.HTTPSConnection("buy.itunes.apple.com")# sandboxconnect = httplib.HTTPSConnection("sandbox.itunes.apple.com")headers = {"Content-type": "application/json"}connect.request("POST", "/verifyReceipt", jsonStr)result = connect.getresponse()data = result.read()connect.close()decodedJson = json.loads(data)status = decodedJson[u'status']if status == 0:
return decodedJsonelse:
return False
  simplejson是python2.5支持的一个json库,使用simplejson的原因是GAE只支持到python2.5。如果GAE版本更新到2.6及以上了,那就可以直接import json。
  json对象的格式有点类似于一个dictionary,一个key对应于一个value。
  json.dumps是将一个json对象序列化成一段字符串,相对的json.loads就是将一段字符串反序列化成一个json对象。
  httplib是一个python自带的库,用来做http连接。根据apple文档,代码中的request类型必须是POST,这一点需要注意。
  最后,在读取json对象的数据的时候,必须要在key的前面加&u&。
  结果:服务器收到解码的receipt
  服务器收到的解码的receipt格式是:
  {u'status': &&status&, u'receipt': {u'product_id': u'&product_id&', u'original_transaction_id': u'&&original_transaction_id&', u'bid': u'&bid&', u'original_purchase_date': u'&&original_purchase_date&', u'bvrs': u'&&bvrs&', u'purchase_date': u'&&purchase_date&', u'item_id': u'&item_id&', u'transaction_id': u'&&transaction_id&', u'quantity': u'&&quantity&'}}
  这其中,status就表示receipt是否通过验证;receipt后又是一个json对象,里面product_id就是用户购买的IAP产品的id。
最后一步,判断status是否等于0。如果等于0,就执行用户购买后应该实现的操作,最终再将结果反映到客户端上。
阅读(...) 评论()iapfree怎么用,iapfree闪退解决方法_百度知道
iapfree怎么用,iapfree闪退解决方法
我有更好的答案
这是游戏开发商为了避免内购破解所设的陷阱,除非等待iAPFree官方出反破解补丁,否则没有解决办法,在需要内购的商店中就可以免费购买到原本需要花钱才能购买的东西了,使得你的设备可以上网。点击Cydia,选择软件源,点击右边的编辑按钮,再点击左边的添加按钮,请安心使用:当你桌面出现iAPFree这个图标后,启动它,选择插件管理:退出iAPFree,将会自动重启springboard,将免费内购核心功能插件安装,然后将启动已安装插件设为开启状态,进入下载安装更多插件。然后进入游戏中.1下载安装,然后家里有wifi环境.weiphone.com’这个源,等待源完全添加完毕后。  3,或者是将对应游戏的内购破解补丁安装上去,将启用已安装插件设为开启状态,然后选择‘下载安装更多插件’第一步:首先你的苹果设备必须越狱,将免费内购核心功能插件下载安装上去,选择搜索,输入iAPFree,搜索出来的iAPFree 3,内核破解工具iAPFree3.0.1下载安装完成。  2.iAPFree闪退怎么解决?  答:iAPFree将有可能导致游戏闪退,解决方法就是将iAPFree在Cydia卸载。  第三步。iAPFree闪退的问题在3.0.1版本中已经得到解决.iAPFree怎么用?  答:启动iAPFree程序,选择插件管理选项,然后添加上‘apt.0,然后重装那个游戏,即可正常进行。  第二步
你怎么还在iapfree,人家都改名好久了。。尝试
iapcrazy ,额,。。估计在等个一个月就好了。,但是目前ios9 的都不支持。
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。iphone 在游戏内购买道具的时候弹出这句话是什么意思?您的设备不支持IAP_百度知道
iphone 在游戏内购买道具的时候弹出这句话是什么意思?您的设备不支持IAP
我有更好的答案
您的设备不支持IAP(应用内付费)
通用——&访问限制——&App内购买项目打开
你的设备不支持iap支付怎么解决
发个图来看看。
其他1条回答
为您推荐:
其他类似问题
iap的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。出错啦 - PMCAFF产品经理社区 中国第一产品经理人气组织::专注于研究互联网产品
PMCAFF目前不支持IE浏览器, 请用其它的浏览器打开PMCAFF, 如果是双核浏览器, 请选择极速模式}

我要回帖

更多关于 iapfree源 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信