2018-02-27 11:36:04 yishengzhiai005 阅读数 1426
  • iOS开发-全面解析iOS蓝牙BLE4.0开发

    只要你会OC基础,会写HelloWorld,你就可以实现iOS的蓝牙通信功能,实现蓝牙小项目也不在话下,作者会带领大家详细分析BLE4.0原理,通过分析xcode使用的蓝牙API,让学者能够得心应手的实现蓝牙BLE4.0的开发

    3507 人正在学习 去看看 许英俊

// ************   解决不能加载微信公众号文章在iOS11.0设备上的问题  ************ //

        configuretion.preferences.minimumFontSize = 0

iOS 11.0
2017-06-08 10:57:23 sinat_23907467 阅读数 1246
  • iOS开发-全面解析iOS蓝牙BLE4.0开发

    只要你会OC基础,会写HelloWorld,你就可以实现iOS的蓝牙通信功能,实现蓝牙小项目也不在话下,作者会带领大家详细分析BLE4.0原理,通过分析xcode使用的蓝牙API,让学者能够得心应手的实现蓝牙BLE4.0的开发

    3507 人正在学习 去看看 许英俊

iOS 11.0原文 :https://developer.apple.com/library/content/releasenotes/General/WhatsNewIniOS/Articles/iOS_11_0.html#//apple_ref/doc/uid/TP40017637-SW1

本文总结了iOS 11中推出的主要开发者相关功能,该功能在当前运送的iOS设备上运行。该文章还列出了更详细描述新功能的文档。

有关已知问题的最新新闻和信息,请参见https://developer.apple.com/ios/download上的发行说明。

有关新API的完整列表,请从API参考文档的任何页面顶部的下拉列表中选择显示API更改。

要了解Swift的新功能,请参阅Swift语言Swift编程语言(Swift 4)

一般

iOS 11.0中的新功能 - 支持二进制(非文本)条形码。

为AV Foundation,Core Image和SiriKit添加了API,以支持检测,解码和创建具有二进制内容的条形码。

CIBarcodeDescriptor为Core Image添加了一个新的条形码描述符对象,以提供与AV Foundation和Vision API的互操作性。

iOS 11.0中的新功能 - MusicKit。

MusicKit可让您的应用访问完整的Apple Music目录以及用户的图书馆。

StoreKit中增加和更新了功能,用于检索客户端令牌和店面标识符。

在Media Player中添加和更新功能以启用播放。

在Apple Music订户设置流程中添加了自定义消息的显示。

应用框架

iOS 11.0中的新功能 - 支持拖放功能。

在iOS中拖放可让用户将项目从一个位置拖动到另一个位置;在单个应用程序或不同的应用程序中。

功能增加,将视图识别为拖动源和目的地。

添加了可定制的预览和定制动画。

欲了解更多信息,请参阅拖放的文件中。

iOS 11.0中新增 - 浏览本地和iCloud文档。

添加了视图控制器,用于浏览存储在本地和云中的文档。有关更多信息,请参阅UIDocumentBrowserViewControllerUIDocumentBrowserTransitionController

添加了UIDocumentBrowserAction一个用于为文档浏览器创建自定义操作的对象。

添加了FileProviderFileProviderUI框架,用于添加第三方存储服务。

有关详细信息,请参阅将文档浏览器添加到应用程序

改进的动态类型支持。

添加了UIFontMetrics一个用于创建根据当前选定的文本大小进行缩放的自定义字体的对象。

更新自动布局,以便在基准锚点是使用系统间距的约束的一部分时,根据字体大小动态调整间距。

添加了一个属性来保存PDF资源的矢量数据,以实现平滑缩放。这可以用于显示较大版本的条形条和分段控制项,以及调整图像大小以匹配用户的文字大小。在资产目录中,为PDF选择“保留矢量数据”以启用缩放。

添加UIAccessibilityContentSizeCategoryImageAdjusting了一种用于缩放辅助功能文本大小的图像的协议。

改进了动态类型的自动布局支持。

更新NSLayoutXAxisAnchorNSLayoutYAxisAnchor提供使用两个锚之间的系统间距创建约束的工厂方法。以前,创建这样的约束的唯一方法是使用-Visual Format语言中的dash()。

