[KeychainTouchID] Remove classic version of sample

This commit is contained in:
olegoid 2014-09-08 22:05:00 +04:00
Родитель 4ddf8bf18e
Коммит 991ca3e6fe
105 изменённых файлов: 0 добавлений и 417217 удалений

Просмотреть файл

@ -1,32 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeychainTouchID", "KeychainTouchID\KeychainTouchID.csproj", "{5E798FAF-8BEE-4DE7-BED0-16B6701804F4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|iPhoneSimulator = Debug|iPhoneSimulator
Release|iPhoneSimulator = Release|iPhoneSimulator
Debug|iPhone = Debug|iPhone
Release|iPhone = Release|iPhone
Ad-Hoc|iPhone = Ad-Hoc|iPhone
AppStore|iPhone = AppStore|iPhone
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5E798FAF-8BEE-4DE7-BED0-16B6701804F4}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone
{5E798FAF-8BEE-4DE7-BED0-16B6701804F4}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone
{5E798FAF-8BEE-4DE7-BED0-16B6701804F4}.AppStore|iPhone.ActiveCfg = AppStore|iPhone
{5E798FAF-8BEE-4DE7-BED0-16B6701804F4}.AppStore|iPhone.Build.0 = AppStore|iPhone
{5E798FAF-8BEE-4DE7-BED0-16B6701804F4}.Debug|iPhone.ActiveCfg = Debug|iPhone
{5E798FAF-8BEE-4DE7-BED0-16B6701804F4}.Debug|iPhone.Build.0 = Debug|iPhone
{5E798FAF-8BEE-4DE7-BED0-16B6701804F4}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
{5E798FAF-8BEE-4DE7-BED0-16B6701804F4}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
{5E798FAF-8BEE-4DE7-BED0-16B6701804F4}.Release|iPhone.ActiveCfg = Release|iPhone
{5E798FAF-8BEE-4DE7-BED0-16B6701804F4}.Release|iPhone.Build.0 = Release|iPhone
{5E798FAF-8BEE-4DE7-BED0-16B6701804F4}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
{5E798FAF-8BEE-4DE7-BED0-16B6701804F4}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
StartupItem = KeychainTouchID\KeychainTouchID.csproj
EndGlobalSection
EndGlobal

Просмотреть файл

@ -1,46 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
namespace KeychainTouchID
{
// The UIApplicationDelegate for the application. This class is responsible for launching the
// User Interface of the application, as well as listening (and optionally responding) to
// application events from iOS.
[Register ("AppDelegate")]
public partial class AppDelegate : UIApplicationDelegate
{
// class-level declarations
public override UIWindow Window {
get;
set;
}
// This method is invoked when the application is about to move from active to inactive state.
// OpenGL applications should use this method to pause.
public override void OnResignActivation (UIApplication application)
{
}
// This method should be used to release shared resources and it should store the application state.
// If your application supports background exection this method is called instead of WillTerminate
// when the user quits.
public override void DidEnterBackground (UIApplication application)
{
}
// This method is called as part of the transiton from background to active state.
public override void WillEnterForeground (UIApplication application)
{
}
// This method is called when the application is about to terminate. Save data, if needed.
public override void WillTerminate (UIApplication application)
{
}
}
}

Просмотреть файл

@ -1,79 +0,0 @@
using System;
using System.Collections.Generic;
using MonoTouch.CoreFoundation;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
namespace KeychainTouchID
{
[Register ("BasicTestViewController")]
public class BasicTestViewController : UIViewController, IUITableViewDelegate, IUITableViewDataSource
{
public List<Test> Tests { get; set; }
public BasicTestViewController (IntPtr handle) : base (handle)
{
}
public void PrintResult (UITextView textView, string message)
{
DispatchQueue.MainQueue.DispatchAsync (() => {
textView.Text = string.Format ("{0}\n{1}", textView.Text, message);
textView.ScrollRangeToVisible (new NSRange (0, textView.Text.Length));
});
}
[Export ("numberOfSectionsInTableView:")]
public int NumberOfSections (UITableView tableView)
{
return 1;
}
[Export ("tableView:numberOfRowsInSection:")]
public int RowsInSection (UITableView tableview, int section)
{
return Tests.Count;
}
[Export ("tableView:titleForHeaderInSection:")]
public string TitleForHeader (UITableView tableView, int section)
{
return Text.SELECT_TEST;
}
[Export ("tableView:didSelectRowAtIndexPath:")]
public void RowSelected (UITableView tableView, NSIndexPath indexPath)
{
var test = GetTestForIndexPath (indexPath);
if (test.Method != null)
test.Method ();
tableView.DeselectRow (indexPath, true);
}
[Export ("tableView:cellForRowAtIndexPath:")]
public UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath)
{
string cellIdentifier = Text.TEST_CELL;
var cell = tableView.DequeueReusableCell (cellIdentifier);
cell = cell ?? new UITableViewCell (UITableViewCellStyle.Subtitle, cellIdentifier);
var test = GetTestForIndexPath (indexPath);
cell.TextLabel.Text = test.Name;
cell.DetailTextLabel.Text = test.Details;
return cell;
}
private Test GetTestForIndexPath (NSIndexPath indexPath)
{
if (indexPath.Section > 0 || indexPath.Row >= Tests.Count)
return null;
return Tests [indexPath.Row];
}
}
}

Просмотреть файл

@ -1,6 +0,0 @@
<?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>
</dict>
</plist>

Просмотреть файл

@ -1,34 +0,0 @@
<?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>CFBundleDisplayName</key>
<string>KeychainTouchID</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>MinimumOSVersion</key>
<string>8.0</string>
<key>UIDeviceFamily</key>
<array>
<integer>1</integer>
</array>
<key>UIMainStoryboardFile</key>
<string>KeychainStoryboard</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>XSAppIconAssets</key>
<string>Resources/Images.xcassets/AppIcons.appiconset</string>
<key>XSLaunchImageAssets</key>
<string>Resources/Images.xcassets/LaunchImage.launchimage</string>
</dict>
</plist>

Просмотреть файл

