内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

ios開發(fā)ats,iOS開發(fā)者賬號多少錢

蘋果文檔翻譯 iOS10 NSAppTransportSecurity

NSAppTransportSecurity (對應(yīng)的值為字典類型)被用來定義 app 在進(jìn)行網(wǎng)絡(luò)請求時(shí)的安全設(shè)定:為現(xiàn)有安全機(jī)制設(shè)定特例,或者開啟新的安全特性。

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的綠春網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

在蘋果的開發(fā)平臺(tái)上,有一種被稱為 App Transport Security(ATS) 的網(wǎng)絡(luò)安全機(jī)制,適用于 app 以及 app extension,默認(rèn)開啟。這項(xiàng)機(jī)制確保 app 在進(jìn)行網(wǎng)絡(luò)訪問時(shí),使用業(yè)界標(biāo)準(zhǔn)的,沒有已知重大安全隱患的協(xié)議和加密方式,以此確保用戶的隱私和數(shù)據(jù)完整性。從而培養(yǎng)用戶對您的 app 的信任。

通過在 info.plist 中配置這個(gè)鍵,開發(fā)者可以自定義網(wǎng)絡(luò)安全策略。例如:

對 NSAppTransportSecurity 的支持自 iOS9.0,OS X v10.11 開始,適用于 app 和 app extension。

自 iOS10.0,macOS 10.12 開始,增加了對下列子鍵的支持:

對于使用 iOS9.0, OS X v10.11 SDK 及以上的 app 來說,ATS(App Transport Security)默認(rèn)開啟, NSAllowsArbitraryLoads 是字典 NSAppTransportSecurity 的根鍵,默認(rèn)值 NO 。

在啟用 ATS 的情況下,所有的 HTTP 請求必須為 HTTPS( RFC 2818 ) 連接。任何不安全的 HTTP 請求都將失敗。ATS 使用 TLS(Transport Layer Security)v1.2( RFC 5246 )。更多關(guān)于安全連接的信息,請查閱 HTTPS Server Trust Evaluation 。

下面是字典 NSAppTransportSecurity 的總體結(jié)構(gòu),所有鍵都是非必填項(xiàng):

可以看出,所有鍵可以分為兩類:主鍵,這些鍵用來定義 app 的總體 ATS 策略;子鍵,即 NSExceptionDomains 下面的鍵,使用這些鍵針對某個(gè)域名單獨(dú)配置。

主鍵包括:

閱讀 表2 ,獲取關(guān)于上述主鍵的詳細(xì)信息。

所有的子鍵都屬于 NSExceptionDomain 。向 Info.plist 中添加這一主鍵:

例如,及時(shí)之前設(shè)置 NSAllowsArbitraryLoadsInMedia 為 YES,然而 NSExceptionDomain 所代表的域名依然不能訪問不安全的媒體內(nèi)容。

基于這樣的設(shè)定,可以針對域名進(jìn)行 ATS 配置,增加或減少安全措施。例如:

還參考 Certificate Transparency ,保證訪問特定域名時(shí)的安全,詳情見 Certificate Transparency 。

NSExceptionDomains 字典構(gòu)成:

閱讀 表3 ,獲取關(guān)于 NSExceptionDomains 的進(jìn)一步詳細(xì)信息。

NSURLSession 以及所有與其相關(guān)的 API 都實(shí)現(xiàn)了對 ATS 的支持;如果您的 app 基于 iOS9.0 SDK 或 OS X v10.11 SDK 以上版本開發(fā),ATS 自動(dòng)開啟。(較老的 NSURLConnection 同樣會(huì)在上述 SDK 中開啟對 ATS 的支持。)然而,在使用底層網(wǎng)絡(luò) API 或第三方網(wǎng)絡(luò)庫時(shí),無法受到 ATS 的保護(hù)。

iOS9.0 或 OS X v10.11 以下版本,不支持 ATS, NSAppTransportSecurity 會(huì)被操作系統(tǒng)忽略。當(dāng) ATS 不可用時(shí),系統(tǒng)將根據(jù) RFC 2818 提供標(biāo)準(zhǔn)的 HTTPS 安全策略,對服務(wù)端進(jìn)行驗(yàn)證。

當(dāng)您的 app 運(yùn)行在 iOS9.0 或者 OS X v10.11以下時(shí),網(wǎng)絡(luò)連接仍然可用,但 ATS 不起作用。

ATS 只針對 公共域名 起效。ATS 對已下連接無效:

為了連接非法域名或本地域名,需要將 NSAllowsLocalNetworking 設(shè)置為 YES。

在 ATS 完全開啟的情況下,系統(tǒng)要求 app 的 HTTPS 連接必須滿足以下要求:

上面的標(biāo)準(zhǔn),未來可能會(huì)發(fā)生變化。但不會(huì)影響到 app 二進(jìn)制包的兼容性。

暫略

能否自行改寫服務(wù)器授信校驗(yàn)規(guī)則,取決于 ATS 是否針對某個(gè)域名開啟。解釋如下:

某些對 ATS 的配置會(huì)引發(fā) App Store 的審核,開發(fā)者必須說明原因。這些鍵有:

以下是一些原因說明例子,供參考:

向 App Store 提交審核時(shí),開發(fā)者應(yīng)主動(dòng)提供足夠的信息,以便解釋 app 無法使用安全連接的原因。

表2列出了 NSAppTransportSecurity 字典所有主鍵信息,通過定義這些主鍵,開發(fā)者可以配置 app 的網(wǎng)絡(luò)行為。同 NSExceptionDomains 相關(guān)的子鍵信息請查看表3。

表2 ATS 字典主鍵

表3列舉了用來針對某個(gè)域名進(jìn)行網(wǎng)絡(luò)安全配置所使用的鍵。

表3 針對某個(gè)域名進(jìn)行網(wǎng)絡(luò)安全配置的子鍵

下面介紹 NSAppTransportSecurity 的常見配置:

不影響整體 ATS 策略,只針對特定服務(wù)器進(jìn)行不安全的網(wǎng)絡(luò)請求——例如,從圖片服務(wù)器請求圖片——可在 Info.plist 中做如下配置:

重要: 使用上述配置之前,請注意其可能帶來的潛在威脅。例如,通過 HTTP 連接從服務(wù)器獲取媒體資源,可能帶來如下風(fēng)險(xiǎn):

不影響整體 ATS 策略,只針對特定服務(wù)器降低 HTTPS 的安全等級——包括使用較老版本的 TLS / SSL 協(xié)議,不支持正向保密——可在 Info.plist 中做如下配置:

假設(shè)正在開發(fā)一款瀏覽器應(yīng)用,需要能夠讓用戶訪問任意 URL。這種情況下,開發(fā)者應(yīng)該針對受控服務(wù)器使用安全連接,例如用于發(fā)布 app 更新的服務(wù)器。

為了能夠讓針對受控服務(wù)器的訪問享受 ATS 保護(hù),同時(shí)保證其他不安全訪問可用,可在 Info.plist 中做如下配置:

暫略

暫略

[iOS 開發(fā)] 如何針對不同環(huán)境配置 info.plist 中的信息?

前兩天,在適配 HTTPS 時(shí),由于我們的測試環(huán)境服務(wù)器沒有啟用 HTTPS,只有正式環(huán)境的服務(wù)器啟用了 HTTPS ,所以在項(xiàng)目中需要針對不同環(huán)境做不同的 ATS 配置處理。這個(gè)配置也涉及到 info.plist 中 ATS 相關(guān)屬性的修改,這也就引出了 info.plist 是否可以動(dòng)態(tài)配置的問題了。

一開始,我想 info.plist 本質(zhì)上是一個(gè) XML 文件,那么 XML文件中可不可以通過 #ifdef DEBUG 宏定義來動(dòng)態(tài)配置呢?然后我就嘗試了一下這種做法,結(jié)果編譯不通過。實(shí)踐證明此方法不可行。

