
- 软件语言
- Swift,Objective-C、C、C++
- 软件大小
- 1.2 GB
- 开发商
- Apple - 苹果
- 软件授权
- 仅苹果移动设备使用
- 更新时间
- 2020年7月16日
- 中文名
- 苹果移动设备操作系统
- 最新正式版
- iOS 13.6(17G68)
- 全 称
- iPhone Operation System
- 最新测试版
- iOS 14.0 Beta3(18A5332f)
- 外文名
- iOS
-
iOS 开发之 In-App Purchase 对接教程 (一)
2015-01-15 15:25:26很久之前就想出一篇IOS内付费的教程,但是一查网上的教程实在太多了,有的写得真的蛮不错的......进入苹果的ItunesConnection(https://itunesconnect.apple.com)点击左上角的加号新建一个App应用..很久之前就想出一篇IOS内付费的教程,但是一查网上的教程实在太多了,有的写得真的蛮不错的,就心想算了,于是就保存在草稿箱了。至于为什么写完它呢!真是说来话长,最近公司有个项目经理跑来问我有关苹果内付费相关的细节,跟他聊了半天,从项目对接苹果官方支付接口聊到了如何查看App收益,最后终于使他有了一些眉目,但是悲催的是还要我继续去跟他们项目的程序员讲解(真是疯了),所以我就决定给他们项目写一个内购的文档,所以我顺便把这篇博客完成吧!
首先进入苹果的ItunesConnection(https://itunesconnect.apple.com)点击左上角的加号新建一个App应用,点击后该网站会弹出一个信息编辑框,大家只要将上面的信息填充完毕点击save即可在苹果的app平台上拥有一个属于自己的App。
在套装ID的上,需要提前为该App申请一个AppID以及BundleID,只要是申请成功了就会在选择列表中显示出来。如果有人有疑问如何申请,请看我之前那一篇推送的博客,里面有详细的步骤。附上链接点击打开链接。
这里顺便多说一句这个ItunesConnect是用来干嘛的,它是苹果公司给个人或企业提供管理自己App的一个平台。在这个平台上开发者可以新建,删除和管理自己的App应用,开发者可以根据需求对App应用进行上架与下架,编辑App信息,生成测试app所需的信息,例如账号,邀请码等,还有就是我们今天要讲的内付费功能。当然啦,他的功能可不止我讲的这些,我大致说一下这个平台的作用,如果你经常跟它打交道的话就会慢慢熟悉了。
接下来,我就来为大家演示一下如何添加付费道具,首先打开iTunesConnect,显示如下页面:
选择红圈所圈起来的选项,然后将里面的相关信息补充完毕,如果缺少这一步,内购功能是不会成功的。
假如你已经完成了上述相关银行账户的设置,就点击你的App,选择上面标题栏中的"App 内购买项目"
随后点击左上角的 "create new"选项,如下图所示,进入到下一个界面:
这个界面是让你选择消费道具的种类,现在改版的网站是有简体中文翻译的,所以不像以前打开一看都不知道选哪一个,甚至都不知道每个代表的什么意思(比如我第一次遇到的时候,在领导面前真是囧)。它的种类分为如下几种:
一般对项目来说大多数都是选择“消耗型项目”这个种类,比如游戏中购买金币,宝石balabala~之类的,选中之后就会到这个界面中来:
在上图所示的编辑框中输入,商品名称,产品ID以及价格等级,在这边说明一下:
1.商品名称根据你的消费道具的实际意义来说明,比如“100颗宝石”,“100金币”等。
2.产品ID是比较重要的,由项目自定义,只要唯一即可,像我一般都是用App的bundleID加一个后缀来表示,这样既跟项目关联又具有唯一性。
3.价格等级的话“查看价格表”中有对应的说明,可以对照着表中每个国家的货币价格与等级来选择。
我们继续,在这个网页的接下来部分如图所示:
选择添加语言选项,弹出一个编辑页面:
点击save保存,则会在界面上显示成如下:
最后一步就是点击“选取文件”提交一张苹果它指定像素(640*920)的商品图片,当他上传完毕后点击“save”按钮,我们这第二部分就大工告成了。提交的商品最后会在内购的页面上显示为如图:
这个图是我在已经发布的app上面截取的,添加了3个商品,已经是通过的的状态了(显示绿色),当您刚提交的时候,因为通过苹果的审查需要一段时间所以会显示黄色的等待状态,所以不必担心是不是商品编辑错了。如图:
这部分,我主要给大家演示一下,如何申请测试账号,利用苹果的沙盒测试环境来模拟AppStore的购买流程。
在ItunesConnect中选择“用户和职能”选项~
随后在左上角的选项中选择沙盒测试者,点击左上角的加号图标增加一位测试者,如图:
编辑好相应的内容,点击保存,就创建了一个测试账号,是不是很简单啊!当然这个账号如果你忘记了密码可以重新生成一个,无关紧要。
顺带多句嘴,不要在正式的appstore上面用沙盒测试的账号来登录,千万要牢记在心,此账号只用于测试环境下~
接下来就是代码部分啦~
1.首先在项目工程中加入“storekit.framework”,加入头文件#import <StoreKit/StoreKit.h>
2.在.h文件中加入“SKPaymentTransactionObserver,SKProductsRequestDelegate”监听机制
下面贴上内购的核心代码,就几个函数,我在这边就不在做更多详细的解释了,各位看官可以运行跑一下就一目了然了。
.h文件
// // PaymentViewController.h // IAPPayTest // // Created by silicon on 14-10-28. // Copyright (c) 2014年 silicon. All rights reserved. // #import <UIKit/UIKit.h> #import <StoreKit/StoreKit.h> @interface PaymentViewController : UIViewController<SKPaymentTransactionObserver,SKProductsRequestDelegate> @property (strong, nonatomic) IBOutlet UITextField *productID; @property (strong, nonatomic) IBOutlet UIButton *purchase; - (IBAction)purchaseFunc:(id)sender; @end
.m文件
// // PaymentViewController.m // IAPPayTest // // Created by silicon on 14-10-28. // Copyright (c) 2014年 silicon. All rights reserved. // #import "PaymentViewController.h" @interface PaymentViewController () @end @implementation PaymentViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. [[SKPaymentQueue defaultQueue] addTransactionObserver:self]; self.productID.text = @"com.games.ztyxs.product_point.1"; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)purchaseFunc:(id)sender { NSString *product = self.productID.text; if([SKPaymentQueue canMakePayments]){ [self requestProductData:product]; }else{ NSLog(@"不允许程序内付费"); } } //请求商品 - (void)requestProductData:(NSString *)type{ NSLog(@"-------------请求对应的产品信息----------------"); NSArray *product = [[NSArray alloc] initWithObjects:type, nil]; NSSet *nsset = [NSSet setWithArray:product]; SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:nsset]; request.delegate = self; [request start]; } //收到产品返回信息 - (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{ NSLog(@"--------------收到产品反馈消息---------------------"); NSArray *product = response.products; if([product count] == 0){ NSLog(@"--------------没有商品------------------"); return; } NSLog(@"productID:%@", response.invalidProductIdentifiers); NSLog(@"产品付费数量:%d",[product count]); SKProduct *p = nil; for (SKProduct *pro in product) { NSLog(@"%@", [pro description]); NSLog(@"%@", [pro localizedTitle]); NSLog(@"%@", [pro localizedDescription]); NSLog(@"%@", [pro price]); NSLog(@"%@", [pro productIdentifier]); if([pro.productIdentifier isEqualToString:self.productID.text]){ p = pro; } } SKPayment *payment = [SKPayment paymentWithProduct:p]; NSLog(@"发送购买请求"); [[SKPaymentQueue defaultQueue] addPayment:payment]; } //请求失败 - (void)request:(SKRequest *)request didFailWithError:(NSError *)error{ NSLog(@"------------------错误-----------------:%@", error); } - (void)requestDidFinish:(SKRequest *)request{ NSLog(@"------------反馈信息结束-----------------"); } //监听购买结果 - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transaction{ for(SKPaymentTransaction *tran in transaction){ switch (tran.transactionState) { case SKPaymentTransactionStatePurchased: NSLog(@"交易完成"); break; case SKPaymentTransactionStatePurchasing: NSLog(@"商品添加进列表"); break; case SKPaymentTransactionStateRestored: NSLog(@"已经购买过商品"); break; case SKPaymentTransactionStateFailed: NSLog(@"交易失败"); break; default: break; } } } //交易结束 - (void)completeTransaction:(SKPaymentTransaction *)transaction{ NSLog(@"交易结束"); [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; } - (void)dealloc{ [[SKPaymentQueue defaultQueue] removeTransactionObserver:self]; [super dealloc]; } @end
代码就这么多,到这边我们的IOS内购教程就接近尾声了,在测试的时候还有几点因素要注意一下:
1.沙盒环境测试appStore内购流程的时候,请使用没越狱的设备。
2.请务必使用真机来测试,一切以真机为准。
3.项目的Bundle identifier需要与您申请AppID时填写的bundleID一致,不然会无法请求到商品信息。
讲了这么多,附上几张测试截屏给大家展示一下:
请求商品时的打印日志:
交易成功后:
手机截屏:
要求输入AppStore帐密,使用测试生成的即可:
确定购买:
交易完成:
当我们的交易完成后还要去appstore 上面去验证票据信息是否正确,这样我们才可以给玩家发放道具,apple官方文档:
//交易结束 - (void)completeTransaction:(SKPaymentTransaction *)transaction{ NSLog(@"交易结束"); //交易验证 NSURL *recepitURL = [[NSBundle mainBundle] appStoreReceiptURL]; NSData *receipt = [NSData dataWithContentsOfURL:recepitURL]; if(!receipt){ } NSError *error; NSDictionary *requestContents = @{ @"receipt-data": [receipt base64EncodedStringWithOptions:0] }; NSData *requestData = [NSJSONSerialization dataWithJSONObject:requestContents options:0 error:&error]; if (!requestData) { /* ... Handle error ... */ } //In the test environment, use https://sandbox.itunes.apple.com/verifyReceipt //In the real environment, use https://buy.itunes.apple.com/verifyReceipt // Create a POST request with the receipt data. NSURL *storeURL = [NSURL URLWithString:@"https://buy.itunes.apple.com/verifyReceipt"]; NSMutableURLRequest *storeRequest = [NSMutableURLRequest requestWithURL:storeURL]; [storeRequest setHTTPMethod:@"POST"]; [storeRequest setHTTPBody:requestData]; // Make a connection to the iTunes Store on a background queue. NSOperationQueue *queue = [[NSOperationQueue alloc] init]; [NSURLConnection sendAsynchronousRequest:storeRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { if (connectionError) { /* ... Handle error ... */ } else { NSError *error; NSDictionary *jsonResponse = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; if (!jsonResponse) { /* ... Handle error ...*/ } /* ... Send a response back to the device ... */ //Parse the Response } }]; [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; }
好了,所有的内购流程基本上讲完了,原谅我在图片上的涂抹,因为关系到产品的敏感词汇所以希望大家能够不介意。赶这篇博客的时间比较匆忙,如果有童鞋还有什么疑问或者我写的那个地方不对欢迎私信我或者评论,我会在第一时间回复。谢谢~
大家可以关注我的微信公众号与我互动,相关问题也可以直接用公众号联系我:
-
18个 ios 项目源代码
2014-02-27 17:08:3118个 ios 项目源代码 各种布局 控件使用 及扩展视图 自定义UITableViewCell。实现各种样式的表格输入界面、自定义Tab Bar的文字、颜色和图片加箭头、列表个性化列表项、IOS欢迎界面等。 -
iOS8开发技术(Swift版):iOS基础知识
2015-01-14 10:31:27本课程主要介绍了开发iOS app的一些基本情况。例如,需要的硬件和软件条件,如何申请开发者账号,XCode的常用功能介绍。后给出一个iOS App的案例来演示开发App的过程。 -
iOS Bug 太多,苹果终于坐不住了!
2019-11-23 09:10:00开源的 Android 和闭源的 iOS,作为用户的你,更偏向哪一个呢? 整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 毋庸置疑,当前移动设备操作系统市场中,Android 和 iOS 作为两大阵营,在相互竞争的同时不断演进。...开源的 Android 和闭源的 iOS,作为用户的你,更偏向哪一个呢?
整理 | 屠敏
出品 | CSDN(ID:CSDNnews)
毋庸置疑,当前移动设备操作系统市场中,Android 和 iOS 作为两大阵营,在相互竞争的同时不断演进。不过一直以来,开源的 Android 吸引了无数的手机厂商涌入其中,为其生态带来了百花齐放的盛景,但和神秘且闭源的 iOS 系统相比,不少网友仍然表示,「无论是从设计、性能,还是流畅度等方面,总觉得 iOS 系统要比 Android 更胜一筹。」
事实是否真的如此?对此,一些资深果粉则无奈回应,随着时间的推移,iOS 的功能的确在不断完善,但是如今的 iOS 也不再是大家印象中的 iOS 了,它的 Bug 让人崩溃不已。就以当前最新的 iOS 13 为例,自从今年 9 月 19 日正式发布以来,关于该版本闪退、无故重启、相机无法工作等各种吐槽的声音充斥网络。
如今,在连发多个版本更新之后,苹果自己也终于忍不了了。据彭博社的一份报告显示,由于存在漏洞和稳定性问题的 iOS 13 发布之后,苹果计划彻底改革其开发和测试 iOS、macOS、watchOS 和 tvOS 的方式,希望使用新的方法来长期改善每个软件平台的质量。具体的改进将体现到 iOS 14 版本系统中。
iOS 13 的那些坑
苹果之所这么做,想必也是听到了不少网友的声音。
生于两个月前的 iOS 13,新增深色模式、浏览编辑照片的全新方式,以及在隐私与安全等方面做了很多的优化与性能改进。不过,仅在不到一周的时间,苹果就带来了 iOS 13.1 版本,进行了诸多错误修复和改进,也带来了隔空投送、企业设备管理的改进以及电池健康等更全面的功能,对此,不少人更认可 iOS 13.1 才是 iOS 的大版本更新。
不过,在升级之后,据多方网友反映,iOS 13 出现了诸多的 Bug,其中最为严重的无疑是杀后台问题。
据外媒报道,网友 Rogifan 称:“我正在 iPhone 11 Pro 上在线观看视频,暂停了视频以回复短信。我在 iMessage 中呆了不到一分钟。当我返回 YouTube 时,它重新加载了该应用程序,并且丢失了我正在观看的视频。我在 iPad Pro 上也注意到了很多类似的情况,与 iOS 12 相比,应用程序和 Safari 选项卡的重新加载频率更高。”
在国内,也有不少用户表示自己正在使用微信语音通话,刚切换到其它 App,微信进入后台运行情况,不到三秒,微信后台就被系统杀掉。针对这一问题,微信官方团队此前回应,「用户升级到 iOS13.2 版本,可能会导致 App(如微信)在回到手机桌面或锁屏后被系统关闭,下次打开需要重新启动 App。建议先不升级 iOS 版本,或耐心等待问题修复。」
诸如此类的仍有很多。而截止目前,iOS 13 已经接连发布了多个版本更新,这一情况也是前所未有的。
苹果计划改变其开发内部 iOS 版本的方式
基于这种现状,苹果想要做出彻底的改变。据彭博社的一份报告显示:
新的开发过程将帮助早期的内部 iOS 版本对于苹果而言,更加可用且实用。在开发 iOS 14 前,苹果公司的部分开发团队会每天添加一些未经完全测试的功能,而其他团队则会每周进行修复。对此,有知情人士形容道,日常构建版本好比一本食谱,里面有很多厨师在加配料。
这种做法的好处是,苹果公司的开发团队可以在开发系统的新过程中使用“标记”,从而使软件工程师能够以隔离的方式有选择地启用或禁用未完成的或有漏洞的功能,以确保不会破坏整体稳定性。
其实,“标记”这一方法早在其他科技公司(如 Google 和 Microsoft)内部中广泛使用。
此外,据报告透露,苹果还考虑将某些 iOS 14 功能推迟到 2021 年,以确保更加稳定的功能上线。
【End】
热 文 推 荐
☞小米 9 年,雷军开启 AIoT 与 5G 超级互联网时代!
☞他的公司1年令比特币暴跌数次,上榜福布斯捐10亿美元的跨界传奇
点击阅读原文,参加中国开发者现状调查!
你点的每个“在看”,我都认真当成了喜欢
-
本博客精品专栏汇总:【《iOS进阶》、《iOS应用安全与逆向》、《Java开发的深入浅出》】(持续更新)
2020-11-11 14:11:33文章目录前言I、 iOS进阶II、iOS逆向III、 javaIV 、iOS基础 前言 “订阅”一次 ,享受终身服务的快乐 订阅任意专栏,享有全部专栏 I、 iOS进阶 进程间的实时通讯方案: local socket(解决扩展和容器应用的实时...文章目录
前言
- 原文:
- “订阅”一次 ,享受终身服务的快乐
订阅任意专栏,享有全部专栏
I、 iOS进阶
《iOS进阶》专栏入口
《iOS基础》专栏入口
《iOS应用安全与逆向》专栏入口
II、 Java开发的深入浅出
《Java开发的深入浅出》专栏入口
III、理解计算机
《理解计算机》专栏入口
《阅读与写作》专栏入口
see also
其他平台文章
推荐公众号
推荐理由:以下书籍只是他的冰山一角
-
分享一下自己的手机从ios14降级回ios13.5.1,可以保存资料哦
2020-06-27 11:23:30ios14 6月22号凌晨ios14测试版推出后,上午立马给我的小7装上尝尝鲜。 ios14主要的不同点是: App资源库,可以智能分类 小组件,主屏幕和负一屏 画中画,这个实测仅限apple TV可以使用 接下来的一段时间让我深刻...7月4号更新
关于ios14降级后点击图片和网页分享页面出现空白的情况
需要还原系统设置,这样子会重置当前的所有设置(不会清除数据)。
通用—还原—还原所有设置(会重启)
下面是修复问题后的样子
升级ios14测试版
6月22号凌晨ios14测试版推出后,上午立马给我的小7装上尝尝鲜。
想要尝试的请下载描述文件,iphone和ipad通用。
https://www.firedev.xyz/14/iOS_iPadOS_14_AppleSeed_Profile.mobileconfig
注意:使用Safari浏览器(iphone自带的)
ios14主要的不同点是:
- App资源库,可以智能分类
- 小组件,主屏幕和负一屏
- 画中画,这个实测仅限apple TV可以使用
接下来的一段时间让我深刻体会到了什么是测试版,噩梦开始了
- 手机发热(堪比某米)
- 掉电巨快
- 有时莫名的卡顿
- 系统占用内存的变大
最让我受不了的还是前面两点
ios14降回ios13.5.1
昨天晚上实在是受不了,决定倒退系统
准备工作
- itunes(用来备份手机和还原)
- ios13.5.1固件包
1、备份
建议啊,icloud基本备份一下!!!!!!
微信和QQ的聊天记录备份,可以先备份到电脑上,双重保险。
由于 iOS 系统限制,跨版本降级会导致设备数据丢失,理论上从 iOS 14 备份的数据也无法恢复至 iOS 13 系统,你现在用爱思助手或者 iTunes 备份的数据,降回 iOS 13 是无法恢复的。
1.1、首先,在 iOS 14 系统下通过 iTunes 完整备份你的 iPhone 资料。
如果找不到这个页面,请点击这个手机小图标
1.2、备份完成后,打开刚刚备份的文件
windows:C:Users/用户名/AppData/Roaming/Apple Computer/MobileSync/Backup
打开最新的备份文件夹,用记事本/文本编辑工具打开info.plist
(文件被删除了,就不上图了)Ctrl+F 查找Product Version
在这个字段的下一行就是关于IOS备份的版本号了,因为是在ios14下备份的嘛,这个就是14了
<kev>Product Version</kev> <string>14.0</string> <key>Serial Number</key>
把中间的14.0修改为13.5.1,也就是要降级的系统版本。注意啊,这个版本号千万不要写错!!!!!
2、固件包
2.1、在爱思助手官网上下载相应的固件包
3、使用itunes进行降级
打开 iTunes,按住 shift(windows)键,点恢复 iPhone,在弹出窗口中选择下载好的 iOS 13.5.1 系统固件等待刷机完成即可
实测
除了邮件账户需要重新添加,别的数据都在。(也可能是icloud有基本备份)
成功了的小伙伴帮我点一下赞噢
-
iOS13 已越狱 iOS12.4 已越狱
2019-06-20 12:13:39你没看错,iOS13 beta 内测版系统刚出没多久,那么快被攻破了,在2019年6月11日国外越狱大神 iBSparkes 开发者 在推特分享了二张图片,分别为iOS12.4 和 iOS 13 已经越狱的 Cydia 截图。众所周知一旦设备成功搭载 ... -
iOS9程序设计(顶级iOS开发视频课程-Objective-C版)
2016-11-05 20:48:10iOS9程序设计(顶级iOS开发视频课程-Objective-C版) 本课程主要内容包括: iOS9的基础知识 常用控件 屏幕适配 多窗口 导航 表视图 GPS 地图 网络 数据存储、 音频 视频 本地化等内容,并提供了大量的... -
iOS UI实战
2019-12-20 09:20:59本课程讲述iOS用户界面的使用,内容包括:UI组件、视图控制器、图像绘制和动画。 -
iOS高级专题
2019-12-20 09:35:40本课程讲述iOS开发中的高级专题,内容包括:音频视频开发、数据库SQLite、CoreData、网络编程、多线程、GPS定位、手势处理、传感器编程、通讯录等。 -
最全iOS12捷径库收集整理,iOS12捷径推荐
2018-09-30 16:51:28收集整理一波iOS12的捷径库(使用方法见文末),大家使用过程中如果发现有啥问题或者想实现什么捷径,可以关注微信公众号“云峰小罗”,找到我。 1.抖音视频无水印下载 2. 清除照片位置信息 3. 获取热门新闻 4.照片... -
iOS开发实战精讲
2015-02-28 10:01:18本课主要介绍iOS实际开发的重要的知识点,帮助开发者打通从项目到发布的各个流程与环节,后你会了解iOS开发其实也是很容易的。 -
ofstream之ios::ate,ios::app,ios::in,ios::out
2016-11-23 16:47:35ofstream流,以ios::app打开(或者“ios::app|ios::out”),如果没有文件,那么生成空文件;如果有文件,那么在文件尾追加。 以ios::app|ios::in打开,不管有没有文件,都是失败。 以ios::ate打开(或者”ios::ate... -
ios basic_ios和ios_base 的区别
2018-08-24 13:36:41关于ios,作为C++的程序员肯定不陌生,最基础的,我们在设置小数位精度的时候,要用ios::fixed。作为ACM选手,最常用的ios::sync_with_stdio(false) 笔者今天在codeforces上看别人代码时,看到别人用了ios_base::... -
关于ios13升级到ios14企业APP出现无法安装解决方案
2020-09-17 16:55:50在IOS14更新完了之后我们公司app 出现了无法安装的问题, 同一个plist文件,13能,安装,14就提示无法安装,明天就开始推ios14了,所以就显得很急,下面记录下我们的解决方案: 我们没有是用apple store方式下载,我们用的... -
iOS快捷指令最全整理(支持iOS14),抖音去水印捷径快手去水印捷径
2020-08-02 07:56:13收集整理一波iOS捷径库(使用方法见文末,支持iOS14),包括了大家最想要的抖音去水印捷径和快手去水印捷径。大家使用过程中如果发现有啥问题或者想实现什么快捷指令,关注微信公众号“云峰小罗”,发送“捷径”找我... -
iOS进阶开发
2017-10-16 21:12:47进阶课程涵盖目前iOS开发需要提升和深入研究的基础知识.通过原理讲解,深入理解底层机制.课程答疑讲师QQ:471926977 -
iOS逆向 - iOS13 iOS14 模拟点击 模拟触摸 按键模拟 新触动精灵 开源免费
2020-07-21 10:21:44由于目前市面上能找到的模拟触摸库都只支持到iOS11,而主流的iOS版本已经到了13,于是自己写了一个模拟触摸、模拟点击的库,支持iOS11 - 13.6 Github链接:https://github.com/xuan32546/IOS13-SimulateTouch 简介 ... -
iOS开发-全面解析iOS蓝牙BLE4.0开发
2017-03-24 13:36:32只要你会OC基础,会写HelloWorld,你就可以实现iOS的蓝牙通信功能,实现蓝牙小项目也不在话下,作者会带领大家详细分析BLE4.0原理,通过分析xcode使用的蓝牙API,让学者能够得心应手的实现蓝牙BLE4.0的开发 -
Unity打包IOS版本须知流程(移动)
2018-05-17 13:47:46欢迎加入Unity业内qq交流群:956187480 ...Unity是个开放性的平台,打包时也可以选择多种打包类型,几乎包含了所有的平台,目前主流Android,iOS平台,Android平台可以直接使用Unity自行打包,但iOS平... -
IOS之——不想升级,iOS系统自动更新可彻底关闭!
2017-12-28 00:06:24iPhone总是弹出一个提示窗口,如下图“iOS 9.3.2可用于您的iPhone且已经可以安装”,而窗口中根本就没有一个不想升级安装的选项。而当我们点击稍后,就会变成如下图所示的界面“输入密码以在今晚更新,如接入电源,... -
ios building for ios simulator, but the linked framework ‘‘xxxx“ was built for ios 解决
2020-07-13 18:10:45flutter工程在xcode下执行报:ios building for ios simulator, but the linked framework ''xxxx" was built for ios… 解决办法:File -》 Workspace Settings -》 Build System改成 -
从零练就iOS高手实战班
2015-06-25 10:37:09iOS课程教学从入门到实战,系统讲解Swift编程,精讲基础语法,详解iOS基础框架,知识点涵盖新潮实用的swift,AppleWatch App开发。 咨询QQ:2528047463 咨询群:462917576 付费学员答疑群:446896569 -
iOS开发教程之OC语言
2015-04-01 18:25:25Objective-C是扩充C的面向对象编程语言,iOS开发是用的Objective-C语言,本专题更系统的讲解Objective-C语言当中的一些要点,类的封装、基本数据结构(NSString、NSData)、继承、内存管理(retain点语法、MyArray、... -
C++ 深究fstream打开方式ios::app,ios::ate,ios::in,ios::out
2019-03-03 20:56:20资料2:ofstream之ios::ate,ios::app,ios::in,ios::out 2 学习思路 2.1 所需实现功能 实现网页1所说的写入姓名与年龄功能,但是稍作修改,分两次打开文件,第一次写入姓名,第二次写入年龄。 2.2 第一次尝试 默认 #... -
cordova的ios版本cordova-ios4.4.0已经不支持iOS8
2017-11-24 18:08:24cordova的ios版本cordova-ios4.4.0已经不支持iOS8 cordova的官方blog有说明,但是内测用户发现还是很多用户用ios8系统 可以安装上,但是会闪退,找了一些解决方案没有解决 目前是降级了cordova-ios的版本,但不是好... -
ios 不支持 iframe 的完美解决方法(兼容iOS&安卓)
2017-11-30 14:04:37ios 不支持 iframe 的完美解决方法(兼容iOS&安卓) 最近做公司的支付APP,因为入口不同,需要把公共页面抽取出来,然后根据不同的值,传递给后台不同的入口。刚开始用iframe页面嵌套(第一次尝试使用),但发现iOS... -
gg修改器ios版下载
2019-10-28 19:01:14gg修改器ios版下载 推荐一个修改器下载站www.miaozan.art GameGuardian iOS – 您是否花费数月时间尝试玩游戏的所有阶段?您不想花钱达到最好的阶段吗?然后,游戏改装是您的最佳选择。您可以修改任何游戏以... -
ios12.1.3 越狱方法
2018-12-29 05:03:53ios12.0越狱工具下载 ios11.3越狱工具下载 在线越狱
-
【LaTeX】颜色的使用(包含:多种多样的颜色,做出好看的颜色,color palette 颜色板,多种方式定义颜色)
-
wgrib2.exe grads绘图应用 文件转换
-
【数据分析-随到随学】Hive详解
-
Qt and Qt Charts
-
MySQL实战进阶 16 - 幻读、幻读产生的问题、如何解决幻读(使用间隙锁、以及其他方法)
-
SpringBoot水果蔬菜商城系统项目
-
结合鲁棒主成分分析和非下采样轮廓波变换的红外与可见光图像的压缩融合
-
结合卷积受限玻尔兹曼机的CV图像分割模型
-
WPF上位机数据采集与监控系统零基础实战
-
Android面试:这篇文章可以满足你80%日常工作!看看这篇文章吧!
-
初学java(其一)
-
转行做IT-第2章 HTML入门及高级应用
-
基于多核学习-密度峰值聚类的基础矩阵估计
-
三维地图GIS大数据可视化
-
基于多角度光声介观成像方法的小动物肿瘤特异性成像
-
基于二维经验模态分解的合成孔径雷达目标识别方法
-
基于高斯输出约束的上下文相关滤波跟踪
-
Python入门到项目直通车
-
开启远程办公企业云盘
-
C++异步串口通信