@ -1,178 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6206.8" systemVersion="13E28" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="Tqm-Tg-bwS">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7026.1"/>
</dependencies>
<scenes>
<!--LocalAuthentntication-->
<scene sceneID="n4O-bw-ng9">
<objects>
<viewController id="8el-om-zeM" customClass="LocalAuthenticationTestsViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="I21-6l-gQ2"/>
<viewControllerLayoutGuide type="bottom" id="y8U-Ye-uEY"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="Dq3-FA-Izc">
<rect key="frame" x="0.0" y="64" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" translatesAutoresizingMaskIntoConstraints="NO" id="sIQ-5m-lPO">
<rect key="frame" x="0.0" y="69" width="320" height="100"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" priority="750" constant="100" id="cRG-ra-0rx"/>
</constraints>
<sections/>
</tableView>
<navigationBar contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Iua-bQ-M6P">
<rect key="frame" x="0.0" y="25" width="320" height="44"/>
<items>
<navigationItem title="LocalAuthentication" id="3pX-In-XKe"/>
</items>
</navigationBar>
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" editable="NO" selectable="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fMI-gg-itC">
<rect key="frame" x="20" y="184" width="280" height="332"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<textInputTraits key="textInputTraits"/>
</textView>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Output:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="myc-He-HMy">
<rect key="frame" x="20" y="169" width="42" height="15"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="fMI-gg-itC" firstAttribute="top" secondItem="myc-He-HMy" secondAttribute="bottom" id="0BY-YZ-J5B"/>
<constraint firstItem="fMI-gg-itC" firstAttribute="leading" secondItem="Dq3-FA-Izc" secondAttribute="leading" constant="20" id="1pa-XX-whl"/>
<constraint firstItem="y8U-Ye-uEY" firstAttribute="top" secondItem="fMI-gg-itC" secondAttribute="bottom" constant="3" id="2Fb-qM-gLi"/>
<constraint firstItem="sIQ-5m-lPO" firstAttribute="leading" secondItem="Dq3-FA-Izc" secondAttribute="leading" id="L4x-sg-uAc"/>
<constraint firstItem="sIQ-5m-lPO" firstAttribute="top" secondItem="Iua-bQ-M6P" secondAttribute="bottom" id="UsD-he-qfo"/>
<constraint firstItem="Iua-bQ-M6P" firstAttribute="leading" secondItem="Dq3-FA-Izc" secondAttribute="leading" id="c6z-mc-OgL"/>
<constraint firstAttribute="trailing" secondItem="Iua-bQ-M6P" secondAttribute="trailing" id="hYp-Ba-BGq"/>
<constraint firstItem="myc-He-HMy" firstAttribute="top" secondItem="sIQ-5m-lPO" secondAttribute="bottom" id="mlg-cB-dZy"/>
<constraint firstAttribute="trailing" secondItem="fMI-gg-itC" secondAttribute="trailing" constant="20" id="p5W-HO-IwZ"/>
<constraint firstItem="Iua-bQ-M6P" firstAttribute="top" secondItem="I21-6l-gQ2" secondAttribute="bottom" constant="5" id="rpA-Cc-6dB"/>
<constraint firstItem="myc-He-HMy" firstAttribute="leading" secondItem="Dq3-FA-Izc" secondAttribute="leading" constant="20" id="tdP-GF-vCc"/>
<constraint firstAttribute="trailing" secondItem="sIQ-5m-lPO" secondAttribute="trailing" id="vPp-ei-Aat"/>
</constraints>
</view>
<tabBarItem key="tabBarItem" title="LocalAuthentntication" image="auth.png" id="1CJ-bf-evd"/>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<size key="freeformSize" width="320" height="568"/>
<connections>
<outlet property="dynamicViewHeight" destination="cRG-ra-0rx" id="sMZ-t2-yzg"/>
<outlet property="tableView" destination="sIQ-5m-lPO" id="qdh-a2-HoC"/>
<outlet property="textView" destination="fMI-gg-itC" id="eHt-KQ-L2d"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="mJx-PI-YyF" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="935" y="886"/>
</scene>
<!--Keychain-->
<scene sceneID="Fkm-7C-Ch8">
<objects>
<viewController id="m4l-zg-SZc" customClass="KeychainTestsViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Bms-7n-SBX"/>
<viewControllerLayoutGuide type="bottom" id="9at-Sb-rDc"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="htE-wl-7S5">
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" translatesAutoresizingMaskIntoConstraints="NO" id="Sir-35-fvQ">
<rect key="frame" x="0.0" y="64" width="320" height="100"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" priority="750" constant="100" id="Y3h-sS-XLT"/>
</constraints>
<sections/>
</tableView>
<navigationBar contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5sG-ta-aqE">
<rect key="frame" x="0.0" y="20" width="320" height="44"/>
<items>
<navigationItem title="Keychain" id="nYn-iN-8ec"/>
</items>
</navigationBar>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Output:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uHD-Ho-fha">
<rect key="frame" x="20" y="164" width="42" height="15"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" editable="NO" selectable="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YCF-p0-5d8">
<rect key="frame" x="20" y="179" width="280" height="252"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<textInputTraits key="textInputTraits"/>
</textView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="YCF-p0-5d8" firstAttribute="leading" secondItem="htE-wl-7S5" secondAttribute="leading" constant="20" id="99o-g4-dgt"/>
<constraint firstItem="9at-Sb-rDc" firstAttribute="top" secondItem="YCF-p0-5d8" secondAttribute="bottom" id="AAg-UV-arV"/>
<constraint firstItem="Sir-35-fvQ" firstAttribute="top" secondItem="5sG-ta-aqE" secondAttribute="bottom" id="NbO-Ax-mJc"/>
<constraint firstAttribute="trailing" secondItem="Sir-35-fvQ" secondAttribute="trailing" id="THQ-9E-fRP"/>
<constraint firstAttribute="trailing" secondItem="YCF-p0-5d8" secondAttribute="trailing" constant="20" id="ToL-ej-naD"/>
<constraint firstItem="uHD-Ho-fha" firstAttribute="top" secondItem="Sir-35-fvQ" secondAttribute="bottom" id="U1r-Kh-Iod"/>
<constraint firstAttribute="trailing" secondItem="5sG-ta-aqE" secondAttribute="trailing" id="U5Y-v9-yac"/>
<constraint firstItem="Sir-35-fvQ" firstAttribute="leading" secondItem="htE-wl-7S5" secondAttribute="leading" id="V8O-eK-hgN"/>
<constraint firstItem="5sG-ta-aqE" firstAttribute="leading" secondItem="htE-wl-7S5" secondAttribute="leading" id="WrH-qG-jrq"/>
<constraint firstItem="uHD-Ho-fha" firstAttribute="leading" secondItem="htE-wl-7S5" secondAttribute="leading" constant="20" id="ZPc-pb-rBN"/>
<constraint firstItem="5sG-ta-aqE" firstAttribute="top" secondItem="Bms-7n-SBX" secondAttribute="bottom" id="edi-Db-jqU"/>
<constraint firstItem="5sG-ta-aqE" firstAttribute="top" secondItem="Bms-7n-SBX" secondAttribute="bottom" id="lmj-J6-oDB"/>
<constraint firstAttribute="trailing" secondItem="Sir-35-fvQ" secondAttribute="trailing" id="nTe-Sr-o37"/>
<constraint firstItem="Sir-35-fvQ" firstAttribute="top" secondItem="5sG-ta-aqE" secondAttribute="bottom" id="pUe-8P-std"/>
<constraint firstItem="YCF-p0-5d8" firstAttribute="top" secondItem="uHD-Ho-fha" secondAttribute="bottom" id="ppI-Dk-opo"/>
<constraint firstItem="Sir-35-fvQ" firstAttribute="leading" secondItem="htE-wl-7S5" secondAttribute="leading" id="vn9-sg-qB8"/>
</constraints>
</view>
<tabBarItem key="tabBarItem" title="Keychain" image="keychain.png" id="Gvt-51-mTP"/>
<connections>
<outlet property="dynamicViewHeight" destination="Y3h-sS-XLT" id="F8A-qM-rpm"/>
<outlet property="tableView" destination="Sir-35-fvQ" id="bZy-ZY-5ze"/>
<outlet property="textView" destination="YCF-p0-5d8" id="9SY-GP-iKc"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="9lR-yR-lEf" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="935" y="233"/>
</scene>
<!--Tab Bar Controller-->
<scene sceneID="WSP-0d-aFQ">
<objects>
<tabBarController id="Tqm-Tg-bwS" sceneMemberID="viewController">
<nil key="simulatedTopBarMetrics"/>
<nil key="simulatedBottomBarMetrics"/>
<tabBar key="tabBar" contentMode="scaleToFill" id="PLy-7z-N7R">
<rect key="frame" x="0.0" y="0.0" width="320" height="49"/>
<autoresizingMask key="autoresizingMask"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
</tabBar>
<connections>
<segue destination="m4l-zg-SZc" kind="relationship" relationship="viewControllers" id="Ehg-np-ur1"/>
<segue destination="8el-om-zeM" kind="relationship" relationship="viewControllers" id="5Yi-7x-VQs"/>
</connections>
</tabBarController>
<placeholder placeholderIdentifier="IBFirstResponder" id="5P7-NL-pyr" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="401" y="560"/>
</scene>
</scenes>
<resources>
<image name="auth.png" width="30" height="30"/>
<image name="keychain.png" width="30" height="30"/>
</resources>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
<simulatedStatusBarMetrics key="statusBar"/>
<simulatedOrientationMetrics key="orientation"/>
<simulatedScreenMetrics key="destination">
<size key="portraitSize" width="320" height="480"/>
<size key="landscapeSize" width="480" height="320"/>
</simulatedScreenMetrics>
</simulatedMetricsContainer>
</document>

