★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-pjagaual-mb.html
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html
目錄:[Swift]通天遁地Swiftgit
本文將演示如何判斷程序是否運行在越獄設備上。github
假如產品使用了內購功能,當運行在越獄設備時,可採起一些防護和安全提示措施。swift
在項目導航區,打開視圖控制器的代碼文件【ViewController.swift】數組
越獄設備因爲沒有沙盒做爲保護,黑客能夠對系統進行任意的修改,安全
蘋果返回的內購付款憑證有多是虛假的,因此須要進行越獄設備的檢測。微信
1 import UIKit 2 3 class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view, typically from a nib. 8 //在視圖加載完成的方法中,經過一個判斷語句, 9 //判斷設備是否越獄。 10 if isJailBroken() 11 { 12 //當設備處於越獄狀態時,在控制檯輸出相應的提示語句。 13 print("Your device has been jailbroken, please pay attention to the security of payment.") 14 } 15 else 16 { 17 print("Your device has not been jailbroken.") 18 } 19 } 20 21 //添加一個方法,用來檢測設備是否越獄。 22 //並在方法的末尾,返回一個布爾結果。 23 func isJailBroken() -> Bool 24 { 25 //越獄設備一般會自動在應用程序目錄下, 26 //安裝一些特殊的軟件。 27 //能夠判斷設備中是否包含這些程序, 28 //來判斷該設備是否處於越獄狀態。 29 let apps = ["/Applications/Cydia.app", 30 "/Applications/limera1n.app", 31 "/Applications/greenpois0n.app", 32 "/Applications/blackra1n.app", 33 "/Applications/blacksn0w.app", 34 "/Applications/redsn0w.app", 35 "/Applications/Absinthe.app"] 36 37 //添加一個循環語句,用來遍歷應用程序的數組。 38 for app in apps 39 { 40 //經過文件管理器,判斷在指定的目錄下, 41 //是否存在對應的應用程序。 42 if(FileManager.default.fileExists(atPath: app)) 43 { 44 //若是存在的話,就表示當前設備屬於越獄設備 45 return true 46 } 47 } 48 //若是找不到這些應用程序,則表示當前設備處於非越獄設備。 49 return false 50 } 51 52 override func didReceiveMemoryWarning() { 53 super.didReceiveMemoryWarning() 54 // Dispose of any resources that can be recreated. 55 } 56 }