添加了一个选项,NSLayoutFormatOptions用于创建使用基线到基线间距的Visual Format语言字符串。

更新UIStackView以实现系统间距和定制间距。

更新的文本内容可以与App Password自动填充一起使用。

添加usernamepassword属性UITextContentType。

对键盘扩展的更新。

已添加selectedText,该属性UITextDocumentProxy返回文档中当前选定的文本。

已添加documentIdentifier,其属性UITextDocumentProxy指定用户是否导航到新的文本小部件。

添加hasFullAccessUIInputViewController检查键盘权限的属性。

添加needsInputModeSwitchKey了UIInputViewController控制输入​​模式切换键显示的属性。

在“设置”中添加新的系统权限,以便应用程序访问附加的键盘扩展。

改进的可用存储空间API。

URL为不同的使用场景添加了新的键。

volumeAvailableCapacityForImportantUsageKey返回用户明确要求的操作的总字节数,或者是您的应用程序正常运行所必需的。

volumeAvailableCapacityForOpportunisticUsageKey返回可用于存储非必需项目的总字节数,例如预先下载的用于用户可能使用或可能不会被使用的性能的内容。

图形和游戏

iOS 11.0中新增 - 支持增强现实。

添加了ARKit框架,结合了设备运动跟踪,摄像头场景捕获,高级场景处理和显示便利,简化了建立AR体验的任务。

iOS 11.0中的新功能 - 高性能图像分析。

添加了用于检测面部,条形码,文本,图像水平和矩形区域的Vision框架

与Core ML集成以在图像上运行自定义模型。

跟踪视频中的对象。

包括对图像注册的支持。

新的iOS 11.0 - 为Core Image编写自定义图像混合内核。

新增CIBlendKernel,一种特殊类型的CIColorKernel混和两个图像(通过支持CIRenderDestinationCIImageAccumulator)。

添加init(functionName:fromMetalLibraryData:)CIKernel使用Metal编写内核以从现代语言功能和减少的编译时间中受益。

iOS 11.0中的新功能 - 轻量级渲染目标。

添加了CIRenderDestination一个对象,用于创建在工作发出后返回给调用者的渲染器。功能包括为不同目的地指定渲染器的所有目标属性IOSurface,包括CVPixelBuffer,GL纹理,金属纹理和内存。

扩展ReplayKit框架

更新RPScreenRecorder了屏幕捕获和后置摄像头支持。

增加了新的核心图像过滤器CITextImageGenerator,CIColorCurves,CILabDeltaE,CIBokehBlur,CIMinMaxRed,和CIBicubicScaleTransform。

金属2

Metal 2包含Metal,Metal Shading Language和Metal Performance Shaders框架的重要补充和更新。以下项目表示更新发生的位置:

- MTL:金属框架中的更新。

- MSL:金属着色语言中的更新。

- MPS:金属性能着色器框架中的更新。

MPS:金属2新 - 跨平台金属性能着色器支持。

所有的Metal Performance Shaders功能都可以在iOS 11.0,tvOS 11.0和macOS 10.13中使用。

MPS:iOS 11.0新增 - 神经网络支持。

增加了对金属性能着色器框架的神经网络的支持。

添加了图表,以提供更高级别的API,以简化神经网络的创建,包括允许状态在神经网络中的节点之间传输的对象。

增加卷积神经网络(CNN),以支持使用先前获得的培训数据实施和运行深入学习。

增加了反复神经网络来实现图像和矩阵的推理。

iOS 11.0中的新功能 - 间接参数缓冲区。

将资源分组为间接参数缓冲区(IAB)以减少CPU开销。

MSL:添加了[[id(n)]]属性限定符以识别IAB结构中的资源。

MTL:添加了MTLIndirectArgumentEncoder将资源编码到IAB中的协议。

MTL:iOS 11.0新增 - 可编程样本。

在渲染到多采样渲染目标时配置样本的位置。

更新了MTLRenderPassDescriptor类以设置和获取渲染过程的样本位置。

MSL:iOS 11.0中的新功能 - 统一类型。

添加uniform类型以声明为执行绘图或调度调用的图形或计算功能的所有线程统一的变量。

MSL:iOS 11.0新增 - 采样器阵列。

添加array类型以存储采样器数组。

MPS:添加了新的过滤器。

添加了图像统计信息的过滤器,例如计算图像区域的均值和方差。