Просмотреть файл

@ -1,124 +0,0 @@
using System;
using System.Collections.Generic;
using MonoTouch.CoreFoundation;
using MonoTouch.Foundation;
using MonoTouch.ObjCRuntime;
using MonoTouch.Security;
using MonoTouch.UIKit;
using System.Text;
namespace KeychainTouchID
{
public partial class KeychainTestsViewController : BasicTestViewController
{
public KeychainTestsViewController (IntPtr handle) : base (handle)
{
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
Tests = new List<Test> {
new Test { Name = Text.ADD_ITEM, Details = Text.ADD_SEC_ITEM, Method = AddItemAsync },
new Test { Name = Text.QUERY_FOR_ITEM, Details = Text.COPY_SEC_ITEM, Method = CopyMatchingAsync },
new Test { Name = Text.UPDATE_ITEM, Details = Text.UPDATE_SEC_ITEM, Method = UpdateItemAsync },
new Test { Name = Text.DELETE_ITEM, Details = Text.DELETE_SEC_ITEM, Method = DeleteItemAsync }
};
tableView.WeakDataSource = this;
tableView.WeakDelegate = this;
}
public override void ViewWillAppear (bool animated)
{
base.ViewWillAppear (animated);
textView.ScrollRangeToVisible (new NSRange (0, textView.Text.Length));
}
public override void ViewDidLayoutSubviews ()
{
float height = Math.Min (View.Bounds.Size.Height, tableView.ContentSize.Height);
dynamicViewHeight.Constant = height;
View.LayoutIfNeeded ();
}
private void AddItemAsync ()
{
var secObject = new SecAccessControl (SecAccessible.WhenPasscodeSetThisDeviceOnly, SecAccessControlCreateFlags.UserPresence);
if (secObject == null) {
string message = Text.CANT_CREATE_SEC_OBJ;
Console.WriteLine (message);
textView.Text += string.Format (Text.SEC_ITEM_ADD_CAN_CREATE_OBJECT, message);
}
var securityRecord = new SecRecord (SecKind.GenericPassword) {
Service = Text.SERVICE_NAME,
ValueData = new NSString (Text.SECRET_PASSWORD_TEXT).DataUsingEncoding (NSStringEncoding.UTF8),
UseNoAuthenticationUI = true,
AccessControl = secObject
};
DispatchQueue.MainQueue.DispatchAsync (() => {
SecStatusCode status = SecKeyChain.Add (securityRecord);
var message = string.Format (Text.SEC_ITEM_ADD_STATUS, status.GetDescription ());
PrintResult (textView, message);
});
}
private void CopyMatchingAsync ()
{
var securityRecord = new SecRecord (SecKind.GenericPassword) {
Service = Text.SERVICE_NAME,
UseOperationPrompt = Text.AUTHENTICATE_TO_ACCESS_SERVICE_PASSWORD
};
DispatchQueue.MainQueue.DispatchAsync (() => {
SecStatusCode status;
NSData resultData = SecKeyChain.QueryAsData (securityRecord, false, out status);
var result = resultData != null ? new NSString (resultData, NSStringEncoding.UTF8) : Text.USER_CANCELED_ACTION;
var sb = new StringBuilder ();
sb.AppendFormat (Text.SEC_ITEM_COPY_MATCHING_STATUS, status.GetDescription ());
sb.AppendFormat (Text.RESULT, result);
PrintResult (textView, sb.ToString ());
});
}
private void UpdateItemAsync ()
{
var securityRecord = new SecRecord (SecKind.GenericPassword) {
Service = Text.SERVICE_NAME,
UseOperationPrompt = Text.AUTH_TO_UPDATE
};
var recordUpdates = new SecRecord (SecKind.Identity) {
ValueData = new NSString (Text.UPDATED_SECRET_PASSWORD_TEXT).DataUsingEncoding (NSStringEncoding.UTF8),
};
DispatchQueue.MainQueue.DispatchAsync (() => {
var status = SecKeyChain.Update (securityRecord, recordUpdates);
var message = string.Format (Text.SEC_ITEM_UPDATE_STATUS, status.GetDescription ());
PrintResult (textView, message);
});
}
private void DeleteItemAsync ()
{
var securityRecord = new SecRecord (SecKind.GenericPassword) {
Service = Text.SERVICE_NAME
};
DispatchQueue.MainQueue.DispatchAsync (() => {
var status = SecKeyChain.Remove (securityRecord);
var message = string.Format (Text.SEC_ITEM_DELETE_STATUS, status.GetDescription ());
PrintResult (textView, message);
});
}
}
}

