Commit 0c706a2e authored by jiacheng.mao's avatar jiacheng.mao

ios new_sdk 20231127 新版本插件part2

parent 296e2688
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
uuid = "21D4CCCF-E9DF-44EC-A0C0-879C621563CC"
type = "1"
version = "2.0">
</Bucket>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>jsgzdemo_dynamic_ios.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
</dict>
</plist>
//
// AppDelegate.h
// jsgzdemo_dynamic_ios
//
// Created by 卖女孩的小火柴 on 2022/10/10.
//
#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
//
// AppDelegate.m
// jsgzdemo_dynamic_ios
//
// Created by 卖女孩的小火柴 on 2022/10/10.
//
#import "AppDelegate.h"
#import "ViewController.h"
#import <QsignNotarySDK/QsignNotaryApi.h>
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor whiteColor];
NSString* licensePath = [[NSBundle mainBundle] pathForResource:@"com.cn.weslink.qsign.jsgzdemo-license" ofType:@"qsign-ios"];
/*
参数1:production 是否是生产环境,YES:生产服务器,NO:测试服务器
参数2:licensepath 授权文件路径,license是根据bundleid和sdktag生成,我们提供
参数3: sdktag 应用标识 我们提供
参数4:active 是否激活,默认true
*/
//result==1初始化成功
int result=[[QsignNotaryApi sharedInstance] initQsignWithPath:NO licensepath:licensePath sdktag:@"jsgz" active:true];
ViewController *testController = [[ViewController alloc] init];
self.window.rootViewController = testController;
[self.window makeKeyAndVisible];
return YES;
}
@end
{
"images" : [
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "20x20"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "20x20"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "29x29"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "29x29"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "40x40"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "40x40"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "60x60"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "60x60"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "20x20"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "20x20"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "29x29"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "29x29"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "40x40"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "40x40"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "76x76"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "76x76"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "83.5x83.5"
},
{
"idiom" : "ios-marketing",
"scale" : "1x",
"size" : "1024x1024"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" xcode11CocoaTouchSystemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
</document>
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="tne-QT-ifu">
<objects>
<viewController id="BYZ-38-t0r" customClass="ViewController" customModuleProvider="" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" xcode11CocoaTouchSystemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
</objects>
</scene>
</scenes>
</document>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPhotoLibraryUsageDescription</key>
<string>亲,我们需要访问您的相册,用于提供图片素材</string>
<key>NSMicrophoneUsageDescription</key>
<string>亲,我们需要访问您的麦克风,用于录制视频</string>
<key>NSFaceIDUsageDescription</key>
<string>需要设备访问Face ID,用于校验权限</string>
<key>NSCameraUsageDescription</key>
<string>亲,我们需要访问您的相机,用于拍摄人脸、身份证等照片</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
</dict>
</plist>
//
// QsignFaceManager.h
// qsignface
//
// Created by 卖女孩的小火柴 on 2020/4/30.
// Copyright © 2020 卖女孩的小火柴. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSUInteger, QsignRemindLivenesCode) {
qRemindCodeOK = 0, //检测到活体
qRemindCodeNotRealFace,//非活体
qfacetimeout,
qfacenofind,
qfacefindhanding
};
typedef void (^LivenessCompletion) (UIImage *__nullable image,QsignRemindLivenesCode remindCode);
@interface QsignFaceManager : NSObject<NSCopying>
+(instancetype)sharedInstance;
-(int)faceSdk_init;//初始化
-(BOOL)faceCanwork;//是否初始化成功
-(void)facesdk_detectLiveness:(CIImage *)originimg completionHandler:(LivenessCompletion)completion;
-(void)resetFace;//重置
@end
NS_ASSUME_NONNULL_END
//
// QsignFaceSDK.h
// QsignFaceSDK
//
// Created by 卖女孩的小火柴 on 2020/4/30.
// Copyright © 2020 卖女孩的小火柴. All rights reserved.
//
#import <Foundation/Foundation.h>
//! Project version number for QsignFaceSDK.
FOUNDATION_EXPORT double QsignFaceSDKVersionNumber;
//! Project version string for QsignFaceSDK.
FOUNDATION_EXPORT const unsigned char QsignFaceSDKVersionString[];
#import <QsignFaceSDK/QsignFaceManager.h>
// In this header, you should import all the public headers of your framework using statements like #import <QsignFaceSDK/PublicHeader.h>
framework module QsignFaceSDK {
umbrella header "QsignFaceSDK.h"
export *
module * { export * }
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Headers/QsignFaceManager.h</key>
<data>
BrbGTY0pQ4E2I/L9JlALBC+ln40=
</data>
<key>Headers/QsignFaceSDK.h</key>
<data>
dXKD4YHfActrkeeqHTzlx8GiLMA=
</data>
<key>Info.plist</key>
<data>
gFlj1QZVewzhWaAjgaaYeX3Bug0=
</data>
<key>Modules/module.modulemap</key>
<data>
m7HSyAqBhPpVwefbBsEDq0OH2G8=
</data>
<key>qfacemodel.bundle/Root.plist</key>
<data>
jOhqEUF1/xyY+fuswiWT+ELC3dI=
</data>
<key>qfacemodel.bundle/en.lproj/Root.strings</key>
<dict>
<key>hash</key>
<data>
t4KY9Gh4uIiOv7VnHtRrKEuPRY8=
</data>
<key>optional</key>
<true/>
</dict>
<key>qfacemodel.bundle/liveness.dat</key>
<data>
sA83GQyyexPEwRVNpYRus1ioaVk=
</data>
</dict>
<key>files2</key>
<dict>
<key>Headers/QsignFaceManager.h</key>
<dict>
<key>hash</key>
<data>
BrbGTY0pQ4E2I/L9JlALBC+ln40=
</data>
<key>hash2</key>
<data>
agXKZO/LJ+1nXOlbbayAW16Yi72/4ThIfcZ53CYAosQ=
</data>
</dict>
<key>Headers/QsignFaceSDK.h</key>
<dict>
<key>hash</key>
<data>
dXKD4YHfActrkeeqHTzlx8GiLMA=
</data>
<key>hash2</key>
<data>
FgfmXPWglwBlaUE2OsAp76qywGqz3UgjP4NeF99Vv8A=
</data>
</dict>
<key>Modules/module.modulemap</key>
<dict>
<key>hash</key>
<data>
m7HSyAqBhPpVwefbBsEDq0OH2G8=
</data>
<key>hash2</key>
<data>
Kl1hpbD0hnPJNsjXO928c7mp1i1/t05lVsR4/o5Z2Mo=
</data>
</dict>
<key>qfacemodel.bundle/Root.plist</key>
<dict>
<key>hash</key>
<data>
jOhqEUF1/xyY+fuswiWT+ELC3dI=
</data>
<key>hash2</key>
<data>
m26DmegPkB5jwUJkVEtLlObYALX8He100Ny0+NNJg/g=
</data>
</dict>
<key>qfacemodel.bundle/en.lproj/Root.strings</key>
<dict>
<key>hash</key>
<data>
t4KY9Gh4uIiOv7VnHtRrKEuPRY8=
</data>
<key>hash2</key>
<data>
xUzNd7J7w99oAnMIWGe1dAGArHMuEXwQqxSziDU5vLk=
</data>
<key>optional</key>
<true/>
</dict>
<key>qfacemodel.bundle/liveness.dat</key>
<dict>
<key>hash</key>
<data>
sA83GQyyexPEwRVNpYRus1ioaVk=
</data>
<key>hash2</key>
<data>
j6ELKAO2BUH0nNrmrslAIwA4lNH8NTutNq0tuFbm2FI=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>StringsTable</key>
<string>Root</string>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>Group</string>
</dict>
<dict>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>Title</key>
<string>Name</string>
<key>Key</key>
<string>name_preference</string>
<key>DefaultValue</key>
<string></string>
<key>IsSecure</key>
<false/>
<key>KeyboardType</key>
<string>Alphabet</string>
<key>AutocapitalizationType</key>
<string>None</string>
<key>AutocorrectionType</key>
<string>No</string>
</dict>
<dict>
<key>Type</key>
<string>PSToggleSwitchSpecifier</string>
<key>Title</key>
<string>Enabled</string>
<key>Key</key>
<string>enabled_preference</string>
<key>DefaultValue</key>
<true/>
</dict>
<dict>
<key>Type</key>
<string>PSSliderSpecifier</string>
<key>Key</key>
<string>slider_preference</string>
<key>DefaultValue</key>
<real>0.5</real>
<key>MinimumValue</key>
<integer>0</integer>
<key>MaximumValue</key>
<integer>1</integer>
<key>MinimumValueImage</key>
<string></string>
<key>MaximumValueImage</key>
<string></string>
</dict>
</array>
</dict>
</plist>
B/* A single strings file, whose title is specified in your preferences schema. The strings files provide the localized content to display to the user for each of your preferences. */
//
// QsignNotaryApi.h
// sfrzmanage
//
// Created by 卖女孩的小火柴 on 2020/10/21.
// Copyright © 2020 卖女孩的小火柴. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSUInteger, QsignNotaryErrorCode) {
cancelback = 0, //中途退出
fingerError,//指纹验证错误
nouserError,//未注册
faceError,//人脸比对不通过
personregisterError,//人工审核信息提交失败,请重新注册
qrError,//二维码参数有误
parameerror,//参数错误
biznoError,//缺少业务编号
faceTimeout,//人脸超时
packageerror,//未授权的应用
permissionError,//权限缺失
nofingerError,//尚无指纹请先设置
};
typedef NS_ENUM(NSUInteger, QsignNotaryRegisterCode) {
normalRegister = 0, //正常注册
personService//人工审核
};
//其他成功回调
typedef void (^NotarySuccessCompletion) (void);
typedef void (^NotaryErrorCompletion) (QsignNotaryErrorCode errorcode,NSString* msg);
//注册成功回调
typedef void (^RegisterSuccessCompletion) (QsignNotaryRegisterCode code,NSString* idnumber,NSString* name,NSString* phone);
//激活成功回调
typedef void (^ActiveSuccessCompletion) (NSString* idnumber,NSString* name,NSString* phone);
//活体检测
typedef void (^LivenessSuccessCompletion) (UIImage *__nullable image);
//人证比对
typedef void (^NotaryComparisionSuccessCompletion) (NSString* baseimage);
@interface QsignNotaryApi : NSObject
@property(nonatomic,strong)UIWindow* __nullable newwindow;
@property(nonatomic,strong)NSString* bizno;
@property(nonatomic,assign)BOOL actived;
@property(nonatomic,copy)RegisterSuccessCompletion registersuccess;
@property(nonatomic,copy)ActiveSuccessCompletion activesuccess;
@property(nonatomic,copy)NotarySuccessCompletion notarysuccess;
@property(nonatomic,copy)NotaryErrorCompletion notaryerror;
@property(nonatomic,copy)LivenessSuccessCompletion livenesuccess;
@property(nonatomic,copy)NotaryComparisionSuccessCompletion comparisionsuccess;
+(instancetype)sharedInstance;
-(void)signOutAllview:(Boolean)leftToRight;
/*
*sdk 初始化
production 是否是生产环境,true代表是生产环境,连接的是生产服务器
licensepath 授权文件路径
sdktag 应用标识
active 是否激活
*/
-(BOOL)initQsignWithPath:(Boolean)production licensepath:(NSString*)licensepath sdktag:(NSString*)sdktag active:(BOOL)actived;//初始化
/*
*sdk 初始化
production 是否是生产环境,true代表是生产环境,连接的是生产服务器
licenseStr 授权文件字符串
sdktag 应用标识
active 是否激活
*/
-(BOOL)initQsignWithStr:(Boolean)production licenseStr:(NSString*)licensestr sdktag:(NSString*)sdktag active:(BOOL)actived;
/*
* 获取指纹打开/关闭状态
*/
-(BOOL)getFingerOpened;
/*
* 查询是否有用户 bizno业务编号,不能为空
*/
-(BOOL)haveUser:(NSString*)bizno;
/*
* 注册
bizno 业务编号,可为空;为空就默认为身份证号;name 姓名;locknamed=true,姓名不可编辑并且不能为空,=false 姓名可为空
*/
-(void)registerNotary:(NSString*)bizno name:(NSString*)name idnumber:(NSString*)idnumber lock:(BOOL)locked successHandler:(RegisterSuccessCompletion)successhandle errorHandle:(NotaryErrorCompletion)errorHandle;
/*
* 实名认证
*/
-(void)identifyNotary:(NSString*)name idnumber:(NSString*)idnumber phone:(NSString*)phone successHandler:(RegisterSuccessCompletion)successhandle errorHandle:(NotaryErrorCompletion)errorHandle;
/*
* 人脸-人证比对
姓名 身份证号
*/
-(void)qsignLivenessNotary:(NSString*)name idnumber:(NSString*)idnumber successHandler:(NotaryComparisionSuccessCompletion)successhandle errorHandle:(NotaryErrorCompletion)errorHandle;
/*
* 获取活体人脸图片
*/
-(void)livenessDetceFace:(UIViewController*)viewcontroller successHandler:(LivenessSuccessCompletion)successhandle errorHandle:(NotaryErrorCompletion)errorHandle;
/*
* 激活
bizno 业务编号,不能为空
*/
-(void)activeNotary:(NSString*)bizno successHandler:(ActiveSuccessCompletion)successhandle errorHandle:(NotaryErrorCompletion)errorHandle;
/*
* 设置手写签名
*/
-(void)setWriteImgNotary:(NSString*)bizno successHandler:(NotarySuccessCompletion)successhandle errorHandle:(NotaryErrorCompletion)errorHandle;
/*
* 打开关闭指纹
*/
-(void)setFingerNotary:(NotarySuccessCompletion)successhandle errorHandle:(NotaryErrorCompletion)errorHandle;
/*
* 忘记PIN
*/
-(void)forgerPINNotary:(NotarySuccessCompletion)successhandle errorHandle:(NotaryErrorCompletion)errorHandle;
/*
* 修改手机号
*/
-(void)modifyPhoneNotary:(NotarySuccessCompletion)successhandle errorHandle:(NotaryErrorCompletion)errorHandle;
/*
* 扫码签署
result 二维码值,规则:KZB:2:*:*:*:*:,以KZB开头,转换为数组后,数组的count==6,数组第二个元素==2
*/
-(void)scanQrSignNotary:(NSString*)result valide:(Boolean)facevalide successHandler:(NotarySuccessCompletion)successhandle errorHandle:(NotaryErrorCompletion)errorHandle;
/*
* 网页签署
*/
-(void)webSignNotary:(NSString*)signurl successHandler:(NotarySuccessCompletion)successhandle errorHandle:(NotaryErrorCompletion)errorHandle;
/*
* 扫码登录
result 二维码值
*/
-(void)scanLogin:(NSString*)result successHandler:(NotarySuccessCompletion)successhandle errorHandle:(NotaryErrorCompletion)errorHandle;
/*
* 获取http签名
*/
-(NSString*)getSignature:(NSString*)param;
/*
* 获取token
*/
-(NSString*)getToken;
@end
NS_ASSUME_NONNULL_END
//
// QsignNotarySDK.h
// QsignNotarySDK
//
// Created by 卖女孩的小火柴 on 2020/10/23.
// Copyright © 2020 卖女孩的小火柴. All rights reserved.
//
#import <Foundation/Foundation.h>
//! Project version number for QsignNotarySDK.
FOUNDATION_EXPORT double QsignNotarySDKVersionNumber;
//! Project version string for QsignNotarySDK.
FOUNDATION_EXPORT const unsigned char QsignNotarySDKVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <QsignNotarySDK/PublicHeader.h>
#import <QsignNotarySDK/QsignNotaryApi.h>
LICENSE ISSUES
==============
The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
the OpenSSL License and the original SSLeay license apply to the toolkit.
See below for the actual license texts. Actually both licenses are BSD-style
Open Source licenses. In case of any license issues related to OpenSSL
please contact openssl-core@openssl.org.
OpenSSL License
---------------
/* ====================================================================
* Copyright (c) 1998-2008 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. All advertising materials mentioning features or use of this
* software must display the following acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* openssl-core@openssl.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
Original SSLeay License
-----------------------
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
* This package is an SSL implementation written
* by Eric Young (eay@cryptsoft.com).
* The implementation was written so as to conform with Netscapes SSL.
*
* This library is free for commercial and non-commercial use as long as
* the following conditions are aheared to. The following conditions
* apply to all code found in this distribution, be it the RC4, RSA,
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
* included with this distribution is covered by the same copyright terms
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
*
* Copyright remains Eric Young's, and as such any Copyright notices in
* the code are not to be removed.
* If this package is used in a product, Eric Young should be given attribution
* as the author of the parts of the library used.
* This can be in the form of a textual message at program startup or
* in documentation (online or textual) provided with the package.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* "This product includes cryptographic software written by
* Eric Young (eay@cryptsoft.com)"
* The word 'cryptographic' can be left out if the rouines from the library
* being used are not cryptographic related :-).
* 4. If you include any Windows specific code (or a derivative thereof) from
* the apps directory (application code) you must include an acknowledgement:
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
*
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* The licence and distribution terms for any publically available version or
* derivative of this code cannot be changed. i.e. this code cannot simply be
* copied and put under another distribution licence
* [including the GNU Public Licence.]
*/
framework module QsignNotarySDK {
umbrella header "QsignNotarySDK.h"
export *
module * { export * }
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>StringsTable</key>
<string>Root</string>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>Group</string>
</dict>
<dict>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>Title</key>
<string>Name</string>
<key>Key</key>
<string>name_preference</string>
<key>DefaultValue</key>
<string></string>
<key>IsSecure</key>
<false/>
<key>KeyboardType</key>
<string>Alphabet</string>
<key>AutocapitalizationType</key>
<string>None</string>
<key>AutocorrectionType</key>
<string>No</string>
</dict>
<dict>
<key>Type</key>
<string>PSToggleSwitchSpecifier</string>
<key>Title</key>
<string>Enabled</string>
<key>Key</key>
<string>enabled_preference</string>
<key>DefaultValue</key>
<true/>
</dict>
<dict>
<key>Type</key>
<string>PSSliderSpecifier</string>
<key>Key</key>
<string>slider_preference</string>
<key>DefaultValue</key>
<real>0.5</real>
<key>MinimumValue</key>
<integer>0</integer>
<key>MaximumValue</key>
<integer>1</integer>
<key>MinimumValueImage</key>
<string></string>
<key>MaximumValueImage</key>
<string></string>
</dict>
</array>
</dict>
</plist>
B/* A single strings file, whose title is specified in your preferences schema. The strings files provide the localized content to display to the user for each of your preferences. */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment