首页 文章 精选 留言 我的

精选列表

搜索[ipa],共236篇文章
优秀的个人博客,低调大师

AppStore ipa (苹果内购)笔记

文章目录[点击展开](?)[+] 内购示意图 准备条件 itunes store设置 注意事项 创建带价格的商品 沙箱测试 添加可购买商品 提交Apple审核 购买模式 文献资料 内购示意图 准备条件 苹果的开发者证书,已经为应用启用App内购,并在Xcode更新配置文件 itunes store设置 itunes中创建App及其它设置 参考:iOS应用程序内购/内付费(一) http://blog.csdn.net/shenjie12345678/article/details/40978977 注意事项 创建带价格的商品 1、一定要同意协议、银行、税务的协议,才能创建有价格的商品,且协议的状态一定要是已经生效 ,一般一两小时内就可以生效 参考:iOS App提交指南-协议、税务和银行业务 沙箱测试 2、启用沙箱测试,添加沙箱帐号[PS貌似只能通过添加一个新的Apple ID] 添加可购买商品 3、前面的协议同意之后才能创建有价格的商品,比如之前我一直只能创建免费商品 提交Apple审核 说明:不用等待苹果审核完成,也可以进行内购测试,但需要完成前面的1,2,3步。 购买模式 单机购买模式和服务器验证类型 文献资料 iOS内购实现及测试Check List 详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!【2012-12-11日更新获取"产品付费数量等于0的问题"】 https://developer.apple.com/library/ios/navigation/ 本文转自赵青青博客园博客,原文链接:http://www.cnblogs.com/zhaoqingqing/p/4589200.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

[IPA]IOS In App Purchase(内购)验证