Просмотреть файл

@ -1,42 +0,0 @@
// WARNING
//
// This file has been generated automatically by Xamarin Studio to store outlets and
// actions made in the UI designer. If it is removed, they will be lost.
// Manual changes to this file may not be handled correctly.
//
using MonoTouch.Foundation;
using System.CodeDom.Compiler;
namespace KeychainTouchID
{
[Register ("KeychainTestsViewController")]
partial class KeychainTestsViewController
{
[Outlet]
MonoTouch.UIKit.NSLayoutConstraint dynamicViewHeight { get; set; }
[Outlet]
MonoTouch.UIKit.UITableView tableView { get; set; }
[Outlet]
MonoTouch.UIKit.UITextView textView { get; set; }
void ReleaseDesignerOutlets ()
{
if (tableView != null) {
tableView.Dispose ();
tableView = null;
}
if (textView != null) {
textView.Dispose ();
textView = null;
}
if (dynamicViewHeight != null) {
dynamicViewHeight.Dispose ();
dynamicViewHeight = null;
}
}
}
}

Просмотреть файл

@ -1,128 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
<ProjectTypeGuids>{6BC8ED88-2882-458C-8E55-DFD12B67127B};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<ProjectGuid>{5E798FAF-8BEE-4DE7-BED0-16B6701804F4}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>KeychainTouchID</RootNamespace>
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
<AssemblyName>KeychainTouchID</AssemblyName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\iPhoneSimulator\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<MtouchLink>None</MtouchLink>
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
<MtouchDebug>true</MtouchDebug>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\iPhoneSimulator\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<MtouchLink>None</MtouchLink>
<ConsolePause>false</ConsolePause>
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\iPhone\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
<MtouchDebug>true</MtouchDebug>
<CodesignKey>iPhone Developer</CodesignKey>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\iPhone\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
<ConsolePause>false</ConsolePause>
<CodesignKey>iPhone Developer</CodesignKey>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Ad-Hoc|iPhone' ">
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\iPhone\Ad-Hoc</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
<BuildIpa>true</BuildIpa>
<CodesignProvision>Automatic:AdHoc</CodesignProvision>
<CodesignKey>iPhone Distribution</CodesignKey>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'AppStore|iPhone' ">
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\iPhone\AppStore</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodesignKey>iPhone Distribution</CodesignKey>
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
<ConsolePause>false</ConsolePause>
<CodesignProvision>Automatic:AppStore</CodesignProvision>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="monotouch" />
</ItemGroup>
<ItemGroup>
<BundleResource Include="Resources\auth%402x.png" />
<BundleResource Include="Resources\keychain%402x.png" />
</ItemGroup>
<ItemGroup>
<None Include="Info.plist" />
<None Include="Entitlements.plist" />
</ItemGroup>
<ItemGroup>
<Compile Include="Main.cs" />
<Compile Include="AppDelegate.cs" />
<Compile Include="LocalAuthenticationTestsViewController.cs" />
<Compile Include="LocalAuthenticationTestsViewController.designer.cs">
<DependentUpon>LocalAuthenticationTestsViewController.cs</DependentUpon>
</Compile>
<Compile Include="KeychainTestsViewController.cs" />
<Compile Include="KeychainTestsViewController.designer.cs">
<DependentUpon>KeychainTestsViewController.cs</DependentUpon>
</Compile>
<Compile Include="BasicTestViewController.cs" />
<Compile Include="Test.cs" />
<Compile Include="Text.cs" />
<Compile Include="SecStatusCodeExtensions.cs" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.MonoTouch.CSharp.targets" />
<ItemGroup>
<InterfaceDefinition Include="KeychainStoryboard.storyboard" />
</ItemGroup>
<ItemGroup>
<ImageAsset Include="Resources\Images.xcassets\AppIcons.appiconset\Contents.json" />
<ImageAsset Include="Resources\Images.xcassets\LaunchImage.launchimage\Contents.json" />
<ImageAsset Include="Resources\Images.xcassets\LaunchImage.launchimage\Default-568h%402x.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcons.appiconset\CoreAuthenticationKeychain-29-1.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcons.appiconset\CoreAuthenticationKeychain-58-1.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcons.appiconset\CoreAuthenticationKeychain-80-1.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcons.appiconset\CoreAuthenticationKeychain-120.png" />
<ImageAsset Include="Resources\Images.xcassets\AppIcons.appiconset\CoreAuthenticationKeychain-76.png" />
<ImageAsset Include="Resources\Images.xcassets\LaunchImage.launchimage\Default%402x.png" />
<ImageAsset Include="Resources\Images.xcassets\LaunchImage.launchimage\Default.png" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,65 +0,0 @@
using System;
using System.Collections.Generic;
using MonoTouch.Foundation;
using MonoTouch.LocalAuthentication;
using MonoTouch.UIKit;
namespace KeychainTouchID
{
public partial class LocalAuthenticationTestsViewController : BasicTestViewController
{
public LocalAuthenticationTestsViewController (IntPtr handle) : base (handle)
{
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
Tests = new List<Test> {
new Test { Name = Text.TOUCH_ID_PREFLIGHT, Details = Text.USING_CAN_EVALUATE_POLICY, Method = CanEvaluatePolicy },
new Test { Name = Text.TOUCH_ID, Details = Text.USING_EVALUATE_POLICY, Method = EvaluatePolicy }
};
tableView.WeakDataSource = this;
tableView.WeakDelegate = this;
}
public override void ViewWillAppear (bool animated)
{
base.ViewWillAppear (animated);
textView.ScrollRangeToVisible (new NSRange (0, textView.Text.Length));
}
public override void ViewDidLayoutSubviews ()
{
float height = Math.Min (View.Bounds.Size.Height, tableView.ContentSize.Height);
dynamicViewHeight.Constant = height;
View.LayoutIfNeeded ();
}
private void CanEvaluatePolicy ()
{
var context = new LAContext ();
string message = string.Empty;
NSError error;
bool success = context.CanEvaluatePolicy (LAPolicy.DeviceOwnerAuthenticationWithBiometrics, out error);
message = success ? Text.TOUCH_ID_IS_AVAILABLE : Text.TOUCH_ID_IS_NOT_AVAILABLE;
PrintResult (textView, message);
}
private void EvaluatePolicy ()
{
var context = new LAContext ();
context.EvaluatePolicy (LAPolicy.DeviceOwnerAuthenticationWithBiometrics, Text.UNLOCK_ACCESS_TO_LOCKED_FATURE, HandleLAContextReplyHandler);
}
private void HandleLAContextReplyHandler (bool success, NSError error)
{
string message = success ? Text.EVALUATE_POLICY_SUCCESS : string.Format (Text.EVALUATE_POLICY_WITH_ERROR, error.LocalizedDescription);
PrintResult (textView, message);
}
}
}