添加了将两个图像组合在一起的过滤器,例如元素总和和查找关键点。

添加用于矩阵分解和求解的滤波器,例如使用Cholesky或LU(Lower Upper)分解的分解。

MSL:扩展功能专业化。

扩展[[color(n)]]和[[raster_order_group(index)]]属性限定符来处理函数常量。

用于图形,计算或用户功能的结构的成员可以与函数常量一起使用。

MTL:扩展顶点格式。

增加了新MTLVertexFormat的小格式,如价值观char,short和half。

向iOS添加了双源混合支持。

将固定功能混合操作的两个源颜色输出到单个渲染目标。

MSL:向[[index(i)]]属性限定符添加一个新的[[color(n)]]属性限定符以输出第二个源颜色。

MTL:更新MTLBlendFactor为在第二个源颜色上运行。

应用服务

iOS 11.0新功能 - 支持机器学习模式。

添加了核心ML框架,轻松将机器学习模型集成到应用程序中。

iOS 11.0中新增 - SiriKit支持视觉代码。

向Sirkit添加了视觉代码域,以支持显示交换付款和联系信息的视觉代码。

iOS 11.0中新增 - SiriKit支持笔记和待办事项列表。

向SiriKit添加了列表和Notes域,以支持使用Siri添加备注,与待办事项列表进行交互,以及与提醒进行交互。

在SiriKit域中增加了意图。

将骑行取消和反馈添加到骑行预订域

增加了汇款和搜索帐户到付款域

iOS 11.0中的新功能 - 查找设备的标题。

添加heading到CMDeviceMotion,返回相对于的方位角度的属性CMAttitudeReferenceFrame。返回的值是以度为单位的标题double。当参考帧为xArbitraryZVertical或时,返回负值xArbitraryCorrectedZVertical。

iOS 11.0中的新功能 - 多路径TCP。

增加了对使用多个接口(如Wi-Fi和Cellular)的URLSessionConfiguration支持,通过扩展支持IETF RFC 6824中定义的多路径TCP传输单个数据流。有关更多信息,请参阅URLSessionConfiguration.MultipathServiceType

iOS 11.0中新增 - DNS代理。

向网络扩展框架添加了新的DNS代理应用程序扩展类型。

Apple Pay中增强的最终用户交易流程。

添加PKPaymentError到PassKit,用于详细报告用户运输和付款信息中的错误以及授权错误的结构。开发人员可以使用该信息来提供自定义的错误字符串。

更新处理程序方法PKPaymentAuthorizationControllerDelegate以接收PKPaymentError。

更新PKPaymentRequest使用PKContactField的联系信息。

添加supportedCountriesPKPaymentRequest用于指定支持的交易的国家/地区。

即使电子钱包中没有支持付款方式,您也可以提供付款按钮。Apple Pay现在提供付款而不离开您的应用程序,然后返回结帐。

iOS 11.0中的新功能 - 在App Store上推广应用内购买。

开发人员可以在App Store产品页面上宣传多达20个应用内购买。客户可以在App Store上开始购买,然后被带到应用程序来完成交易。

增加paymentQueue(_:shouldAddStore:for:)了一种SKPaymentTransactionObserver促进应用内购买的新方法。应用程序需要支持此代理,以便在App Store上显示促销的应用内购买。

iOS 11.0中的新功能 - 实时消息。

添加MSMessageLiveLayout了一个新的消息布局,用于显示可以显示动态内容的实时消息,如游戏。每个实时消息都有自己的MSMessagesAppViewController,并且可以在屏幕上同时存在多个活动的实时消息。

以下代码显示将消息流添加到消息流中,包括不支持实时消息的设备的备用布局。

守卫让对话= activeConversationelse{

fatalError(“无活动对话”)

}

letalternateLayout = MSMessageTemplateLayout()

alternateLayout.image = UIImage(命名为“SuperSweetGameImage”)

alternateLayout.caption =“$(\(conversation.localParticipantIdentifier))想玩一个游戏!”

letlayout = MSMessageLiveLayout(alternateLayout:alternateLayout)

letmessage = MSMessage()

message.layout =布局