然后,我又想 build setting 中不是可以分別設(shè)置 debug 和 release 模式下的一些參數(shù)么,于是到 build setting 中搜索了一下 info.plist,沒想到還真有這個(gè)模塊,release 和 debug 模式的默認(rèn)值都是 info.plist。

接下來,我自己也復(fù)制了一個(gè) info.plist,并改名 infoDebug.plist,然后修改了一些針對 debug 模式的參數(shù),最后回到 build setting 中,將對應(yīng)的選項(xiàng)值改為 infoDebug.plist,Command+B 編譯一下之后,大功告成!

除此之外,如果我們?nèi)绻枰獎(jiǎng)討B(tài)配置開發(fā)或者生產(chǎn)網(wǎng)絡(luò)環(huán)境, 以及在多項(xiàng)目和運(yùn)行中切換環(huán)境,可以借助 Xcode 配置文件 xcconfig 來實(shí)現(xiàn)。

iOS開發(fā) 為app配置代理

由于對某款app的租房信息的篩選條件不滿意,所以爬取了它的api以便能夠根據(jù)自己的需求進(jìn)行篩選。根據(jù)自己的初級爬蟲經(jīng)驗(yàn),為了防止app封禁我的ip,所以準(zhǔn)備通過代理服務(wù)器去訪問。

過程是相當(dāng)糾結(jié)啊,嘗試的太多,這里就只放結(jié)論了。

筆者使用的 URLSession ,初始化前配置 URLSessionConfiguration 對象的 connectionProxyDictionary 即可。

特別提醒: host 類型為 String , 而 port 類型為 Int .

ps:使用http時(shí),需要添加ATS白名單

注: 兩種代理方式貌似不能同時(shí)使用。不確定是因?yàn)槲覝y試時(shí)上一秒代理還好好的,下一秒就掛了。

一般服務(wù)器對于爬蟲是不歡迎的。真正的用戶操作再快都需要一定的時(shí)間,而爬蟲訪問時(shí)間很短,因此相當(dāng)規(guī)模的爬蟲對服務(wù)器造成的負(fù)擔(dān)就更大。所以服務(wù)器會(huì)對爬蟲做檢測,如果被抓到則可能被封掉ip或像本例一樣返回其他網(wǎng)站。

針對檢測,我們的做法就是要偽裝成真正的用戶。以筆者目前的理解有兩點(diǎn):

1. 修改請求頭。通過Charles抓包可以看到一次請求的頭部信息,對照修改

2. 設(shè)定訪問延時(shí)。手速再快你也快不過自動(dòng)運(yùn)行的程序吧。

參考鏈接:

ps: 一個(gè)不錯(cuò)的爬蟲學(xué)習(xí)系列

過程中遇到最多的就是1200錯(cuò)誤碼:無法與服務(wù)器建立安全連接。網(wǎng)上大多數(shù)意見是服務(wù)器SSL版本不夠,因?yàn)閕OS最低要求使用TLSv1.2的版本。對于更低一點(diǎn)的,就需要特別指定版本。( 由于我這里是代理字典https key用錯(cuò)了,才導(dǎo)致的1200。所以只能先在這mark一下 )

以下是網(wǎng)上給出的解決方法:

這是一個(gè)測試TLS的控制臺(tái)命令:

nscurl --ats-diagnostics --verbose

這里能自動(dòng)測試哪種key能通過,隨便找個(gè)https的網(wǎng)站試一下吧。

附上 connectionProxyDictionary keys 參見 Table 3-7

iOS ATS / HTTPS的問題

App Transport Security應(yīng)用程序傳輸安全機(jī)制

iOS 9起蘋果就開始推薦使用HTTPS,iOS 9中默認(rèn)是禁止非HTTPS的協(xié)議來訪問網(wǎng)絡(luò)的.

2017年1月1日起蘋果提出所有新提交的App默認(rèn)不允許使用NSAllowsArbitraryLoads來繞過ATS的限制。

也就是說強(qiáng)制我們用HTTPS,