Просмотреть файл

@ -1,42 +0,0 @@
// WARNING
//
// This file has been generated automatically by Xamarin Studio to store outlets and
// actions made in the UI designer. If it is removed, they will be lost.
// Manual changes to this file may not be handled correctly.
//
using MonoTouch.Foundation;
using System.CodeDom.Compiler;
namespace KeychainTouchID
{
[Register ("LocalAuthenticationTestsViewController")]
partial class LocalAuthenticationTestsViewController
{
[Outlet]
MonoTouch.UIKit.NSLayoutConstraint dynamicViewHeight { get; set; }
[Outlet]
MonoTouch.UIKit.UITableView tableView { get; set; }
[Outlet]
MonoTouch.UIKit.UITextView textView { get; set; }
void ReleaseDesignerOutlets ()
{
if (tableView != null) {
tableView.Dispose ();
tableView = null;
}
if (textView != null) {
textView.Dispose ();
textView = null;
}
if (dynamicViewHeight != null) {
dynamicViewHeight.Dispose ();
dynamicViewHeight = null;
}
}
}
}

Просмотреть файл

@ -1,20 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
namespace KeychainTouchID
{
public class Application
{
// This is the main entry point of the application.
static void Main (string[] args)
{
// if you want to use a different Application Delegate class from "AppDelegate"
// you can specify it here.
UIApplication.Main (args, null, "AppDelegate");
}
}
}

Просмотреть файл

@ -1,92 +0,0 @@
{
"images": [
{
"filename": "CoreAuthenticationKeychain-29-1.png",
"size": "29x29",
"scale": "1x",
"idiom": "iphone"
},
{
"filename": "CoreAuthenticationKeychain-58-1.png",
"size": "29x29",
"scale": "2x",
"idiom": "iphone"
},
{
"filename": "CoreAuthenticationKeychain-80-1.png",
"size": "40x40",
"scale": "2x",
"idiom": "iphone"
},
{
"size": "57x57",
"scale": "1x",
"idiom": "iphone"
},
{
"size": "57x57",
"scale": "2x",
"idiom": "iphone"
},
{
"filename": "CoreAuthenticationKeychain-120.png",
"size": "60x60",
"scale": "2x",
"idiom": "iphone"
},
{
"size": "29x29",
"scale": "1x",
"idiom": "ipad"
},
{
"size": "29x29",
"scale": "2x",
"idiom": "ipad"
},
{
"size": "40x40",
"scale": "1x",
"idiom": "ipad"
},
{
"size": "40x40",
"scale": "2x",
"idiom": "ipad"
},
{
"size": "50x50",
"scale": "1x",
"idiom": "ipad"
},
{
"size": "50x50",
"scale": "2x",
"idiom": "ipad"
},
{
"size": "72x72",
"scale": "1x",
"idiom": "ipad"
},
{
"size": "72x72",
"scale": "2x",
"idiom": "ipad"
},
{
"size": "76x76",
"scale": "1x",
"idiom": "ipad"
},
{
"size": "76x76",
"scale": "2x",
"idiom": "ipad"
}
],
"info": {
"version": 1,
"author": "xcode"
}
}

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 19 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 2.5 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 7.4 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 11 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 11 KiB

Просмотреть файл

@ -1,140 +0,0 @@
{
"images": [
{
"minimum-system-version": "7.0",
"orientation": "portrait",
"extent": "full-screen",
"filename": "Default@2x.png",
"size": "640x960",
"scale": "2x",
"idiom": "iphone"
},
{
"minimum-system-version": "7.0",
"orientation": "portrait",
"extent": "full-screen",
"filename": "Default-568h@2x.png",
"size": "640x1136",
"subtype": "retina4",
"scale": "2x",
"idiom": "iphone"
},
{
"minimum-system-version": "7.0",
"orientation": "portrait",
"extent": "full-screen",
"size": "768x1024",
"scale": "1x",
"idiom": "ipad"
},
{
"minimum-system-version": "7.0",
"orientation": "portrait",
"extent": "full-screen",
"size": "1536x2048",
"scale": "2x",
"idiom": "ipad"
},
{
"minimum-system-version": "7.0",
"orientation": "landscape",
"extent": "full-screen",
"size": "1024x768",
"scale": "1x",
"idiom": "ipad"
},
{
"minimum-system-version": "7.0",
"orientation": "landscape",
"extent": "full-screen",
"size": "2048x1536",
"scale": "2x",
"idiom": "ipad"
},
{
"orientation": "portrait",
"extent": "full-screen",
"filename": "Default.png",
"size": "320x480",
"scale": "1x",
"idiom": "iphone"
},
{
"orientation": "portrait",
"extent": "full-screen",
"filename": "Default@2x.png",
"size": "640x960",
"scale": "2x",
"idiom": "iphone"
},
{
"orientation": "portrait",
"extent": "full-screen",
"filename": "Default-568h@2x.png",
"size": "640x1136",
"subtype": "retina4",
"scale": "2x",
"idiom": "iphone"
},
{
"orientation": "portrait",
"extent": "full-screen",
"size": "768x1024",
"scale": "1x",
"idiom": "ipad"
},
{
"orientation": "portrait",
"extent": "full-screen",
"size": "1536x2048",
"scale": "2x",
"idiom": "ipad"
},
{
"orientation": "portrait",
"extent": "to-status-bar",
"size": "768x1004",
"scale": "1x",
"idiom": "ipad"
},
{
"orientation": "portrait",
"extent": "to-status-bar",
"size": "1536x2008",
"scale": "2x",
"idiom": "ipad"
},
{
"orientation": "landscape",
"extent": "full-screen",
"size": "1024x768",
"scale": "1x",
"idiom": "ipad"
},
{
"orientation": "landscape",
"extent": "full-screen",
"size": "2048x1536",
"scale": "2x",
"idiom": "ipad"
},
{
"orientation": "landscape",
"extent": "to-status-bar",
"size": "1024x748",
"scale": "1x",
"idiom": "ipad"
},
{
"orientation": "landscape",
"extent": "to-status-bar",
"size": "2048x1496",
"scale": "2x",
"idiom": "ipad"
}
],
"info": {
"version": 1,
"author": "xcode"
}
}

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 61 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 14 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 38 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 3.4 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 1.4 KiB