conversation.insert(message,completionHandler:nil

HomeKit的增强触发器。

增强触发器的基于时间的条件。HMSignificantTimeEvent指定日出和日落的偏移量。HMCalendarEvent指定日期和时间。HMDurationEvent指定时间间隔。

添加HMCharacteristicThresholdRangeEvent以支持跟踪一个范围内的配件的状态,例如当温度在68和72度之间时运行自动化。

添加HMPresenceEvent用于添加基于用户的存在或不存在的条件。

更新HMEventTrigger以启用多次重复的事件。

通过实施来接收家庭中心状态的更新home:didUpdateHomeHubState:。

更新了MapKit,以更清楚地显示开发人员数据。

添加mutedStandard了一种强调开发人员数据的新地图显示模式。

添加属性以自定义注释在碰撞发生时的行为。开发人员使用的组合displayPrioritycollisionMode以及clusteringIdentifier对影响哪个注解持续显示在地图上。

媒体和网络

新的iOS 11.0 - 支持高效率视频编码(HEVC)。

高效率视频编码(HEVC)是视频编码的新标准,在相同的视觉质量水平下,提供比H.264更好的压缩效果。

使用AV基金会播放包含HEVC编码曲目的电影,并捕获和导出视频。

VideoToolbox客户端可以对HEVC视频比特流进行编码和解码。

iOS 11.0新功能 - 支持高效图像格式(HEIF)。

高效图像格式(HEIF)是一种新的图像压缩标准,可将相同级别图像质量的当前数据压缩比加倍。

添加了照片和核心图像框架的功能,以显示,编码和导出HEIF图像。

iOS 11.0中的新功能 - 支持捕获和操作深度数据,以及增强的照片捕获。

向AV Foundation添加了对象,用于捕获和表示深度数据。欲了解更多信息,请参见AVCaptureDepthDataOutputAVDepthData以及相关的API。

添加了AVCapturePhoto一个封装捕获的照片的信息并支持HEVC和HEIC编码图像的对象。

更新AVCapturePhotoOutput以提供更多信息。

iOS 11.0新功能 - 自动存储管理。

增加了HTTP实时流资源的自动存储管理AVAssetDownloadTask。当需要空间时,系统可以自动清除过期或不必要的下载。使用优先级来影响清除策略。

iOS 11.0中新增 - AirPlay 2。

AV基础中某些音频播放界面改善了AirPlay的可靠性。要利用增加的可靠性,播放音频AVPlayer或新的AVSampleBufferAudioRenderer对象。

为AirPlay添加了多个扬声器支持,以支持长形音频,如音乐和播客。要将应用程序标记为呈现长格式音频,请调用该AVAudioSession方法setCategory(_:mode:routeSharingPolicy:options:)并将AVAudioSessionRouteSharingPolicyLongForm其用作参数值。

FairPlay流密钥管理。

改进了功能AVContentKeySession。使用AVContentKeySession启动独立播放或媒体资产的下载的内容密钥请求。符合AVContentKeyRecipient协议的对象(例如AVURLAsset)可被添加为接收者AVContentKeySession以获得对现有内容密钥的访问并发起新的内容密钥请求

增加了更多的实时照片调整。

添加了一个称为效果的实时照片调整的集合,将实时照片呈现为循环,反弹或长时间曝光。与常规实时照片不同,Loop和Bounce视频将以连续的循环播放。

添加了playbackStyle一个新的属性,标识如何向PHAsset用户呈现。

系统

iOS 11.0中的新功能 - 热点配置。

添加了热点配置的网络扩展。有关更多信息,请参阅NEHotspotConfiguration

更新了核心蓝牙框架。

增加了对L2CAP频道的支持。

扩展会话恢复可以在蓝牙复位和设备重新启动时工作。

更新了核心蓝牙框架,以适应iOS,tvOS,watchOS和macOS,以及基于平台的标记呼叫可用性。

iOS 11.0中的新功能 - 检测NFC标签并读取包含NDEF数据的消息。

增加了核心NFC,一种用于阅读NFC数据交换格式(NDEF)的近场通信(NFC)标签和数据的新框架。

APFS现在是默认文件系统。

APFS现在对区分大小写的文件系统有不规范化的支持。

2018-04-12 13:40:37 Emperor_huanzi 阅读数 983
  • iOS开发-全面解析iOS蓝牙BLE4.0开发

    只要你会OC基础,会写HelloWorld,你就可以实现iOS的蓝牙通信功能,实现蓝牙小项目也不在话下,作者会带领大家详细分析BLE4.0原理,通过分析xcode使用的蓝牙API,让学者能够得心应手的实现蓝牙BLE4.0的开发

    3507 人正在学习 去看看 许英俊
实现方法,自定义UISearchBar//  placeholder 和icon 和 间隙的整体宽度
// @property (nonatomic, assign) CGFloat placeholderWidth;

//  在layoutSubviews里默认先居中
if (@available(iOS 11.0, *)) {
        [self setPositionAdjustment:UIOffsetMake((field.frame.size.width-self.placeholderWidth)/2, 0) forSearchBarIcon:UISearchBarIconSearch];
 } 

// 实现textfield的代理方法
// 开始编辑的时候重置为靠左
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
// 继续传递代理方法
     if ([self.delegate respondsToSelector:@selector(searchBarShouldBeginEditing:)]) {
        [self.delegate searchBarShouldBeginEditing:self];
    }
    if (@available(iOS 11.0, *)) {
        [self setPositionAdjustment:UIOffsetZero forSearchBarIcon:UISearchBarIconSearch];
    }
    return YES;
}