文章目录[点击展开](?)[+] 二次验证 四个验证数据 产品标识符 product Identifier 交易状态 state Receipt 交易标识符 transaction Identifier 验证服务器地址 验证购买信息 苹果返回状态码 单机服务器模式 单机模式 服务器模式 两种模式比较 国内连接苹果服务器的稳定性 参考资料 参考我之前的笔记 苹果内购笔记,在客户端向苹果购买成功之后,我们需要进行二次验证。 二次验证 IOS在沙箱环境下购买成功之后,向苹果进行二次验证,确认用户是否购买成功。 当应用向Apple服务器请求购买,成功之后,Apple会返回以下四个数据给应用 四个验证数据 productIdentifier:cosmosbox.strikehero.gems60 state: Purchased receipt: ewoJInNpZ25hdHVyZSIgPSAiQXF1M3JiR1grbmJMeGVvZS9VZGlMa3dQWVlBdkQr VTE1L1NRL2Y0cGZlaFlBOWFaVGhSbTNMVXpHc25TUGd3aVBoMmsxSTVFaVpweGp6 aEZsS0JDVXBPeHEyWFk5N1lHUGUzMFo0cThMRllDZWJPeHFzWlJaUU01N2xtZFo0 bDN6eHNnaWpGemFiYkRXLzM4cm1EeXFTT0FSYzRES3dXTGFpc2EzYUY5d2JwbUFB QURWekNDQTFNd2dnSTdvQU1DQVFJQ0NCdXA0K1BBaG0vTE1BMEdDU3FHU0liM0RR RUJCUVVBTUg4eEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUtEQXBCY0hCc1pT //receipt省略几十行 transactionIdentifier: 1000000160385706 1.产品标识符: product Identifier 在itunes store应用内定义的产品ID,例如com.公司名.产品名.道具名(com.xxxx.video.vip) 2.交易状态: state Purchased 购买成功 Restored 恢复购买 Failed 失败 Deferred 等待确认,儿童模式需要询问家长同意 3. Receipt 很长的一段字符串,大概49行,作为二次验证的重要依据 4. 交易标识符: transaction Identifier 我们需要把Receipt发送給苹果的苹果的服务器验证,用户的购买信息是否真实 验证服务器地址 在测试服务器中,发送receipt苹果的测试服务器( https://sandbox.itunes.apple.com/verifyReceipt )验证 在正式服务器中(已上线Appstore),发送receipt到苹果的正式服务器( https://buy.itunes.apple.com/verifyReceipt )验证 当我们把应用提交给苹果审核时,苹果也是在sandbox环境购买,其产生的购买凭证,也只能连接苹果的测试验证服务器,所以我们可以先发到苹果的正式服务器验证,如果苹果返回21007,则再一次连接测试服务器进行验证。 验证购买信息 以下是把客户端的购买信息发送到苹果测试服务器进行确认,苹果返回的数据: ISN: url: https://sandbox.itunes.apple.com/verifyReceipt ORIGINAL JSON: { "receipt": { "original_purchase_date_pst":"2015-06-22 20:56:34 America/Los_Angeles", //购买时间,太平洋标准时间 "purchase_date_ms":"1435031794826", //购买时间毫秒 "unique_identifier":"5bcc5503dbcc886d10d09bef079dc9ab08ac11bb",//唯一标识符 "original_transaction_id":"1000000160390314", //原始交易ID "bvrs":"1.0",//iPhone程序的版本号 "transaction_id":"1000000160390314", //交易的标识 "quantity":"1", //购买商品的数量 "unique_vendor_identifier":"AEEC55C0-FA41-426A-B9FC-324128342652", //开发商交易ID "item_id":"1008526677",//App Store用来标识程序的字符串 "product_id":"cosmosbox.strikehero.gems60",//商品的标识 "purchase_date":"2015-06-23 03:56:34 Etc/GMT",//购买时间 "original_purchase_date":"2015-06-23 03:56:34 Etc/GMT", //原始购买时间 "purchase_date_pst":"2015-06-22 20:56:34 America/Los_Angeles",//太平洋标准时间 "bid":"com.cosmosbox.StrikeHero",//iPhone程序的bundle标识 "original_purchase_date_ms":"1435031794826"//毫秒 }, "status":0 //状态码,0为成功 } 苹果返回状态码 苹果返回状态码的解释:https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html Status 描述 21000 App Store不能读取你提供的JSON对象 21002 receipt-data域的数据有问题 21003 receipt无法通过验证 21004 提供的shared secret不匹配你账号中的shared secret 21005 receipt服务器当前不可用 21006 receipt合法,但是订阅已过期。服务器接收到这个状态码时,receipt数据仍然会解码并一起发送 21007 receipt是Sandbox receipt,但却发送至生产系统的验证服务 21008 receipt是生产receipt,但却发送至Sandbox环境的验证服务 更详细的请参考:http://www.2cto.com/kf/201504/389224.html 最好在客户端存一个数据库,跟踪订单的状态,防止用户订单在某个环节出现问题时无法寻找到订单进行二次处理。 去AppStore请求数据时有时候会出现错误,你可以iTunes connect里的connect us去给他们写邮件反馈问题。但是大部分时间你等等就能解决了,对就是什么也不做等着。也许那一天他就好了。 单机/服务器模式 IOS 应用内支付(内购 /In App Purchase)有两种模式: 1) 单机模式 2) 服务器模式 单机模式 单机模式的流程可以简单的总结为以下几步: 1) app从app store 获取产品信息 2) 用户选择需要购买的产品 3) app发送支付请求到app store 4) app store 处理支付请求,并返回transaction信息 5) app将购买的内容展示给用户 服务器模式 服务器模式的主要流程如下所示: 1) app从服务器获取产品标识列表 2) app从app store 获取产品信息 3) 用户选择需要购买的产品 4) app 发送 支付请求到app store 5) app store 处理支付请求,返回transaction信息 6) app 将transaction receipt 发送到服务器 7) 服务器收到收据后发送到app stroe验证收据的有效性 8) app store 返回收据的验证结果 9) 根据app store 返回的结果决定用户是否购买成功 两种模式比较 上述两种模式的不同之处主要在于:交易的收据验证,内建模式没有专门去验证交易收据,而服务器模式会使用独立的服务器去验证交易收据。内建模式简单快捷,但容易被破解。服务器模式流程相对复杂,但相对安全。 国内连接苹果服务器的稳定性 开发之初,苹果方就很负责的告知:我们的服务器不稳定。真正开发之后,发现苹果方果然是很负责的,不仅是不稳定,而且足够慢。app store server验证一个收据需要3-6s时间。 1.用户能否忍受3-6s的等待时间 2.如果app store server 宕机,如何确保成功付费的用户能够得到正常服务。 对于第一个问题,我们有理由相信用户完全无法忍受,所以采用异步验证的方式,服务器收到客户端的请求后,就将请求放到MCQ中去处理。 对于第二个问题,由于苹果人员很负责人的告知:我们的服务器不稳定,所以不排除收据验证超时的情况。对于验证超时的收据,保存到数据库中并标记为验证超时,定时任务每隔一定的时间去app store验证,确保能够获取收据的验证结果。

优秀的个人博客,低调大师

iOS打包ipa给客户测试流程

IOS项目开发的过程中经常会用到一个测试的问题,特别是外包的项目,客户拿了那么多钱,看不到产品时时的进度说不过去,而且UI和功能是否和符合用户需求这个很重要,需要客户的认同。 所以就需要时时给开发中的产品打包,让客户去检查是否符合需求。 接入正题: 先讲一下大概的思路,具体的步骤往下看。 1.往开发者账号里面添加测试设备 2.创建证书和配置文件(配置文件选设备和证书的时候建议都选) 3.打包 4.安装到客户的手机 具体细节: 有些外包是用外包的开发者账号,有的是用人家公司的开发者账号,其实都无所谓了。只要打包时候的开发者账号和你添加设备的开发者账号一样就行了。 1.进入开发者中心,找到证书配置文件那一页 2.创见证书(并下载到电脑上,双击添加到登录里面) 3.创建APPID 4.添加设备(主要就是UDID,要把所有测试设备的UDID都添加进来,不然将来打包安装不上,获取UDID参见:http://www.cnblogs.com/BK-12345/p/5996372.html) 5.创建配置文件(选择证书的时候建议有多少选多少,设备也一样全部选中) 6.接着就是将创建好的配置文件下载到电脑上,双击配置文件,在Xcode中选择刚才创建的配置文件即可。 7.在选择模拟器的地方调成Generic iOS Device。 8.Produc->Archive 9.Export(和正常的一样)->会有四个选项,选最后一个Save for Development Deloyment,然后next,选择刚才导入的证书,next,next ,next,Export选个地方保存一下就可以了。 10.就是将打好包安装到手机上,参考一下链接:http://www.cnblogs.com/BK-12345/p/6000124.html

优秀的个人博客,低调大师

IPA提交APPStore问题记录(二)iOS10

1、上传安装包后提示:此构建无效 We have discovered one or more issues with your recent delivery for "米饭公社". To process your delivery, the following issues must be corrected: This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data. This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data. 解决: 在Info.plist文件中添加相应权限, <key>NSCameraUsageDescription</key> <string>cameraDesciption</string> <key>NSPhotoLibraryUsageDescription</key> <string>photoLibraryDesciption</string>

优秀的个人博客,低调大师

解决App Store上传ipa卡在Authenticating with App Store的问题

Apple在最新发布的XCode 11中移除了使用已久的Application Loader,并提供了新的Transporter代替Application Loader。但是在最近上传应用的时候一直卡在Authenticating with App Store这一步,Transporter、XCode、命令行都试遍了还是不行。网上找了一番之后发现以前的Application Loader也存在类似的情况,大致原因是使用的jar组件太旧了。 网上提供的方法都是针对Application Loader的,并没有找到针对Transporter对应的解决方法,好在方法是相通的。 先通过Mac App Store下载Transporter应用。 打开Terminal并执行以下命令: sudo /Applications/Transporter.app/Contents/itms/bin/iTMSTransporter 点击回车之后会要求输入登录密码(输入时密码不可见)。接下来开始更新Transporter组件,窗口上会显示日志。 更新过程会持续一段时间。如果看到下图显示的界面说明已经更新完成了。 重启电脑,重新上传就可以了,至少我已经OK了,如果不行的话就多试几次,再不行的话就找个能上传的人帮忙吧。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册