Просмотреть файл

@ -1,33 +0,0 @@
using System;
using MonoTouch.Security;
namespace KeychainTouchID
{
public static class Extensions
{
public static string GetDescription(this SecStatusCode code)
{
string description = string.Empty;
switch (code) {
case SecStatusCode.Success:
description = Text.SUCCESS;
break;
case SecStatusCode.DuplicateItem:
description = Text.ERROR_ITEM_ALREADY_EXISTS;
break;
case SecStatusCode.ItemNotFound:
description = Text.ERROR_ITEM_NOT_FOUND;
break;
case SecStatusCode.AuthFailed:
description = Text.ERROR_ITEM_AUTHENTICATION_FAILED;
break;
default:
description = code.ToString ();
break;
}
return description;
}
}
}

Просмотреть файл

@ -1,17 +0,0 @@
using System;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
using System.Collections.Generic;
namespace KeychainTouchID
{
public class Test
{
public string Name { get; set; }
public string Details { get; set; }
public Action Method { get; set; }
}
}

Просмотреть файл

@ -1,49 +0,0 @@
using System;
namespace KeychainTouchID
{
public static class Text
{
public static string SELECT_TEST = "Select test";
public static string TOUCH_ID_IS_AVAILABLE = "Touch ID is available";
public static string TOUCH_ID_IS_NOT_AVAILABLE = "Touch ID is not available";
public static string UNLOCK_ACCESS_TO_LOCKED_FATURE = "Unlock access to locked feature";
public static string EVALUATE_POLICY_SUCCESS = "EvaluatePolicy: succes";
public static string EVALUATE_POLICY_WITH_ERROR = "EvaluatePolicy: failed \nwith error: {0}";
public static string TOUCH_ID_PREFLIGHT = "Touch ID preflight";
public static string TOUCH_ID = "Touch ID authentication";
public static string SAMPLE_SERVICES_TEXT = "SampleService";
public static string TOUCH_ID_KEYCHAIN = "TouchID Keychain";
public static string SEC_ITEM_ADD_CAN_CREATE_OBJECT = "SecItemAdd can't create sacObject: {0}";
public static string SEC_ITEM_ADD_STATUS = "SecItemAdd status: {0}";
public static string SEC_ITEM_DELETE_STATUS = "SecItemDelete status: {0}";
public static string SEC_ITEM_COPY_MATCHING_STATUS = "SecItemCopyMatching status: {0}";
public static string RESULT = "result: {0}\n";
public static string SEC_ITEM_UPDATE_STATUS = "SecItemUpdate status: {0}";
public static string SUCCESS = "success\n";
public static string ERROR_ITEM_ALREADY_EXISTS = "error item already exists";
public static string ERROR_ITEM_NOT_FOUND = "error item not found";
public static string ERROR_ITEM_AUTHENTICATION_FAILED = "error item authentication failed";
public static string ADD_ITEM = "Add Item";
public static string QUERY_FOR_ITEM = "Query for Item";
public static string DELETE_ITEM = "Delete Item";
public static string UPDATE_ITEM = "Update Item";
public static string AUTHENTICATE_TO_ACCESS_SERVICE_PASSWORD = "Authenticate to access service password";
public static string YES = "Yes";
public static string NO = "No";
public static string USING_CAN_EVALUATE_POLICY = "Using CanEvaluatePolicy ()";
public static string USING_EVALUATE_POLICY = "Using EvaluatePolicy ()";
public static string TEST_CELL = "TestCell";
public static string ADD_SEC_ITEM = "Using SecItemAdd()";
public static string DELETE_SEC_ITEM = "Using SecItemDelete()";
public static string COPY_SEC_ITEM = "Using SecItemCopyMatching()";
public static string UPDATE_SEC_ITEM = "Using SecItemUpdate()";
public static string SERVICE_NAME = "SampleService";
public static string CANT_CREATE_SEC_OBJ = "Can't create security object";
public static string AUTH_TO_UPDATE = "Authenticate to update your password";
public static string UPDATED_SECRET_PASSWORD_TEXT = "UPDATED_SECRET_PASSWORD_TEXT";
public static string SECRET_PASSWORD_TEXT = "SECRET_PASSWORD_TEXT";
public static string USER_CANCELED_ACTION = "User canceled action";
}
}

Просмотреть файл

@ -1,2 +0,0 @@
# This file is used to determine when the app was last uploaded to a device
Oleg's iPhone

Просмотреть файл

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleIdentifier</key>
<string>com.apple.xcode.dsym.KeychainTouchID.app</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>dSYM</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 2.6 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 7.9 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 12 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 20 KiB

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 37 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 37 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 39 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 14 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 39 KiB

Просмотреть файл

@ -1,3 +0,0 @@
IP: 192.168.0.28
USB Debugging: 1
Port: 10000

Просмотреть файл

@ -1,3 +0,0 @@
Xamarin built applications contain open source software. For detailed attribution and licensing notices, please visit...
http://xamarin.com/mobile-licensing

Просмотреть файл

@ -1 +0,0 @@
APPL????

Двоичный файл не отображается.

Просмотреть файл