是從哪里買的或者是使用限時(shí)免費(fèi)版只要符合蘋果官方的證書要求,具體要求參考: Apple-NSAppTransportSecurity 。那么什么都不要設(shè)置,只需要啟用項(xiàng)目的ATS,就可以HTTPS請求了。。

如果還想添加其它只支持HTTP的請求,按前面Exception Domains的設(shè)置即可。

ios開發(fā) ats 會(huì)影響 調(diào)用js方法嗎

會(huì),以下是方法:

在Plugins下新建文件(在Plugins上右鍵-new file選擇Objective-c class)輸入名字(CDVMyPlugin) next……

這世間你會(huì)發(fā)現(xiàn)在Plugins下面有兩個(gè)文件,分別是:CDVMyPlugin.h和CDVMyPlugin.m

CDVMyPlugin.h內(nèi)容:

#import Foundation/Foundation.h

#import Cordova/CDVPlugin.h

@interface CDVMyPlugin : CDVPlugin

@property (nonatomic, copy) NSString* callbackID;

// Instance Method

- (void) print:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;

@end

CDVMyPlugin.m內(nèi)容

#import "CDVMyPlugin.h"

@implementation CDVMyPlugin

@synthesize callbackID;

-(void)print:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options

{

// 這是classid,在下面的PluginResult進(jìn)行數(shù)據(jù)的返回時(shí),將會(huì)用到它

self.callbackID = [arguments pop];

// 得到Javascript端發(fā)送過來的字符串

NSString *stringObtainedFromJavascript = [arguments objectAtIndex:0];

// 創(chuàng)建我們要返回給js端的字符串

NSMutableString *stringToReturn = [NSMutableString stringWithString: @"我是返回的:"];

[stringToReturn appendString: stringObtainedFromJavascript];

// Create Plugin Result

CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString: stringToReturn];

NSLog(@ "%@",stringToReturn);

// 檢查發(fā)送過來的字符串是否等于"HelloWorld",如果不等,就以PluginResult的Error形式返回

if ([stringObtainedFromJavascript isEqualToString:@"HelloWorld"] == YES){

// Call the javascript success function

[self writeJavascript: [pluginResult toSuccessCallbackString:self.callbackID]];

} else{

// Call the javascript error function

[self writeJavascript: [pluginResult toErrorCallbackString:self.callbackID]];

}

}

JS封裝通用調(diào)用方法

//調(diào)用IOS方法插件

var MyIOSPlugin = {

/**

* 調(diào)用IOS方法

* @param method 要調(diào)用IOS插件的方法名

* @param parameter 參數(shù)[數(shù)組]

* @param success 成功回調(diào)

* @param fail 失敗回調(diào)

* @returns {*}

*/

nativeFunction: function(method, parameter, success, fail) {

return Cordova.exec(success, fail, "MyPlugin", method, parameter);

}

};

JS調(diào)用

MyIOSPlugin.nativeFunction("print",['HelloWorld'],

function(result) {

// alert("Success: \r\n"+result);

},

function(error) {

// alert("Error: \r\n"+error);

}

);

配置插件KEY-VALUE

feature name="MyPlugin"

param name="ios-package" value="CDVMyPlugin" /

/feature

新聞名稱:ios開發(fā)ats,iOS開發(fā)者賬號多少錢
文章出自:http://m.rwnh.cn/article0/dsdhhoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、云服務(wù)器、品牌網(wǎng)站制作、Google、企業(yè)建站、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
南靖县| 喀什市| 桑日县| 马龙县| 赤城县| 靖西县| 增城市| 临沧市| 中宁县| 前郭尔| 磴口县| 虞城县| 阿瓦提县| 苗栗县| 屏南县| 汉中市| 铁力市| 巩义市| 宝应县| 永州市| 神池县| 汪清县| 突泉县| 红桥区| 东乡族自治县| 龙里县| 商河县| 南召县| 仪陇县| 和政县| 东城区| 霍城县| 昌宁县| 北安市| 五大连池市| 定边县| 新邵县| 侯马市| 涞水县| 泰州市| 宝坻区|