// 结束编辑的时候设置为居中
-(BOOL)textFieldShouldEndEditing:(UITextField *)textField {
     if ([self.delegate respondsToSelector:@selector(searchBarShouldEndEditing:)]     {
        [self.delegate searchBarShouldEndEditing:self];
    }
    if (@available(iOS 11.0, *)) {
        [self setPositionAdjustment:UIOffsetMake((textField.frame.size.width-self.placeholderWidth)/2, 0) forSearchBarIcon:UISearchBarIconSearch];
    }
    return YES;
}
2017-08-18 14:20:40 yxys01 阅读数 7517
  • iOS开发-全面解析iOS蓝牙BLE4.0开发

    只要你会OC基础,会写HelloWorld,你就可以实现iOS的蓝牙通信功能,实现蓝牙小项目也不在话下,作者会带领大家详细分析BLE4.0原理,通过分析xcode使用的蓝牙API,让学者能够得心应手的实现蓝牙BLE4.0的开发

    3507 人正在学习 去看看 许英俊
日期 版本号
2013.09.18 iOS 7.0
2013.09.20 iOS 7.0.1
2013.09.26 iOS 7.0.2
2013.10.22 iOS 7.0.3
2013.11.14 iOS 7.0.4
2014.01.29 iOS 7.0.5
2014.02.21 iOS 7.0.6
2014.03.10 iOS 7.1
2014.04.22 iOS 7.1.1
2014.06.30 iOS 7.1.2
2014.09.17 iOS 8.0
2014.09.24 iOS 8.0.1
2014.09.25 iOS 8.0.2
2014.10.20 iOS 8.1
2014.11.17 iOS 8.1.1
2014.12.09 iOS 8.1.2
2015.01.27 iOS 8.1.3
2015.03.09 iOS 8.2
2015.04.08 iOS 8.3
2015.06.30 iOS 8.4
2015.08.13 iOS 8.4.1
2015.09.16 iOS 9.0
2015.09.23 iOS 9.0.1
2015.09.30 iOS 9.0.2
2015.10.21 iOS 9.1
2015.12.08 iOS 9.2
2016.01.19 iOS 9.2.1
2016.03.21 iOS 9.3
2016.03.31 iOS 9.3.1
2016.05.16 iOS 9.3.2
2016.07.18 iOS 9.3.3
2016.08.04 iOS 9.3.4
2016.08.25 iOS 9.3.5
2016.09.13 iOS 10
2016.09.13 iOS 10.0.1
2016.09.23 iOS 10.0.2
2016.10.17 iOS 10.0.3
2016.10.24 iOS 10.1
2016.10.31 iOS 10.1.1
2016.12.12 iOS 10.2
2017.01.23 iOS 10.2.1
2017.03.28 iOS 10.3
2017.04.11 iOS 10.3.1
2017.05.16 iOS 10.3.2
2017.07.20 iOS 10.3.3

其他版本参考:http://api.ineal.me/tss/status

2019-03-10 10:59:47 Chenftli 阅读数 616
  • iOS开发-全面解析iOS蓝牙BLE4.0开发

    只要你会OC基础,会写HelloWorld,你就可以实现iOS的蓝牙通信功能,实现蓝牙小项目也不在话下,作者会带领大家详细分析BLE4.0原理,通过分析xcode使用的蓝牙API,让学者能够得心应手的实现蓝牙BLE4.0的开发

    3507 人正在学习 去看看 许英俊

材料:

appium1.11.0下载地址:https://github.com/appium/appium-desktop/releases/tag/v1.11.0

appium中文官方文档地址:http://appium.io/docs/cn/about-appium/intro/

环境:

mac:10.13.6

android:8.1.0

iOS:12.1.2

安装:

         一、安装java8及AndroidSDK并配置环境变量

                java8并配置环境变量    安装命令:brew cask install java8   

               安装AndroidSDK并配置环境变量:直接安装Android  Studio(下载地址:http://www.android-studio.org),我们需要的是这个软件下的SDK工具包,为了方便所以这样安装。

               环境变量的配置参考:https://blog.csdn.net/Chenftli/article/details/86650501

         二、安装 carthage   命令:brew install carthage

         三、安装Xcode10    在mac中的App Store中安装,并首次打开(注意:一定要打开过)

                原因:https://blog.csdn.net/Chenftli/article/details/88244918

全部工作步骤以及原因讲解:

下载安装Appium-1.11.0.dmg。下一步配置运行的环境,需要在确保上面环境中安装完成且环境变量已经配置完成。看到如下界面:

                                   

选择host要最好改为:127.0.0.1,Edit Configurations配置一下JAVA_HOME、ANDROID_HOME(就是刚才上面安装中配置的路径),然后Start Server(这里是测试一下服务端能不能开启)。

如果是用于android测试,appium的环境已经配置完成,但如果是iOS的话,需要配置代码签名和生成供开发和测试的应用,共有三种方式(参考:http://appium.io/docs/cn/appium-setup/real-devices-ios/#xcode-8-ios-93-ios)。本文使用全部手动配置,可以手动把 provisioning profile 和项目关联在一起。

Appium 测试iOS时,安装的应用叫 WebDriverAgent-Runner,(可以在这里)找到,要想安装这个应用,Appium需要能配置这个构建。

步骤:

一、注册一个iOS开发者免费个人账号(https://appleid.apple.com)。

二、找到appium的安装目录,并找到WebDriverAgent的目录,

       例如:/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent

三、切换到上面的WebDriverAgent的目录下,命令行输入如下两条命令:

mkdir -p Resources/WebDriverAgent.bundle
sh ./Scripts/bootstrap.sh

四、用Xcode打开 WebDriverAgent的目录下的 WebDriverAgent.xcodeproj,对于 WebDriverAgentLib 和 

WebDriverAgentRunner 两个 target,都选择 "General" tab 里的 "Automatically manage signing" 然后选择你的 

Development Team。这也会自动选择 Signing Ceritificate。如图:

                                 

五、Xcode 会创建不了 WebDriverAgentRunner 的 provisioning profile ,如下图:

                                

 需要在 "Build Settings" tab 里手动改 bundle id。把 "Product Bundle Identifier" 从 com.facebook.WebDriverAgentRunner 改成 Xcode 能采用的 。如图:

                            

在回到 "General" tab 里的 WebDriverAgentRunner target,然后可以看到一个 provisioning profile 创建成功了 ,如图:

                            

然后验证,构建这个项目。

xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=<udid>' test

注意:这时会在手机上安装一个应用,如果上面命令失败了则在苹果手机中操作:设置-通用-设备管理(描述文件) 信任你的apple id就可以了 。

 如果成功,输出会像下面这样,如图:

Test Suite 'All tests' started at 2019-03-08 09:54:55.712
Test Suite 'WebDriverAgentRunner.xctest' started at 2019-03-08 09:54:55.719
Test Suite 'UITestingUITests' started at 2019-03-08 09:54:55.724
Test Case '-[UITestingUITests testRunner]' started.
    t = 0.01s Start Test at 2019-03-08 09:54:55.785
    t = 0.02s Set Up

配置环境大工搞成,接下来就是编写python脚本作为客户端向服务端发送请求控制手机。

iOS 13适配汇总

阅读数 7305

没有更多推荐了,返回首页