@ -1,47 +0,0 @@
<?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>Title</key>
<string>AppSettings</string>
<key>StringsTable</key>
<string>Root</string>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>Debug Settings</string>
</dict>
<dict>
<key>Type</key>
<string>PSToggleSwitchSpecifier</string>
<key>Title</key>
<string>Enabled</string>
<key>Key</key>
<string>__monotouch_debug_enabled</string>
<key>DefaultValue</key>
<string>1</string>
<key>TrueValue</key>
<string>1</string>
<key>FalseValue</key>
<string>0</string>
</dict>
<dict>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>Title</key>
<string>Xamarin Studio Host</string>
<key>Key</key>
<string>__monodevelop_host</string>
<key>AutocapitalizationType</key>
<string>None</string>
<key>AutocorrectionType</key>
<string>No</string>
<key>DefaultValue</key>
<string>automatic</string>
</dict>
</array>
</dict>
</plist>

Просмотреть файл

@ -1,264 +0,0 @@
<?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>AppIcons29x29.png</key>
<data>
OB2OYeAUT+7jcJ6990a/WL+NHFI=
</data>
<key>AppIcons29x29@2x.png</key>
<data>
STObgfNnVxq52iORDf/QYkw+rEE=
</data>
<key>AppIcons40x40@2x.png</key>
<data>
bV4xMsT+5pOkNN6Az6PnAG8uXF0=
</data>
<key>AppIcons60x60@2x.png</key>
<data>
DHTGsUCsm4mXdnDS3nBypFIVkko=
</data>
<key>KeychainStoryboard.storyboardc/8el-om-zeM-view-Dq3-FA-Izc.nib</key>
<data>
hxLvuZnMNUS7TBX//+m9uRMQ0c0=
</data>
<key>KeychainStoryboard.storyboardc/UIViewController-Tqm-Tg-bwS.nib</key>
<data>
PyZauuJr1H3I5zCkTtcTv9RIVmY=
</data>
<key>KeychainStoryboard.storyboardc/m4l-zg-SZc-view-htE-wl-7S5.nib</key>
<data>
tOMoHVs99DOaGD8hPDt8bbqcoiA=
</data>
<key>KeychainTouchID.exe</key>
<data>
RBXvUhkUw+vAGZSb3xa2szjyOLE=
</data>
<key>KeychainTouchID.exe.mdb</key>
<data>
XZkljX75uyQyNmSntUrPYLILV9k=
</data>
<key>LaunchImage-568h@2x.png</key>
<data>
G+gdcB2cPt/GeXIOkImsZTU8+yA=
</data>
<key>LaunchImage-700-568h@2x.png</key>
<data>
G+gdcB2cPt/GeXIOkImsZTU8+yA=
</data>
<key>LaunchImage-700@2x.png</key>
<data>
gRPkcwJNvjYD0xRZYp3BCG6EFHg=
</data>
<key>LaunchImage.png</key>
<data>
gLcIEfSAGS8GW1GSolza4CrIe9A=
</data>
<key>LaunchImage@2x.png</key>
<data>
gRPkcwJNvjYD0xRZYp3BCG6EFHg=
</data>
<key>MonoTouchDebugConfiguration.txt</key>
<data>
jUxme8DTm+fT9MS6HMfRFMu8Lkg=
</data>
<key>NOTICE</key>
<data>
udRFZiUn5Wu+JuryWRjPAicxwsE=
</data>
<key>PkgInfo</key>
<data>
n57qDP4tZfLD1rCS43W0B4LQjzE=
</data>
<key>Settings.bundle/Root.plist</key>
<data>
tJPoYRuZMw4WCUT4dYEAqmjMK5M=
</data>
<key>auth@2x.png</key>
<data>
vDbdW5pNQQPS9j58uD5AL+Af2sQ=
</data>
<key>embedded.mobileprovision</key>
<data>
uRGRA50uRNKiYxB2KTwDZG7piOw=
</data>
<key>keychain@2x.png</key>
<data>
/PAMpzdpALK84YbpyRY88gxk9Gk=
</data>
<key>monotouch.dll</key>
<data>
O6Am4zJB0yVmNKJAoa9rRPv/Lgk=
</data>
<key>monotouch.dll.mdb</key>
<data>
6SzGMbqzte1ni6qpjOJYfrhUxYI=
</data>
<key>mscorlib.dll</key>
<data>
Kn5xBWP0kbrvhotpFa9AL7BApE8=
</data>
<key>mscorlib.dll.mdb</key>
<data>
I9q/jXVldxAa9NzXMs8SAK1J0aI=
</data>
</dict>
<key>files2</key>
<dict>
<key>AppIcons29x29.png</key>
<data>
OB2OYeAUT+7jcJ6990a/WL+NHFI=
</data>
<key>AppIcons29x29@2x.png</key>
<data>
STObgfNnVxq52iORDf/QYkw+rEE=
</data>
<key>AppIcons40x40@2x.png</key>
<data>
bV4xMsT+5pOkNN6Az6PnAG8uXF0=
</data>
<key>AppIcons60x60@2x.png</key>
<data>
DHTGsUCsm4mXdnDS3nBypFIVkko=
</data>
<key>KeychainStoryboard.storyboardc/8el-om-zeM-view-Dq3-FA-Izc.nib</key>
<data>
hxLvuZnMNUS7TBX//+m9uRMQ0c0=
</data>
<key>KeychainStoryboard.storyboardc/UIViewController-Tqm-Tg-bwS.nib</key>
<data>
PyZauuJr1H3I5zCkTtcTv9RIVmY=
</data>
<key>KeychainStoryboard.storyboardc/m4l-zg-SZc-view-htE-wl-7S5.nib</key>
<data>
tOMoHVs99DOaGD8hPDt8bbqcoiA=
</data>
<key>KeychainTouchID.exe</key>
<data>
RBXvUhkUw+vAGZSb3xa2szjyOLE=
</data>
<key>KeychainTouchID.exe.mdb</key>
<data>
XZkljX75uyQyNmSntUrPYLILV9k=
</data>
<key>LaunchImage-568h@2x.png</key>
<data>
G+gdcB2cPt/GeXIOkImsZTU8+yA=
</data>
<key>LaunchImage-700-568h@2x.png</key>
<data>
G+gdcB2cPt/GeXIOkImsZTU8+yA=
</data>
<key>LaunchImage-700@2x.png</key>
<data>
gRPkcwJNvjYD0xRZYp3BCG6EFHg=
</data>
<key>LaunchImage.png</key>
<data>
gLcIEfSAGS8GW1GSolza4CrIe9A=
</data>
<key>LaunchImage@2x.png</key>
<data>
gRPkcwJNvjYD0xRZYp3BCG6EFHg=
</data>
<key>MonoTouchDebugConfiguration.txt</key>
<data>
jUxme8DTm+fT9MS6HMfRFMu8Lkg=
</data>
<key>NOTICE</key>
<data>
udRFZiUn5Wu+JuryWRjPAicxwsE=
</data>
<key>PkgInfo</key>
<data>
n57qDP4tZfLD1rCS43W0B4LQjzE=
</data>
<key>Settings.bundle/Root.plist</key>
<data>
tJPoYRuZMw4WCUT4dYEAqmjMK5M=
</data>
<key>auth@2x.png</key>
<data>
vDbdW5pNQQPS9j58uD5AL+Af2sQ=
</data>
<key>embedded.mobileprovision</key>
<data>
uRGRA50uRNKiYxB2KTwDZG7piOw=
</data>
<key>keychain@2x.png</key>
<data>
/PAMpzdpALK84YbpyRY88gxk9Gk=
</data>
<key>monotouch.dll</key>
<data>
O6Am4zJB0yVmNKJAoa9rRPv/Lgk=
</data>
<key>monotouch.dll.mdb</key>
<data>
6SzGMbqzte1ni6qpjOJYfrhUxYI=
</data>
<key>mscorlib.dll</key>
<data>
Kn5xBWP0kbrvhotpFa9AL7BApE8=
</data>
<key>mscorlib.dll.mdb</key>
<data>
I9q/jXVldxAa9NzXMs8SAK1J0aI=
</data>
</dict>
<key>rules</key>
<dict>
<key>.*</key>
<true/>
<key>Info.plist</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>ResourceRules.plist</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>100</real>
</dict>
</dict>
<key>rules2</key>
<dict>
<key>.*</key>
<true/>
<key>Info.plist</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>ResourceRules.plist</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>100</real>
</dict>
<key>^(Frameworks|SharedFrameworks|Plugins|Plug-ins|XPCServices|Helpers|MacOS)/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>0.0</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>top</key>
<true/>
<key>weight</key>
<real>0.0</real>
</dict>
</dict>
</dict>
</plist>

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 3.4 KiB

