對于這個app,因為它集成了很多電機性能調校的功能,我們并不希望競爭對手也能使用上它,所以只有公司內部人員和客戶才能得到我們的授權,去體驗和調校我們的電機。
那么,軟件授權的機制是怎樣的?
通過arc4random()%x獲取0到x-1之間的整數。
For more detail:www.49028c.com/xuling/archive/2012/02/28/2370692.html
NSMutableString requestCode = [NSMutableString stringWithCapacity : 8 ]; for(int I = 0 ; i < 8 ; i++){ int a = arc4random()%10; [requestCode appendString : [NSString stringWithFormat:@"%i",a]]; } |
把用戶是否獲得了授權的狀態保存起來,以便每次啟動的檢查。
NSUserDefaults是用來保存、恢復應用程序相關的偏好設置和配置數據的。
[[NSUserDefaults standardUserDefault] setBool: YES forKey :@"haveLicence"]; 即可設置一個key為"haveLicence"的Bool值。 [[NSUserDefaults standerdUserDefault] boolForKey : @"haveLicence"]; 即可獲取名為"haveLicence"的鍵值的Bool值。 |
Refer to :www.49028c.com/heyonggang/p/3663424.html
NSUserDefaults只是個像游戲存檔一樣的東西,游戲刪了,存檔也就跟著一塊刪了。為了讓用戶獲得永久授權,而不必在app的卸載重裝后去重新申請,要使用keychain。
Refer to :http://blog.k-res.net/archives/1081.html
apple官方所提供的KeychainItemWrapper類對ARC編譯環境并不友好。
此時,當項目為ARC編譯環境,要對某個類單獨進行非ARC編譯,可以在Build Phases – Complie Sources中雙擊相應的類文件,輸入:-fno-objc-ARC。
Refer to :www.cocoachina.com/ios/20140912/9605.html
可惜本人進行的嘗試并沒作用。至于其不起作用的原因,本人尚未查明,如果有朋友知道,希望得到告知和指導!
最后好不容易找到了一個SSKeychain類,它對蘋果安全框架API進行了簡單封裝,支持對存儲在鑰匙串中密碼、賬戶進行訪問,包括讀取、刪除和設置。
[SSKeychain setPassWord :@"haveLicence" forService :@"VID" account:@"ONE" error:nil ]; 這樣即可在服務"VID"(這里可以是app的名稱,或某種操作、任務的名稱),對賬戶:"ONE"設置password : "haveLicense"。
NSString password = [[SSKeychain passwordForService:@"VID" account :@"ONE" error : nil ];即可取出VID中賬戶為ONE的密碼。 |
在這app里面并不是要讓用戶設置password,而是應用Keychain保存的數據不隨app的刪除而丟失的特點,當用戶得到授權之后,即往賬戶"ONE"中寫入password:"haveLicence";
在app啟動時,判定password 是否等于haveLicence來進行權限控制。
以上即為我在app中進行簡單軟件授權的要點。
新聞熱點
疑難解答