Двоичный файл не отображается.

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Просмотреть файл

@ -1,10 +0,0 @@
<?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>application-identifier</key>
<string>7V723M9SQ5.com.your-company.healthkitsample</string>
<key>get-task-allow</key>
<true/>
</dict>
</plist>

Просмотреть файл

@ -1,43 +0,0 @@
<?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>CFBundleIcons</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcons29x29</string>
<string>AppIcons40x40</string>
<string>AppIcons60x60</string>
</array>
</dict>
</dict>
<key>UILaunchImageFile</key>
<string>LaunchImage</string>
<key>UILaunchImages</key>
<array>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>7.0</string>
<key>UILaunchImageName</key>
<string>LaunchImage-700</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{320, 480}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>7.0</string>
<key>UILaunchImageName</key>
<string>LaunchImage-700-568h</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{320, 568}</string>
</dict>
</array>
</dict>
</plist>

Просмотреть файл

@ -1 +0,0 @@
7.9.4.9

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Просмотреть файл

@ -1,27 +0,0 @@
# Version: 7.9.4.9 (44bfd26)
# [first argument, ignore] # /Users/olegoid/Projects/private-samples/ios8/KeychainTouchID/KeychainTouchID/bin/iPhone/Debug/mtouch.exe
/Library/Frameworks/Xamarin.iOS.framework/Versions/7.9.4.9/bin/mtouch \
-sdkroot \
/Applications/Xcode6-Beta6.app/Contents/Developer \
--cache \
/Users/olegoid/Projects/private-samples/ios8/KeychainTouchID/KeychainTouchID/obj/iPhone/Debug/mtouch-cache \
--nomanifest \
--nosign \
-dev \
/Users/olegoid/Projects/private-samples/ios8/KeychainTouchID/KeychainTouchID/bin/iPhone/Debug/KeychainTouchID.app \
-r \
/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/2.1/System.dll \
-r \
/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/2.1/System.Xml.dll \
-r \
/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/2.1/System.Core.dll \
-r \
/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/2.1/monotouch.dll \
-debug \
-linksdkonly \
-sdk \
8.0 \
-targetver \
8.0 \
--abi=armv7 \
/Users/olegoid/Projects/private-samples/ios8/KeychainTouchID/KeychainTouchID/bin/iPhone/Debug/KeychainTouchID.exe \

Просмотреть файл

@ -1,4 +0,0 @@
monotouch_release_managed_ref
monotouch_create_managed_ref
xamarin_get_block_descriptor
monotouch_log

Просмотреть файл

@ -1,3 +0,0 @@
/Users/olegoid/Projects/private-samples/ios8/KeychainTouchID/KeychainTouchID/obj/iPhone/Debug/mtouch-cache/Link/monotouch.dll
/Users/olegoid/Projects/private-samples/ios8/KeychainTouchID/KeychainTouchID/obj/iPhone/Debug/mtouch-cache/Link/mscorlib.dll
/Users/olegoid/Projects/private-samples/ios8/KeychainTouchID/KeychainTouchID/obj/iPhone/Debug/mtouch-cache/Link/KeychainTouchID.exe

Просмотреть файл

@ -1,41 +0,0 @@
#include "monotouch/main.h"
extern void *mono_aot_module_KeychainTouchID_info;
extern void *mono_aot_module_monotouch_info;
extern void *mono_aot_module_mscorlib_info;
void monotouch_register_modules ()
{
mono_aot_register_module (mono_aot_module_KeychainTouchID_info);
mono_aot_register_module (mono_aot_module_monotouch_info);
mono_aot_register_module (mono_aot_module_mscorlib_info);
}
void monotouch_register_assemblies ()
{
monotouch_open_and_register ("monotouch.dll");
}
void monotouch_setup ()
{
use_old_dynamic_registrar = FALSE;
monotouch_create_classes ();
monotouch_enable_debug_tracking = FALSE;
monotouch_assembly_name = "KeychainTouchID.exe";
monotouch_use_new_assemblies = 0;
mono_use_llvm = FALSE;
monotouch_log_level = 0;
monotouch_debug_mode = TRUE;
monotouch_new_refcount = FALSE;
monotouch_sgen = FALSE;
}
int main (int argc, char **argv)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int rv = monotouch_main (argc, argv, false);
[pool drain];
return rv;
}

Двоичный файл не отображается.

Двоичный файл не отображается.

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Двоичный файл не отображается.

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Двоичный файл не отображается.

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше