Merge pull request #1152 from mfleisz/master

iOS: Got rid of .xcodeproj file and various compile fixes
This commit is contained in:
Marc-André Moreau 2013-04-02 06:07:53 -07:00
commit 3835fa8a35
18 changed files with 197 additions and 956 deletions

5
.gitignore vendored
View File

@ -43,6 +43,11 @@ client/X11/xfreerdp.1
*.xcodeproj/
DerivedData/
# iOS
FreeRDP.build
Debug-*
Release-*
# Windows
*.vcxproj
*.vcxproj.*

View File

@ -175,13 +175,14 @@ if(MSVC)
endif()
if(IOS)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -isysroot ${CMAKE_IOS_SDK_ROOT}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -isysroot ${CMAKE_IOS_SDK_ROOT} -g")
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWINPR_EXPORTS")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DFREERDP_EXPORTS")
# Include files
if(NOT IOS)
check_include_files(fcntl.h HAVE_FCNTL_H)
check_include_files(unistd.h HAVE_UNISTD_H)
check_include_files(stdint.h HAVE_STDINT_H)
@ -189,8 +190,19 @@ check_include_files(inttypes.h HAVE_INTTYPES_H)
check_include_files(sys/modem.h HAVE_SYS_MODEM_H)
check_include_files(sys/filio.h HAVE_SYS_FILIO_H)
check_include_files(sys/strtio.h HAVE_SYS_STRTIO_H)
else()
set(HAVE_FCNTL_H 1)
set(HAVE_UNISTD_H 1)
set(HAVE_STDINT_H 1)
set(HAVE_INTTYPES_H 1)
set(HAVE_SYS_FILIO_H 1)
endif()
if(NOT IOS)
check_struct_has_member("struct tm" tm_gmtoff time.h HAVE_TM_GMTOFF)
else()
set(HAVE_TM_GMTOFF 1)
endif()
# Mac OS X
if(APPLE)
@ -199,7 +211,8 @@ if(APPLE)
message(STATUS "FREERDP_IOS_EXTERNAL_SSL_PATH not set! Required if openssl is not found in the iOS SDK (which usually isn't")
endif()
set(CMAKE_FIND_ROOT_PATH ${CMAKE_FIND_ROOT_PATH} ${FREERDP_IOS_EXTERNAL_SSL_PATH})
else()
set_property(GLOBAL PROPERTY XCODE_ATTRIBUTE_SKIP_INSTALL YES)
else()
if(IS_DIRECTORY /opt/local/include)
include_directories(/opt/local/include)
link_directories(/opt/local/lib)
@ -226,7 +239,7 @@ if(ANDROID)
endif()
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
if(NOT ANDROID)
if(NOT IOS AND NOT ANDROID)
find_package(Threads REQUIRED)
endif()
@ -415,6 +428,10 @@ if(WITH_CHANNELS)
add_subdirectory(channels)
endif()
if (IOS)
set(CMAKE_OSX_DEPLOYMENT_TARGET "")
set(CMAKE_OSX_SYSROOT "iphoneos")
endif()
if(WITH_CLIENT)
add_subdirectory(client)
endif()
@ -533,4 +550,6 @@ if (ANDROID AND CMAKE_EXTRA_GENERATOR STREQUAL "Eclipse CDT4")
message(STATUS "Disabled CXX system defines for eclipse (workaround).")
endif()
include(CPack)

View File

@ -29,6 +29,7 @@
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface UIView (Toast)

View File

@ -1,8 +1,7 @@
# FreeRDP: A Remote Desktop Protocol Implementation
# Android Client
# FreeRDP X11 Client
#
# Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
# Copyright 2013 Martin Fleisz <mfleisz@thinstuff.at>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@ -15,40 +14,122 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
project(iFreeRDP)
set(IOS_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(IOS_PACKAGE_NAME "iFreeRDP")
set(MODULE_NAME "iFreeRDP")
set(MODULE_PREFIX "IFREERDP_CLIENT")
set(APP_TYPE MACOSX_BUNDLE)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/iFreeRDP.xcodeproj/project.pbxproj.cmake ${CMAKE_CURRENT_SOURCE_DIR}/iFreeRDP.xcodeproj/project.pbxproj @ONLY)
set(IOS_CLIENT_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(IOS_CLIENT_ADDITIONS_DIR ${IOS_CLIENT_DIR}/Additions)
set(IOS_CLIENT_CONTROLLERS_DIR ${IOS_CLIENT_DIR}/Controllers)
set(IOS_CLIENT_FREERDP_DIR ${IOS_CLIENT_DIR}/FreeRDP)
set(IOS_CLIENT_MISC_DIR ${IOS_CLIENT_DIR}/Misc)
set(IOS_CLIENT_MODELS_DIR ${IOS_CLIENT_DIR}/Models)
set(IOS_CLIENT_VIEWS_DIR ${IOS_CLIENT_DIR}/Views)
set(IOS_CLIENT_RESOURCES_DIR ${IOS_CLIENT_DIR}/Resources)
if(IOS_BUILD_OBJC)
# And isn't shiped with the android ndk/sdk so
# we need to find it on the local machine
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER, BOTH)
find_program(XCODEBUILD_COMMAND xcodebuild)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER, ONLY)
include_directories(${IOS_CLIENT_DIR})
include_directories(${IOS_CLIENT_ADDITIONS_DIR})
include_directories(${IOS_CLIENT_CONTROLLERS_DIR})
include_directories(${IOS_CLIENT_FREERDP_DIR})
include_directories(${IOS_CLIENT_MISC_DIR})
include_directories(${IOS_CLIENT_MODELS_DIR})
include_directories(${IOS_CLIENT_VIEWS_DIR})
include_directories(${OPENSSL_INCLUDE_DIR})
if(XCODEBUILD_COMMAND STREQUAL "XCODEBUILD_COMMAND-NOTFOUND")
message(FATAL_ERROR "xcodebuild not found but required to build ios objective-c")
endif()
# Add sources
set(${MODULE_PREFIX}_SRCS
AppDelegate.m
AppDelegate.h
main.m)
if(IOS_BUILD_OBJC_DEBUG)
set(IOS_BUILD_TYPE "Debug")
else()
set(IOS_BUILD_TYPE "Release")
endif()
file(GLOB IOS_CLIENT_ADDITIONS_SRCS ${IOS_CLIENT_ADDITIONS_DIR}/*.m)
file(GLOB IOS_CLIENT_ADDITIONS_HDRS ${IOS_CLIENT_ADDITIONS_DIR}/*.h)
set(IOS_APP_OUTPUT_DIR "${IOS_SOURCE_DIR}/bin/${IOS_BUILD_TYPE}")
set(IOS_APP "${IOS_APP_OUTPUT_DIR}/${IOS_PACKAGE_NAME}.app")
# command to create the ios package
add_custom_command(
OUTPUT "${IOS_APP}"
COMMAND ${XCODEBUILD_COMMAND} -project "${IOS_SOURCE_DIR}/iFreeRDP.xcodeproj" -sdk ${CMAKE_IOS_SDK_ROOT} -configuration ${IOS_BUILD_TYPE} CONFIGURATION_BUILD_DIR="${IOS_APP_OUTPUT_DIR}"
WORKING_DIRECTORY "${IOS_SOURCE_DIR}"
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/iFreeRDP.xcodeproj/project.pbxproj
DEPENDS freerdp winpr
file(GLOB IOS_CLIENT_CONTROLLERS_SRCS ${IOS_CLIENT_CONTROLLERS_DIR}/*.m)
file(GLOB IOS_CLIENT_CONTROLLERS_HDRS ${IOS_CLIENT_CONTROLLERS_DIR}/*.h)
file(GLOB IOS_CLIENT_FREERDP_SRCS ${IOS_CLIENT_FREERDP_DIR}/*.m)
file(GLOB IOS_CLIENT_FREERDP_HDRS ${IOS_CLIENT_FREERDP_DIR}/*.h)
file(GLOB IOS_CLIENT_MISC_SRCS ${IOS_CLIENT_MISC_DIR}/*.m)
file(GLOB IOS_CLIENT_MISC_HDRS ${IOS_CLIENT_MISC_DIR}/*.h)
file(GLOB IOS_CLIENT_MODELS_SRCS ${IOS_CLIENT_MODELS_DIR}/*.m)
file(GLOB IOS_CLIENT_MODELS_HDRS ${IOS_CLIENT_MODELS_DIR}/*.h)
file(GLOB IOS_CLIENT_VIEWS_SRCS ${IOS_CLIENT_VIEWS_DIR}/*.m)
file(GLOB IOS_CLIENT_VIEWS_HDRS ${IOS_CLIENT_VIEWS_DIR}/*.h)
# add resources
file(GLOB IOS_CLIENT_RESOURCES_XIBS ${IOS_CLIENT_RESOURCES_DIR}/*.xib)
file(GLOB IOS_CLIENT_RESOURCES_PNGS ${IOS_CLIENT_RESOURCES_DIR}/*.png)
# Specify source grouping
source_group(Additions FILES ${IOS_CLIENT_ADDITIONS_SRCS} ${IOS_CLIENT_ADDITIONS_HDRS})
source_group(Controllers FILES ${IOS_CLIENT_CONTROLLERS_SRCS} ${IOS_CLIENT_CONTROLLERS_HDRS})
source_group(FreeRDP FILES ${IOS_CLIENT_FREERDP_SRCS} ${IOS_CLIENT_FREERDP_HDRS})
source_group(Misc FILES ${IOS_CLIENT_MISC_SRCS} ${IOS_CLIENT_MISC_HDRS})
source_group(Models FILES ${IOS_CLIENT_MODELS_SRCS} ${IOS_CLIENT_MODELS_HDRS})
source_group(Views FILES ${IOS_CLIENT_RESOURCES_XIBS} ${IOS_CLIENT_VIEWS_SRCS} ${IOS_CLIENT_VIEWS_HDRS})
source_group(Resources FILES ${IOS_CLIENT_RESOURCES_PNGS} ${IOS_CLIENT_RESOURCES_DIR}/about_page ${IOS_CLIENT_RESOURCES_DIR}/help_page ${IOS_CLIENT_RESOURCES_DIR}/en.lproj)
# import libraries
find_library(FOUNDATION_FRAMEWORK Foundation)
find_library(COREGRAPHICS_FRAMEWORK CoreGraphics)
find_library(SECURITY_FRAMEWORK Security)
find_library(UIKIT_FRAMEWORK UIKit)
find_library(SYSTEMCONFIGURATION_FRAMEWORK SystemConfiguration)
mark_as_advanced(FOUNDATION_FRAMEWORK COREGRAPHICS_FRAMEWORK SECURITY_FRAMEWORK UIKIT_FRAMEWORK SYSTEMCONFIGURATION_FRAMEWORK)
set(EXTRA_LIBS ${FOUNDATION_FRAMEWORK} ${COREGRAPHICS_FRAMEWORK} ${SECURITY_FRAMEWORK} ${UIKIT_FRAMEWORK} ${SYSTEMCONFIGURATION_FRAMEWORK})
set(${MODULE_NAME}_RESOURCES ${IOS_CLIENT_RESOURCES_XIBS})
set(${MODULE_NAME}_RESOURCES ${${MODULE_NAME}_RESOURCES} ${IOS_CLIENT_RESOURCES_PNGS})
set(${MODULE_NAME}_RESOURCES ${${MODULE_NAME}_RESOURCES} ${IOS_CLIENT_RESOURCES_DIR}/about_page ${IOS_CLIENT_RESOURCES_DIR}/help_page ${IOS_CLIENT_RESOURCES_DIR}/en.lproj)
set(${MODULE_NAME}_RESOURCES ${${MODULE_NAME}_RESOURCES} ${IOS_CLIENT_DIR}/Defaults.plist)
add_executable(${MODULE_NAME}
${APP_TYPE}
${${MODULE_PREFIX}_SRCS}
${IOS_CLIENT_ADDITIONS_SRCS} ${IOS_CLIENT_ADDITIONS_HDRS}
${IOS_CLIENT_CONTROLLERS_SRCS} ${IOS_CLIENT_CONTROLLERS_HDRS}
${IOS_CLIENT_FREERDP_SRCS} ${IOS_CLIENT_FREERDP_HDRS}
${IOS_CLIENT_MISC_SRCS} ${IOS_CLIENT_MISC_HDRS}
${IOS_CLIENT_MODELS_SRCS} ${IOS_CLIENT_MODELS_HDRS}
${IOS_CLIENT_VIEWS_SRCS} ${IOS_CLIENT_VIEWS_HDRS}
${${MODULE_NAME}_RESOURCES}
)
add_custom_target(ios-package ALL SOURCES "${IOS_APP}")
SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "bin;build")
endif()
set_target_properties(${MODULE_NAME} PROPERTIES RESOURCE "${${MODULE_NAME}_RESOURCES}")
set(EXECUTABLE_NAME "\${EXECUTABLE_NAME}")
set_target_properties(${MODULE_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${IOS_CLIENT_DIR}/iFreeRDP.plist)
set_target_properties(${MODULE_NAME} PROPERTIES XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "4.3")
set_target_properties(${MODULE_NAME} PROPERTIES XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "gnu++0x")
set_target_properties(${MODULE_NAME} PROPERTIES XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
set_target_properties(${MODULE_NAME} PROPERTIES XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC NO)
set_target_properties(${MODULE_NAME} PROPERTIES XCODE_ATTRIBUTE_GCC_C_LANGUAGE_STANDARD "gnu99")
set_target_properties(${MODULE_NAME} PROPERTIES XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2")
set_target_properties(${MODULE_NAME} PROPERTIES XCODE_ATTRIBUTE_COMBINE_HIDPI_IMAGES "NO")
set_target_properties(${MODULE_NAME} PROPERTIES XCODE_ATTRIBUTE_SKIP_INSTALL NO)
set_target_properties(${MODULE_NAME} PROPERTIES XCODE_ATTRIBUTE_INSTALL_PATH "/Applications")
set_target_properties(${MODULE_NAME} PROPERTIES XCODE_ATTRIBUTE_GCC_GENERATE_DEBUGGING_SYMBOLS YES)
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${EXTRA_LIBS})
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp-client)
set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS MONOLITHIC ${MONOLITHIC_BUILD}
MODULE freerdp
MODULES freerdp-core freerdp-gdi freerdp-locale freerdp-primitives freerdp-cache freerdp-utils)
set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS MONOLITHIC ${MONOLITHIC_BUILD}
MODULE winpr
MODULES winpr-input winpr-crt winpr-utils)
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Client/iOS")

View File

@ -8,7 +8,7 @@
*/
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface MainTabBarController : UITabBarController {

View File

@ -7,6 +7,8 @@
If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#import <CoreGraphics/CoreGraphics.h>
#import <freerdp/freerdp.h>
#import <freerdp/channels/channels.h>
#import "TSXTypes.h"

View File

@ -9,7 +9,9 @@
#import <freerdp/utils/event.h>
#import <freerdp/gdi/gdi.h>
#import <freerdp/utils/file.h>
#import <freerdp/channels/channels.h>
#import <freerdp/client/channels.h>
#import <freerdp/client/cmdline.h>
#import "ios_freerdp.h"
#import "ios_freerdp_ui.h"
@ -64,7 +66,9 @@ ios_pre_connect(freerdp * instance)
settings->FrameAcknowledge = 10;
// freerdp_channels_pre_connect(instance->context->channels, instance);
freerdp_client_load_addins(instance->context->channels, instance->settings);
freerdp_channels_pre_connect(instance->context->channels, instance);
return TRUE;
}
@ -82,12 +86,24 @@ static BOOL ios_post_connect(freerdp* instance)
instance->update->DesktopResize = ios_ui_resize_window;
// Channel allocation
// freerdp_channels_post_connect(instance->context->channels, instance);
freerdp_channels_post_connect(instance->context->channels, instance);
[mfi->session performSelectorOnMainThread:@selector(sessionDidConnect) withObject:nil waitUntilDone:YES];
return TRUE;
}
static int ios_receive_channel_data(freerdp* instance, int channelId, UINT8* data, int size, int flags, int total_size)
{
return freerdp_channels_data(instance, channelId, data, size, flags, total_size);
}
void ios_process_channel_event(rdpChannels* channels, freerdp* instance)
{
RDP_EVENT* event = freerdp_channels_pop_event(channels);
if (event)
freerdp_event_free(event);
}
#pragma mark -
#pragma mark Running the connection
@ -96,7 +112,7 @@ ios_run_freerdp(freerdp * instance)
{
mfContext* context = (mfContext*)instance->context;
mfInfo* mfi = context->mfi;
// rdpChannels* channels = instance->context->channels;
rdpChannels* channels = instance->context->channels;
mfi->connection_state = TSXConnectionConnecting;
@ -138,12 +154,12 @@ ios_run_freerdp(freerdp * instance)
break;
}
/* if (freerdp_channels_get_fds(channels, instance, rfds, &rcount, wfds, &wcount) != TRUE)
if (freerdp_channels_get_fds(channels, instance, rfds, &rcount, wfds, &wcount) != TRUE)
{
NSLog(@"%s: freerdp_chanman_get_fds failed", __func__);
break;
}
*/
if (ios_events_get_fds(mfi, rfds, &rcount, wfds, &wcount) != TRUE)
{
NSLog(@"%s: ios_events_get_fds", __func__);
@ -196,20 +212,20 @@ ios_run_freerdp(freerdp * instance)
}
// Check channel fds
/* if (freerdp_channels_check_fds(channels, instance) != TRUE)
if (freerdp_channels_check_fds(channels, instance) != TRUE)
{
NSLog(@"%s: freerdp_chanman_check_fds failed", __func__);
break;
}
*/
ios_process_channel_event(channels, instance);
[pool release]; pool = nil;
}
mfi->connection_state = TSXConnectionDisconnected;
// Cleanup
// freerdp_channels_close(channels, instance);
// freerdp_channels_free(channels);
freerdp_channels_close(channels, instance);
freerdp_disconnect(instance);
gdi_free(instance);
cache_free(instance->context->cache);
@ -225,7 +241,7 @@ void ios_context_new(freerdp* instance, rdpContext* context)
{
mfInfo* mfi = (mfInfo*)calloc(1, sizeof(mfInfo));
((mfContext*) context)->mfi = mfi;
// context->channels = freerdp_channels_new();
context->channels = freerdp_channels_new();
ios_events_create_pipe(mfi);
mfi->_context = context;
@ -237,6 +253,7 @@ void ios_context_new(freerdp* instance, rdpContext* context)
void ios_context_free(freerdp* instance, rdpContext* context)
{
mfInfo* mfi = ((mfContext*) context)->mfi;
freerdp_channels_free(context->channels);
ios_events_free_pipe(mfi);
free(mfi);
}
@ -253,19 +270,19 @@ freerdp* ios_freerdp_new()
inst->Authenticate = ios_ui_authenticate;
inst->VerifyCertificate = ios_ui_check_certificate;
inst->VerifyChangedCertificate = ios_ui_check_changed_certificate;
inst->ReceiveChannelData = ios_receive_channel_data;
inst->context_size = sizeof(mfContext);
inst->ContextNew = ios_context_new;
inst->ContextFree = ios_context_free;
freerdp_context_new(inst);
// determine new home path
NSString* home_path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
free(inst->settings->HomePath);
free(inst->settings->ConfigPath);
inst->settings->HomePath = strdup([home_path UTF8String]);
inst->settings->ConfigPath = NULL;
freerdp_detect_paths(inst->settings);
inst->settings->ConfigPath = strdup([[home_path stringByAppendingPathComponent:@".freerdp"] UTF8String]);
return inst;
}
@ -279,11 +296,12 @@ void ios_freerdp_free(freerdp* instance)
void ios_init_freerdp()
{
signal(SIGPIPE, SIG_IGN);
// freerdp_channels_global_init();
freerdp_channels_global_init();
freerdp_register_addin_provider(freerdp_channels_load_static_addin_entry, 0);
}
void ios_uninit_freerdp()
{
// freerdp_channels_global_uninit();
freerdp_channels_global_uninit();
}

View File

@ -10,6 +10,7 @@
#ifndef IOS_RDP_EVENT_H
#define IOS_RDP_EVENT_H
#import <Foundation/Foundation.h>
#import "ios_freerdp.h"
// For UI: use to send events

View File

@ -8,6 +8,7 @@
*/
#import <Foundation/Foundation.h>
#import <CoreGraphics/CoreGraphics.h>
#import "TSXTypes.h"
// helper macro to encode a table path into a tag value (used to identify controls in their delegate handlers)

View File

@ -9,6 +9,7 @@
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "ConnectionParams.h"
@interface ComputerBookmark : NSObject <NSCoding> {

View File

@ -8,6 +8,7 @@
*/
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#include <freerdp/freerdp.h>

View File

@ -148,7 +148,7 @@ a:hover, a:active, a:focus { /* this group of selectors will give a keyboard nav
<div id="content">
<h1>Gestures</h1>
<p>
aFreeRDP is designed for touch sensitive devices.
iFreeRDP is designed for touch sensitive devices.
These gestures let you do the most usual operations with your fingers.</p>
<p> <img src="gestures.png"></p>

View File

@ -147,7 +147,7 @@ a:hover, a:active, a:focus { /* this group of selectors will give a keyboard nav
<div id="content">
<h2> Gestures</h2>
<p>
aFreeRDP is designed for touch sensitive devices.
iFreeRDP is designed for touch sensitive devices.
These gestures let you do the most usual operations with your fingers.</p>
<p> <img src="gestures_phone.png"></p>

View File

@ -1,865 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
C495EE3416B8372D0041304E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C495EE3316B8372D0041304E /* UIKit.framework */; };
C495EE3616B8372D0041304E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C495EE3516B8372D0041304E /* Foundation.framework */; };
C495EE3816B8372D0041304E /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C495EE3716B8372D0041304E /* CoreGraphics.framework */; };
C495EE7016B9107D0041304E /* Defaults.plist in Resources */ = {isa = PBXBuildFile; fileRef = C495EE6F16B9107D0041304E /* Defaults.plist */; };
C495EE7716B910BC0041304E /* OrderedDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE7216B910BC0041304E /* OrderedDictionary.m */; };
C495EE7816B910BC0041304E /* Toast+UIView.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE7416B910BC0041304E /* Toast+UIView.m */; };
C495EE7916B910BC0041304E /* TSXAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE7616B910BC0041304E /* TSXAdditions.m */; };
C495EE9B16B910DE0041304E /* AboutController.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE7C16B910DE0041304E /* AboutController.m */; };
C495EE9C16B910DE0041304E /* AdvancedBookmarkEditorController.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE7E16B910DE0041304E /* AdvancedBookmarkEditorController.m */; };
C495EE9D16B910DE0041304E /* AppSettingsController.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE8016B910DE0041304E /* AppSettingsController.m */; };
C495EE9E16B910DE0041304E /* BookmarkEditorController.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE8216B910DE0041304E /* BookmarkEditorController.m */; };
C495EE9F16B910DE0041304E /* BookmarkListController.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE8416B910DE0041304E /* BookmarkListController.m */; };
C495EEA016B910DE0041304E /* CredentialsEditorController.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE8616B910DE0041304E /* CredentialsEditorController.m */; };
C495EEA116B910DE0041304E /* CredentialsInputController.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE8816B910DE0041304E /* CredentialsInputController.m */; };
C495EEA216B910DE0041304E /* EditorBaseController.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE8A16B910DE0041304E /* EditorBaseController.m */; };
C495EEA316B910DE0041304E /* EditorSelectionController.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE8C16B910DE0041304E /* EditorSelectionController.m */; };
C495EEA416B910DE0041304E /* EncryptionController.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE8E16B910DE0041304E /* EncryptionController.m */; };
C495EEA516B910DE0041304E /* HelpController.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE9016B910DE0041304E /* HelpController.m */; };
C495EEA616B910DE0041304E /* MainTabBarController.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE9216B910DE0041304E /* MainTabBarController.m */; };
C495EEA716B910DE0041304E /* PerformanceEditorController.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE9416B910DE0041304E /* PerformanceEditorController.m */; };
C495EEA816B910DE0041304E /* RDPSessionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE9616B910DE0041304E /* RDPSessionViewController.m */; };
C495EEA916B910DE0041304E /* ScreenSelectionController.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE9816B910DE0041304E /* ScreenSelectionController.m */; };
C495EEAA16B910DE0041304E /* VerifyCertificateController.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EE9A16B910DE0041304E /* VerifyCertificateController.m */; };
C495EEB216B910F60041304E /* ios_freerdp_events.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EEAD16B910F60041304E /* ios_freerdp_events.m */; };
C495EEB316B910F60041304E /* ios_freerdp_ui.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EEAF16B910F60041304E /* ios_freerdp_ui.m */; };
C495EEB416B910F60041304E /* ios_freerdp.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EEB116B910F60041304E /* ios_freerdp.m */; };
C495EEBD16B9111A0041304E /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EEB716B9111A0041304E /* Reachability.m */; };
C495EEBE16B9111A0041304E /* SFHFKeychainUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EEB916B9111A0041304E /* SFHFKeychainUtils.m */; };
C495EEBF16B9111A0041304E /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EEBC16B9111A0041304E /* Utils.m */; };
C495EECD16B911290041304E /* Bookmark.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EEC216B911290041304E /* Bookmark.m */; };
C495EECE16B911290041304E /* ConnectionParams.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EEC416B911290041304E /* ConnectionParams.m */; };
C495EECF16B911290041304E /* Encryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EEC616B911290041304E /* Encryptor.m */; };
C495EED016B911290041304E /* GlobalDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EEC816B911290041304E /* GlobalDefaults.m */; };
C495EED116B911290041304E /* RDPKeyboard.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EECA16B911290041304E /* RDPKeyboard.m */; };
C495EED216B911290041304E /* RDPSession.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EECC16B911290041304E /* RDPSession.m */; };
C495EF3216B911450041304E /* BookmarkListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C495EEDA16B911450041304E /* BookmarkListView.xib */; };
C495EF3316B911450041304E /* BookmarkTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C495EEDB16B911450041304E /* BookmarkTableViewCell.xib */; };
C495EF3416B911450041304E /* cancel_button_background.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EEDC16B911450041304E /* cancel_button_background.png */; };
C495EF3516B911450041304E /* CredentialsInputView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C495EEDD16B911450041304E /* CredentialsInputView.xib */; };
C495EF3616B911450041304E /* Default-Landscape@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EEDE16B911450041304E /* Default-Landscape@2x~ipad.png */; };
C495EF3716B911450041304E /* Default-Landscape~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EEDF16B911450041304E /* Default-Landscape~ipad.png */; };
C495EF3816B911450041304E /* Default-Portrait@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EEE016B911450041304E /* Default-Portrait@2x~ipad.png */; };
C495EF3916B911450041304E /* Default-Portrait~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EEE116B911450041304E /* Default-Portrait~ipad.png */; };
C495EF3A16B911450041304E /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EEE216B911450041304E /* Default.png */; };
C495EF3B16B911450041304E /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EEE316B911450041304E /* Default@2x.png */; };
C495EF3C16B911450041304E /* EditButtonTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C495EEE416B911450041304E /* EditButtonTableViewCell.xib */; };
C495EF3D16B911450041304E /* EditFlagTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C495EEE516B911450041304E /* EditFlagTableViewCell.xib */; };
C495EF3E16B911450041304E /* EditSecretTextTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C495EEE616B911450041304E /* EditSecretTextTableViewCell.xib */; };
C495EF3F16B911450041304E /* EditSelectionTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C495EEE716B911450041304E /* EditSelectionTableViewCell.xib */; };
C495EF4016B911450041304E /* EditSubEditTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C495EEE816B911450041304E /* EditSubEditTableViewCell.xib */; };
C495EF4116B911450041304E /* EditTextTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C495EEE916B911450041304E /* EditTextTableViewCell.xib */; };
C495EF5316B911450041304E /* icon_accessory_star_off.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EEFE16B911450041304E /* icon_accessory_star_off.png */; };
C495EF5416B911450041304E /* icon_accessory_star_on.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EEFF16B911450041304E /* icon_accessory_star_on.png */; };
C495EF5516B911450041304E /* icon_key_arrow_down.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF0016B911450041304E /* icon_key_arrow_down.png */; };
C495EF5616B911450041304E /* icon_key_arrow_left.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF0116B911450041304E /* icon_key_arrow_left.png */; };
C495EF5716B911450041304E /* icon_key_arrow_right.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF0216B911450041304E /* icon_key_arrow_right.png */; };
C495EF5816B911450041304E /* icon_key_arrow_up.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF0316B911450041304E /* icon_key_arrow_up.png */; };
C495EF5916B911450041304E /* icon_key_arrows.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF0416B911450041304E /* icon_key_arrows.png */; };
C495EF5A16B911450041304E /* icon_key_backspace.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF0516B911450041304E /* icon_key_backspace.png */; };
C495EF5B16B911450041304E /* icon_key_menu.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF0616B911450041304E /* icon_key_menu.png */; };
C495EF5C16B911450041304E /* icon_key_return.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF0716B911450041304E /* icon_key_return.png */; };
C495EF5D16B911450041304E /* icon_key_win.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF0816B911450041304E /* icon_key_win.png */; };
C495EF5E16B911450041304E /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF0916B911450041304E /* Icon-72.png */; };
C495EF5F16B911450041304E /* Icon-72@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF0A16B911450041304E /* Icon-72@2x.png */; };
C495EF6016B911450041304E /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF0B16B911450041304E /* Icon.png */; };
C495EF6116B911450041304E /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF0C16B911450041304E /* Icon@2x.png */; };
C495EF6216B911450041304E /* keyboard_button_background.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF0D16B911450041304E /* keyboard_button_background.png */; };
C495EF6316B911450041304E /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = C495EF0E16B911450041304E /* MainWindow.xib */; };
C495EF6416B911450041304E /* RDPConnectingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C495EF0F16B911450041304E /* RDPConnectingView.xib */; };
C495EF6516B911450041304E /* RDPSessionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C495EF1016B911450041304E /* RDPSessionView.xib */; };
C495EF6616B911450041304E /* SessionTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C495EF1116B911450041304E /* SessionTableViewCell.xib */; };
C495EF6716B911450041304E /* tabbar_icon_about.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF1216B911450041304E /* tabbar_icon_about.png */; };
C495EF6816B911450041304E /* tabbar_icon_help.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF1316B911450041304E /* tabbar_icon_help.png */; };
C495EF6916B911450041304E /* tabbar_icon_settings.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF1416B911450041304E /* tabbar_icon_settings.png */; };
C495EF6A16B911450041304E /* toolbar_icon_disconnect.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF1516B911450041304E /* toolbar_icon_disconnect.png */; };
C495EF6B16B911450041304E /* toolbar_icon_extkeyboad.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF1616B911450041304E /* toolbar_icon_extkeyboad.png */; };
C495EF6C16B911450041304E /* toolbar_icon_home.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF1716B911450041304E /* toolbar_icon_home.png */; };
C495EF6D16B911450041304E /* toolbar_icon_keyboard.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF1816B911450041304E /* toolbar_icon_keyboard.png */; };
C495EF6E16B911450041304E /* toolbar_icon_touchpointer.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF1916B911450041304E /* toolbar_icon_touchpointer.png */; };
C495EF6F16B911450041304E /* toolbar_icon_win.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF1A16B911450041304E /* toolbar_icon_win.png */; };
C495EF7016B911450041304E /* touch_pointer_active.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF1B16B911450041304E /* touch_pointer_active.png */; };
C495EF7116B911450041304E /* touch_pointer_default.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF1C16B911450041304E /* touch_pointer_default.png */; };
C495EF7216B911450041304E /* touch_pointer_extkeyboard.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF1D16B911450041304E /* touch_pointer_extkeyboard.png */; };
C495EF7316B911450041304E /* touch_pointer_keyboard.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF1E16B911450041304E /* touch_pointer_keyboard.png */; };
C495EF7416B911450041304E /* touch_pointer_lclick.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF1F16B911450041304E /* touch_pointer_lclick.png */; };
C495EF7516B911450041304E /* touch_pointer_rclick.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF2016B911450041304E /* touch_pointer_rclick.png */; };
C495EF7616B911450041304E /* touch_pointer_reset.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF2116B911450041304E /* touch_pointer_reset.png */; };
C495EF7716B911450041304E /* touch_pointer_scroll.png in Resources */ = {isa = PBXBuildFile; fileRef = C495EF2216B911450041304E /* touch_pointer_scroll.png */; };
C495EF7816B911450041304E /* VerifyCertificateView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C495EF2316B911450041304E /* VerifyCertificateView.xib */; };
C495EF9A16B911AC0041304E /* AdvancedKeyboardView.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EF8316B911AB0041304E /* AdvancedKeyboardView.m */; };
C495EF9B16B911AC0041304E /* BookmarkTableCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EF8516B911AB0041304E /* BookmarkTableCell.m */; };
C495EF9C16B911AC0041304E /* EditButtonTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EF8716B911AB0041304E /* EditButtonTableViewCell.m */; };
C495EF9D16B911AC0041304E /* EditFlagTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EF8916B911AB0041304E /* EditFlagTableViewCell.m */; };
C495EF9E16B911AC0041304E /* EditSecretTextTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EF8B16B911AB0041304E /* EditSecretTextTableViewCell.m */; };
C495EF9F16B911AC0041304E /* EditSelectionTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EF8D16B911AB0041304E /* EditSelectionTableViewCell.m */; };
C495EFA016B911AC0041304E /* EditSubEditTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EF8F16B911AB0041304E /* EditSubEditTableViewCell.m */; };
C495EFA116B911AC0041304E /* EditTextTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EF9116B911AB0041304E /* EditTextTableViewCell.m */; };
C495EFA216B911AC0041304E /* RDPSessionView.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EF9316B911AB0041304E /* RDPSessionView.m */; };
C495EFA316B911AC0041304E /* SessionTableCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EF9516B911AB0041304E /* SessionTableCell.m */; };
C495EFA416B911AC0041304E /* TouchPointerView.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EF9716B911AB0041304E /* TouchPointerView.m */; };
C495EFAB16B912C40041304E /* libfreerdp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C495EFAA16B912C40041304E /* libfreerdp.a */; };
C495EFAE16B913980041304E /* libwinpr.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C495EFAD16B913980041304E /* libwinpr.a */; };
C495EFBB16B92E170041304E /* about_page in Resources */ = {isa = PBXBuildFile; fileRef = C495EFBA16B92E170041304E /* about_page */; };
C495EFBD16B92E270041304E /* help_page in Resources */ = {isa = PBXBuildFile; fileRef = C495EFBC16B92E270041304E /* help_page */; };
C495EFC216B92EA20041304E /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C495EFC016B92EA20041304E /* Localizable.strings */; };
C495EFCB16B933230041304E /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EFC916B933230041304E /* AppDelegate.m */; };
C495EFCC16B933230041304E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C495EFCA16B933230041304E /* main.m */; };
C495F01716B937F90041304E /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C495F01516B937F80041304E /* libcrypto.a */; };
C495F01816B937F90041304E /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C495F01616B937F90041304E /* libssl.a */; };
C495F01A16B938210041304E /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C495F01916B938210041304E /* Security.framework */; };
C495F01E16B938CB0041304E /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C495F01D16B938CA0041304E /* SystemConfiguration.framework */; };
C4B6A8821701979900AA836E /* libfreerdp-client-combined.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C4B6A8811701979900AA836E /* libfreerdp-client-combined.a */; };
C4C31C6F16BAD1890087BB12 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C4C31C6E16BAD1890087BB12 /* Default-568h@2x.png */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
C495EE2F16B8372D0041304E /* iFreeRDP.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iFreeRDP.app; sourceTree = BUILT_PRODUCTS_DIR; };
C495EE3316B8372D0041304E /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
C495EE3516B8372D0041304E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
C495EE3716B8372D0041304E /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
C495EE4116B8372D0041304E /* iFreeRDP-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "iFreeRDP-Prefix.pch"; sourceTree = "<group>"; };
C495EE6D16B910510041304E /* iFreeRDP.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = iFreeRDP.plist; sourceTree = SOURCE_ROOT; };
C495EE6F16B9107D0041304E /* Defaults.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Defaults.plist; sourceTree = SOURCE_ROOT; };
C495EE7116B910BC0041304E /* OrderedDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OrderedDictionary.h; path = Additions/OrderedDictionary.h; sourceTree = SOURCE_ROOT; };
C495EE7216B910BC0041304E /* OrderedDictionary.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OrderedDictionary.m; path = Additions/OrderedDictionary.m; sourceTree = SOURCE_ROOT; };
C495EE7316B910BC0041304E /* Toast+UIView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "Toast+UIView.h"; path = "Additions/Toast+UIView.h"; sourceTree = SOURCE_ROOT; };
C495EE7416B910BC0041304E /* Toast+UIView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "Toast+UIView.m"; path = "Additions/Toast+UIView.m"; sourceTree = SOURCE_ROOT; };
C495EE7516B910BC0041304E /* TSXAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TSXAdditions.h; path = Additions/TSXAdditions.h; sourceTree = SOURCE_ROOT; };
C495EE7616B910BC0041304E /* TSXAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TSXAdditions.m; path = Additions/TSXAdditions.m; sourceTree = SOURCE_ROOT; };
C495EE7B16B910DE0041304E /* AboutController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AboutController.h; path = Controllers/AboutController.h; sourceTree = SOURCE_ROOT; };
C495EE7C16B910DE0041304E /* AboutController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AboutController.m; path = Controllers/AboutController.m; sourceTree = SOURCE_ROOT; };
C495EE7D16B910DE0041304E /* AdvancedBookmarkEditorController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AdvancedBookmarkEditorController.h; path = Controllers/AdvancedBookmarkEditorController.h; sourceTree = SOURCE_ROOT; };
C495EE7E16B910DE0041304E /* AdvancedBookmarkEditorController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AdvancedBookmarkEditorController.m; path = Controllers/AdvancedBookmarkEditorController.m; sourceTree = SOURCE_ROOT; };
C495EE7F16B910DE0041304E /* AppSettingsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppSettingsController.h; path = Controllers/AppSettingsController.h; sourceTree = SOURCE_ROOT; };
C495EE8016B910DE0041304E /* AppSettingsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppSettingsController.m; path = Controllers/AppSettingsController.m; sourceTree = SOURCE_ROOT; };
C495EE8116B910DE0041304E /* BookmarkEditorController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BookmarkEditorController.h; path = Controllers/BookmarkEditorController.h; sourceTree = SOURCE_ROOT; };
C495EE8216B910DE0041304E /* BookmarkEditorController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BookmarkEditorController.m; path = Controllers/BookmarkEditorController.m; sourceTree = SOURCE_ROOT; };
C495EE8316B910DE0041304E /* BookmarkListController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BookmarkListController.h; path = Controllers/BookmarkListController.h; sourceTree = SOURCE_ROOT; };
C495EE8416B910DE0041304E /* BookmarkListController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BookmarkListController.m; path = Controllers/BookmarkListController.m; sourceTree = SOURCE_ROOT; };
C495EE8516B910DE0041304E /* CredentialsEditorController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CredentialsEditorController.h; path = Controllers/CredentialsEditorController.h; sourceTree = SOURCE_ROOT; };
C495EE8616B910DE0041304E /* CredentialsEditorController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CredentialsEditorController.m; path = Controllers/CredentialsEditorController.m; sourceTree = SOURCE_ROOT; };
C495EE8716B910DE0041304E /* CredentialsInputController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CredentialsInputController.h; path = Controllers/CredentialsInputController.h; sourceTree = SOURCE_ROOT; };
C495EE8816B910DE0041304E /* CredentialsInputController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CredentialsInputController.m; path = Controllers/CredentialsInputController.m; sourceTree = SOURCE_ROOT; };
C495EE8916B910DE0041304E /* EditorBaseController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EditorBaseController.h; path = Controllers/EditorBaseController.h; sourceTree = SOURCE_ROOT; };
C495EE8A16B910DE0041304E /* EditorBaseController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EditorBaseController.m; path = Controllers/EditorBaseController.m; sourceTree = SOURCE_ROOT; };
C495EE8B16B910DE0041304E /* EditorSelectionController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EditorSelectionController.h; path = Controllers/EditorSelectionController.h; sourceTree = SOURCE_ROOT; };
C495EE8C16B910DE0041304E /* EditorSelectionController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EditorSelectionController.m; path = Controllers/EditorSelectionController.m; sourceTree = SOURCE_ROOT; };
C495EE8D16B910DE0041304E /* EncryptionController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EncryptionController.h; path = Controllers/EncryptionController.h; sourceTree = SOURCE_ROOT; };
C495EE8E16B910DE0041304E /* EncryptionController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EncryptionController.m; path = Controllers/EncryptionController.m; sourceTree = SOURCE_ROOT; };
C495EE8F16B910DE0041304E /* HelpController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HelpController.h; path = Controllers/HelpController.h; sourceTree = SOURCE_ROOT; };
C495EE9016B910DE0041304E /* HelpController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HelpController.m; path = Controllers/HelpController.m; sourceTree = SOURCE_ROOT; };
C495EE9116B910DE0041304E /* MainTabBarController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MainTabBarController.h; path = Controllers/MainTabBarController.h; sourceTree = SOURCE_ROOT; };
C495EE9216B910DE0041304E /* MainTabBarController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MainTabBarController.m; path = Controllers/MainTabBarController.m; sourceTree = SOURCE_ROOT; };
C495EE9316B910DE0041304E /* PerformanceEditorController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PerformanceEditorController.h; path = Controllers/PerformanceEditorController.h; sourceTree = SOURCE_ROOT; };
C495EE9416B910DE0041304E /* PerformanceEditorController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PerformanceEditorController.m; path = Controllers/PerformanceEditorController.m; sourceTree = SOURCE_ROOT; };
C495EE9516B910DE0041304E /* RDPSessionViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RDPSessionViewController.h; path = Controllers/RDPSessionViewController.h; sourceTree = SOURCE_ROOT; };
C495EE9616B910DE0041304E /* RDPSessionViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RDPSessionViewController.m; path = Controllers/RDPSessionViewController.m; sourceTree = SOURCE_ROOT; };
C495EE9716B910DE0041304E /* ScreenSelectionController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScreenSelectionController.h; path = Controllers/ScreenSelectionController.h; sourceTree = SOURCE_ROOT; };
C495EE9816B910DE0041304E /* ScreenSelectionController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ScreenSelectionController.m; path = Controllers/ScreenSelectionController.m; sourceTree = SOURCE_ROOT; };
C495EE9916B910DE0041304E /* VerifyCertificateController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VerifyCertificateController.h; path = Controllers/VerifyCertificateController.h; sourceTree = SOURCE_ROOT; };
C495EE9A16B910DE0041304E /* VerifyCertificateController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VerifyCertificateController.m; path = Controllers/VerifyCertificateController.m; sourceTree = SOURCE_ROOT; };
C495EEAC16B910F60041304E /* ios_freerdp_events.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ios_freerdp_events.h; path = FreeRDP/ios_freerdp_events.h; sourceTree = SOURCE_ROOT; };
C495EEAD16B910F60041304E /* ios_freerdp_events.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ios_freerdp_events.m; path = FreeRDP/ios_freerdp_events.m; sourceTree = SOURCE_ROOT; };
C495EEAE16B910F60041304E /* ios_freerdp_ui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ios_freerdp_ui.h; path = FreeRDP/ios_freerdp_ui.h; sourceTree = SOURCE_ROOT; };
C495EEAF16B910F60041304E /* ios_freerdp_ui.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ios_freerdp_ui.m; path = FreeRDP/ios_freerdp_ui.m; sourceTree = SOURCE_ROOT; };
C495EEB016B910F60041304E /* ios_freerdp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ios_freerdp.h; path = FreeRDP/ios_freerdp.h; sourceTree = SOURCE_ROOT; };
C495EEB116B910F60041304E /* ios_freerdp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ios_freerdp.m; path = FreeRDP/ios_freerdp.m; sourceTree = SOURCE_ROOT; };
C495EEB616B9111A0041304E /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Reachability.h; path = Misc/Reachability.h; sourceTree = SOURCE_ROOT; };
C495EEB716B9111A0041304E /* Reachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Reachability.m; path = Misc/Reachability.m; sourceTree = SOURCE_ROOT; };
C495EEB816B9111A0041304E /* SFHFKeychainUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SFHFKeychainUtils.h; path = Misc/SFHFKeychainUtils.h; sourceTree = SOURCE_ROOT; };
C495EEB916B9111A0041304E /* SFHFKeychainUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SFHFKeychainUtils.m; path = Misc/SFHFKeychainUtils.m; sourceTree = SOURCE_ROOT; };
C495EEBA16B9111A0041304E /* TSXTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TSXTypes.h; path = Misc/TSXTypes.h; sourceTree = SOURCE_ROOT; };
C495EEBB16B9111A0041304E /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = Misc/Utils.h; sourceTree = SOURCE_ROOT; };
C495EEBC16B9111A0041304E /* Utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Utils.m; path = Misc/Utils.m; sourceTree = SOURCE_ROOT; };
C495EEC116B911290041304E /* Bookmark.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Bookmark.h; path = Models/Bookmark.h; sourceTree = SOURCE_ROOT; };
C495EEC216B911290041304E /* Bookmark.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Bookmark.m; path = Models/Bookmark.m; sourceTree = SOURCE_ROOT; };
C495EEC316B911290041304E /* ConnectionParams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ConnectionParams.h; path = Models/ConnectionParams.h; sourceTree = SOURCE_ROOT; };
C495EEC416B911290041304E /* ConnectionParams.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ConnectionParams.m; path = Models/ConnectionParams.m; sourceTree = SOURCE_ROOT; };
C495EEC516B911290041304E /* Encryptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Encryptor.h; path = Models/Encryptor.h; sourceTree = SOURCE_ROOT; };
C495EEC616B911290041304E /* Encryptor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Encryptor.m; path = Models/Encryptor.m; sourceTree = SOURCE_ROOT; };
C495EEC716B911290041304E /* GlobalDefaults.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GlobalDefaults.h; path = Models/GlobalDefaults.h; sourceTree = SOURCE_ROOT; };
C495EEC816B911290041304E /* GlobalDefaults.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GlobalDefaults.m; path = Models/GlobalDefaults.m; sourceTree = SOURCE_ROOT; };
C495EEC916B911290041304E /* RDPKeyboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RDPKeyboard.h; path = Models/RDPKeyboard.h; sourceTree = SOURCE_ROOT; };
C495EECA16B911290041304E /* RDPKeyboard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RDPKeyboard.m; path = Models/RDPKeyboard.m; sourceTree = SOURCE_ROOT; };
C495EECB16B911290041304E /* RDPSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RDPSession.h; path = Models/RDPSession.h; sourceTree = SOURCE_ROOT; };
C495EECC16B911290041304E /* RDPSession.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RDPSession.m; path = Models/RDPSession.m; sourceTree = SOURCE_ROOT; };
C495EEDA16B911450041304E /* BookmarkListView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = BookmarkListView.xib; path = Resources/BookmarkListView.xib; sourceTree = SOURCE_ROOT; };
C495EEDB16B911450041304E /* BookmarkTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = BookmarkTableViewCell.xib; path = Resources/BookmarkTableViewCell.xib; sourceTree = SOURCE_ROOT; };
C495EEDC16B911450041304E /* cancel_button_background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = cancel_button_background.png; path = Resources/cancel_button_background.png; sourceTree = SOURCE_ROOT; };
C495EEDD16B911450041304E /* CredentialsInputView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CredentialsInputView.xib; path = Resources/CredentialsInputView.xib; sourceTree = SOURCE_ROOT; };
C495EEDE16B911450041304E /* Default-Landscape@2x~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-Landscape@2x~ipad.png"; path = "Resources/Default-Landscape@2x~ipad.png"; sourceTree = SOURCE_ROOT; };
C495EEDF16B911450041304E /* Default-Landscape~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-Landscape~ipad.png"; path = "Resources/Default-Landscape~ipad.png"; sourceTree = SOURCE_ROOT; };
C495EEE016B911450041304E /* Default-Portrait@2x~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-Portrait@2x~ipad.png"; path = "Resources/Default-Portrait@2x~ipad.png"; sourceTree = SOURCE_ROOT; };
C495EEE116B911450041304E /* Default-Portrait~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-Portrait~ipad.png"; path = "Resources/Default-Portrait~ipad.png"; sourceTree = SOURCE_ROOT; };
C495EEE216B911450041304E /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Default.png; path = Resources/Default.png; sourceTree = SOURCE_ROOT; };
C495EEE316B911450041304E /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default@2x.png"; path = "Resources/Default@2x.png"; sourceTree = SOURCE_ROOT; };
C495EEE416B911450041304E /* EditButtonTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = EditButtonTableViewCell.xib; path = Resources/EditButtonTableViewCell.xib; sourceTree = SOURCE_ROOT; };
C495EEE516B911450041304E /* EditFlagTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = EditFlagTableViewCell.xib; path = Resources/EditFlagTableViewCell.xib; sourceTree = SOURCE_ROOT; };
C495EEE616B911450041304E /* EditSecretTextTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = EditSecretTextTableViewCell.xib; path = Resources/EditSecretTextTableViewCell.xib; sourceTree = SOURCE_ROOT; };
C495EEE716B911450041304E /* EditSelectionTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = EditSelectionTableViewCell.xib; path = Resources/EditSelectionTableViewCell.xib; sourceTree = SOURCE_ROOT; };
C495EEE816B911450041304E /* EditSubEditTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = EditSubEditTableViewCell.xib; path = Resources/EditSubEditTableViewCell.xib; sourceTree = SOURCE_ROOT; };
C495EEE916B911450041304E /* EditTextTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = EditTextTableViewCell.xib; path = Resources/EditTextTableViewCell.xib; sourceTree = SOURCE_ROOT; };
C495EEFE16B911450041304E /* icon_accessory_star_off.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = icon_accessory_star_off.png; path = Resources/icon_accessory_star_off.png; sourceTree = SOURCE_ROOT; };
C495EEFF16B911450041304E /* icon_accessory_star_on.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = icon_accessory_star_on.png; path = Resources/icon_accessory_star_on.png; sourceTree = SOURCE_ROOT; };
C495EF0016B911450041304E /* icon_key_arrow_down.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = icon_key_arrow_down.png; path = Resources/icon_key_arrow_down.png; sourceTree = SOURCE_ROOT; };
C495EF0116B911450041304E /* icon_key_arrow_left.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = icon_key_arrow_left.png; path = Resources/icon_key_arrow_left.png; sourceTree = SOURCE_ROOT; };
C495EF0216B911450041304E /* icon_key_arrow_right.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = icon_key_arrow_right.png; path = Resources/icon_key_arrow_right.png; sourceTree = SOURCE_ROOT; };
C495EF0316B911450041304E /* icon_key_arrow_up.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = icon_key_arrow_up.png; path = Resources/icon_key_arrow_up.png; sourceTree = SOURCE_ROOT; };
C495EF0416B911450041304E /* icon_key_arrows.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = icon_key_arrows.png; path = Resources/icon_key_arrows.png; sourceTree = SOURCE_ROOT; };
C495EF0516B911450041304E /* icon_key_backspace.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = icon_key_backspace.png; path = Resources/icon_key_backspace.png; sourceTree = SOURCE_ROOT; };
C495EF0616B911450041304E /* icon_key_menu.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = icon_key_menu.png; path = Resources/icon_key_menu.png; sourceTree = SOURCE_ROOT; };
C495EF0716B911450041304E /* icon_key_return.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = icon_key_return.png; path = Resources/icon_key_return.png; sourceTree = SOURCE_ROOT; };
C495EF0816B911450041304E /* icon_key_win.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = icon_key_win.png; path = Resources/icon_key_win.png; sourceTree = SOURCE_ROOT; };
C495EF0916B911450041304E /* Icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-72.png"; path = "Resources/Icon-72.png"; sourceTree = SOURCE_ROOT; };
C495EF0A16B911450041304E /* Icon-72@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-72@2x.png"; path = "Resources/Icon-72@2x.png"; sourceTree = SOURCE_ROOT; };
C495EF0B16B911450041304E /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon.png; path = Resources/Icon.png; sourceTree = SOURCE_ROOT; };
C495EF0C16B911450041304E /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon@2x.png"; path = "Resources/Icon@2x.png"; sourceTree = SOURCE_ROOT; };
C495EF0D16B911450041304E /* keyboard_button_background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = keyboard_button_background.png; path = Resources/keyboard_button_background.png; sourceTree = SOURCE_ROOT; };
C495EF0E16B911450041304E /* MainWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = MainWindow.xib; path = Resources/MainWindow.xib; sourceTree = SOURCE_ROOT; };
C495EF0F16B911450041304E /* RDPConnectingView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = RDPConnectingView.xib; path = Resources/RDPConnectingView.xib; sourceTree = SOURCE_ROOT; };
C495EF1016B911450041304E /* RDPSessionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = RDPSessionView.xib; path = Resources/RDPSessionView.xib; sourceTree = SOURCE_ROOT; };
C495EF1116B911450041304E /* SessionTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = SessionTableViewCell.xib; path = Resources/SessionTableViewCell.xib; sourceTree = SOURCE_ROOT; };
C495EF1216B911450041304E /* tabbar_icon_about.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = tabbar_icon_about.png; path = Resources/tabbar_icon_about.png; sourceTree = SOURCE_ROOT; };
C495EF1316B911450041304E /* tabbar_icon_help.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = tabbar_icon_help.png; path = Resources/tabbar_icon_help.png; sourceTree = SOURCE_ROOT; };
C495EF1416B911450041304E /* tabbar_icon_settings.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = tabbar_icon_settings.png; path = Resources/tabbar_icon_settings.png; sourceTree = SOURCE_ROOT; };
C495EF1516B911450041304E /* toolbar_icon_disconnect.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = toolbar_icon_disconnect.png; path = Resources/toolbar_icon_disconnect.png; sourceTree = SOURCE_ROOT; };
C495EF1616B911450041304E /* toolbar_icon_extkeyboad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = toolbar_icon_extkeyboad.png; path = Resources/toolbar_icon_extkeyboad.png; sourceTree = SOURCE_ROOT; };
C495EF1716B911450041304E /* toolbar_icon_home.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = toolbar_icon_home.png; path = Resources/toolbar_icon_home.png; sourceTree = SOURCE_ROOT; };
C495EF1816B911450041304E /* toolbar_icon_keyboard.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = toolbar_icon_keyboard.png; path = Resources/toolbar_icon_keyboard.png; sourceTree = SOURCE_ROOT; };
C495EF1916B911450041304E /* toolbar_icon_touchpointer.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = toolbar_icon_touchpointer.png; path = Resources/toolbar_icon_touchpointer.png; sourceTree = SOURCE_ROOT; };
C495EF1A16B911450041304E /* toolbar_icon_win.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = toolbar_icon_win.png; path = Resources/toolbar_icon_win.png; sourceTree = SOURCE_ROOT; };
C495EF1B16B911450041304E /* touch_pointer_active.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = touch_pointer_active.png; path = Resources/touch_pointer_active.png; sourceTree = SOURCE_ROOT; };
C495EF1C16B911450041304E /* touch_pointer_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = touch_pointer_default.png; path = Resources/touch_pointer_default.png; sourceTree = SOURCE_ROOT; };
C495EF1D16B911450041304E /* touch_pointer_extkeyboard.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = touch_pointer_extkeyboard.png; path = Resources/touch_pointer_extkeyboard.png; sourceTree = SOURCE_ROOT; };
C495EF1E16B911450041304E /* touch_pointer_keyboard.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = touch_pointer_keyboard.png; path = Resources/touch_pointer_keyboard.png; sourceTree = SOURCE_ROOT; };
C495EF1F16B911450041304E /* touch_pointer_lclick.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = touch_pointer_lclick.png; path = Resources/touch_pointer_lclick.png; sourceTree = SOURCE_ROOT; };
C495EF2016B911450041304E /* touch_pointer_rclick.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = touch_pointer_rclick.png; path = Resources/touch_pointer_rclick.png; sourceTree = SOURCE_ROOT; };
C495EF2116B911450041304E /* touch_pointer_reset.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = touch_pointer_reset.png; path = Resources/touch_pointer_reset.png; sourceTree = SOURCE_ROOT; };
C495EF2216B911450041304E /* touch_pointer_scroll.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = touch_pointer_scroll.png; path = Resources/touch_pointer_scroll.png; sourceTree = SOURCE_ROOT; };
C495EF2316B911450041304E /* VerifyCertificateView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VerifyCertificateView.xib; path = Resources/VerifyCertificateView.xib; sourceTree = SOURCE_ROOT; };
C495EF8216B911AB0041304E /* AdvancedKeyboardView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AdvancedKeyboardView.h; path = Views/AdvancedKeyboardView.h; sourceTree = SOURCE_ROOT; };
C495EF8316B911AB0041304E /* AdvancedKeyboardView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AdvancedKeyboardView.m; path = Views/AdvancedKeyboardView.m; sourceTree = SOURCE_ROOT; };
C495EF8416B911AB0041304E /* BookmarkTableCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BookmarkTableCell.h; path = Views/BookmarkTableCell.h; sourceTree = SOURCE_ROOT; };
C495EF8516B911AB0041304E /* BookmarkTableCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BookmarkTableCell.m; path = Views/BookmarkTableCell.m; sourceTree = SOURCE_ROOT; };
C495EF8616B911AB0041304E /* EditButtonTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EditButtonTableViewCell.h; path = Views/EditButtonTableViewCell.h; sourceTree = SOURCE_ROOT; };
C495EF8716B911AB0041304E /* EditButtonTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EditButtonTableViewCell.m; path = Views/EditButtonTableViewCell.m; sourceTree = SOURCE_ROOT; };
C495EF8816B911AB0041304E /* EditFlagTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EditFlagTableViewCell.h; path = Views/EditFlagTableViewCell.h; sourceTree = SOURCE_ROOT; };
C495EF8916B911AB0041304E /* EditFlagTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EditFlagTableViewCell.m; path = Views/EditFlagTableViewCell.m; sourceTree = SOURCE_ROOT; };
C495EF8A16B911AB0041304E /* EditSecretTextTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EditSecretTextTableViewCell.h; path = Views/EditSecretTextTableViewCell.h; sourceTree = SOURCE_ROOT; };
C495EF8B16B911AB0041304E /* EditSecretTextTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EditSecretTextTableViewCell.m; path = Views/EditSecretTextTableViewCell.m; sourceTree = SOURCE_ROOT; };
C495EF8C16B911AB0041304E /* EditSelectionTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EditSelectionTableViewCell.h; path = Views/EditSelectionTableViewCell.h; sourceTree = SOURCE_ROOT; };
C495EF8D16B911AB0041304E /* EditSelectionTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EditSelectionTableViewCell.m; path = Views/EditSelectionTableViewCell.m; sourceTree = SOURCE_ROOT; };
C495EF8E16B911AB0041304E /* EditSubEditTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EditSubEditTableViewCell.h; path = Views/EditSubEditTableViewCell.h; sourceTree = SOURCE_ROOT; };
C495EF8F16B911AB0041304E /* EditSubEditTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EditSubEditTableViewCell.m; path = Views/EditSubEditTableViewCell.m; sourceTree = SOURCE_ROOT; };
C495EF9016B911AB0041304E /* EditTextTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EditTextTableViewCell.h; path = Views/EditTextTableViewCell.h; sourceTree = SOURCE_ROOT; };
C495EF9116B911AB0041304E /* EditTextTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EditTextTableViewCell.m; path = Views/EditTextTableViewCell.m; sourceTree = SOURCE_ROOT; };
C495EF9216B911AB0041304E /* RDPSessionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RDPSessionView.h; path = Views/RDPSessionView.h; sourceTree = SOURCE_ROOT; };
C495EF9316B911AB0041304E /* RDPSessionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RDPSessionView.m; path = Views/RDPSessionView.m; sourceTree = SOURCE_ROOT; };
C495EF9416B911AB0041304E /* SessionTableCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SessionTableCell.h; path = Views/SessionTableCell.h; sourceTree = SOURCE_ROOT; };
C495EF9516B911AB0041304E /* SessionTableCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SessionTableCell.m; path = Views/SessionTableCell.m; sourceTree = SOURCE_ROOT; };
C495EF9616B911AB0041304E /* TouchPointerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TouchPointerView.h; path = Views/TouchPointerView.h; sourceTree = SOURCE_ROOT; };
C495EF9716B911AB0041304E /* TouchPointerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TouchPointerView.m; path = Views/TouchPointerView.m; sourceTree = SOURCE_ROOT; };
C495EFAA16B912C40041304E /* libfreerdp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libfreerdp.a; path = ../../libfreerdp/libfreerdp.a; sourceTree = "<group>"; };
C495EFAD16B913980041304E /* libwinpr.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libwinpr.a; path = ../../winpr/libwinpr/libwinpr.a; sourceTree = "<group>"; };
C495EFBA16B92E170041304E /* about_page */ = {isa = PBXFileReference; lastKnownFileType = folder; name = about_page; path = Resources/about_page; sourceTree = SOURCE_ROOT; };
C495EFBC16B92E270041304E /* help_page */ = {isa = PBXFileReference; lastKnownFileType = folder; name = help_page; path = Resources/help_page; sourceTree = SOURCE_ROOT; };
C495EFC116B92EA20041304E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = Resources/en.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; };
C495EFC816B933220041304E /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = SOURCE_ROOT; };
C495EFC916B933230041304E /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = SOURCE_ROOT; };
C495EFCA16B933230041304E /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = SOURCE_ROOT; };
C495F01516B937F80041304E /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = @FREERDP_IOS_EXTERNAL_SSL_PATH@/lib/libcrypto.a; sourceTree = "<group>"; };
C495F01616B937F90041304E /* libssl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libssl.a; path = @FREERDP_IOS_EXTERNAL_SSL_PATH@/lib/libssl.a; sourceTree = "<group>"; };
C495F01916B938210041304E /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
C495F01D16B938CA0041304E /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
C4B6A8811701979900AA836E /* libfreerdp-client-combined.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libfreerdp-client-combined.a"; path = "../common/libfreerdp-client-combined.a"; sourceTree = "<group>"; };
C4C31C6E16BAD1890087BB12 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-568h@2x.png"; path = "Resources/Default-568h@2x.png"; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
C495EE2C16B8372D0041304E /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
C495F01716B937F90041304E /* libcrypto.a in Frameworks */,
C495F01816B937F90041304E /* libssl.a in Frameworks */,
C495EFAE16B913980041304E /* libwinpr.a in Frameworks */,
C495EFAB16B912C40041304E /* libfreerdp.a in Frameworks */,
C495EE3416B8372D0041304E /* UIKit.framework in Frameworks */,
C495EE3616B8372D0041304E /* Foundation.framework in Frameworks */,
C495EE3816B8372D0041304E /* CoreGraphics.framework in Frameworks */,
C495F01A16B938210041304E /* Security.framework in Frameworks */,
C495F01E16B938CB0041304E /* SystemConfiguration.framework in Frameworks */,
C4B6A8821701979900AA836E /* libfreerdp-client-combined.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
C495EE2416B8372D0041304E = {
isa = PBXGroup;
children = (
C495EE3916B8372D0041304E /* iFreeRDP */,
C495EE3216B8372D0041304E /* Frameworks */,
C495EE3016B8372D0041304E /* Products */,
);
sourceTree = "<group>";
};
C495EE3016B8372D0041304E /* Products */ = {
isa = PBXGroup;
children = (
C495EE2F16B8372D0041304E /* iFreeRDP.app */,
);
name = Products;
sourceTree = "<group>";
};
C495EE3216B8372D0041304E /* Frameworks */ = {
isa = PBXGroup;
children = (
C4B6A8811701979900AA836E /* libfreerdp-client-combined.a */,
C495EFAA16B912C40041304E /* libfreerdp.a */,
C495EFAD16B913980041304E /* libwinpr.a */,
C495F01516B937F80041304E /* libcrypto.a */,
C495F01616B937F90041304E /* libssl.a */,
C495F01D16B938CA0041304E /* SystemConfiguration.framework */,
C495F01916B938210041304E /* Security.framework */,
C495EE3316B8372D0041304E /* UIKit.framework */,
C495EE3516B8372D0041304E /* Foundation.framework */,
C495EE3716B8372D0041304E /* CoreGraphics.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
C495EE3916B8372D0041304E /* iFreeRDP */ = {
isa = PBXGroup;
children = (
C495EE3A16B8372D0041304E /* Cocoa and Foundation Additions */,
C495EE7A16B910CB0041304E /* Controllers */,
C495EEAB16B910E90041304E /* FreeRDP */,
C495EEB516B910FA0041304E /* Misc */,
C495EEC016B9111E0041304E /* Models */,
C495EED316B9112E0041304E /* Resources */,
C495EF8116B911940041304E /* Views */,
C495EFC816B933220041304E /* AppDelegate.h */,
C495EFC916B933230041304E /* AppDelegate.m */,
C495EFCA16B933230041304E /* main.m */,
C495EE6F16B9107D0041304E /* Defaults.plist */,
C495EE6D16B910510041304E /* iFreeRDP.plist */,
C495EE4116B8372D0041304E /* iFreeRDP-Prefix.pch */,
);
path = iFreeRDP;
sourceTree = "<group>";
};
C495EE3A16B8372D0041304E /* Cocoa and Foundation Additions */ = {
isa = PBXGroup;
children = (
C495EE7116B910BC0041304E /* OrderedDictionary.h */,
C495EE7216B910BC0041304E /* OrderedDictionary.m */,
C495EE7316B910BC0041304E /* Toast+UIView.h */,
C495EE7416B910BC0041304E /* Toast+UIView.m */,
C495EE7516B910BC0041304E /* TSXAdditions.h */,
C495EE7616B910BC0041304E /* TSXAdditions.m */,
);
name = "Cocoa and Foundation Additions";
sourceTree = "<group>";
};
C495EE7A16B910CB0041304E /* Controllers */ = {
isa = PBXGroup;
children = (
C495EE7B16B910DE0041304E /* AboutController.h */,
C495EE7C16B910DE0041304E /* AboutController.m */,
C495EE7D16B910DE0041304E /* AdvancedBookmarkEditorController.h */,
C495EE7E16B910DE0041304E /* AdvancedBookmarkEditorController.m */,
C495EE7F16B910DE0041304E /* AppSettingsController.h */,
C495EE8016B910DE0041304E /* AppSettingsController.m */,
C495EE8116B910DE0041304E /* BookmarkEditorController.h */,
C495EE8216B910DE0041304E /* BookmarkEditorController.m */,
C495EE8316B910DE0041304E /* BookmarkListController.h */,
C495EE8416B910DE0041304E /* BookmarkListController.m */,
C495EE8516B910DE0041304E /* CredentialsEditorController.h */,
C495EE8616B910DE0041304E /* CredentialsEditorController.m */,
C495EE8716B910DE0041304E /* CredentialsInputController.h */,
C495EE8816B910DE0041304E /* CredentialsInputController.m */,
C495EE8916B910DE0041304E /* EditorBaseController.h */,
C495EE8A16B910DE0041304E /* EditorBaseController.m */,
C495EE8B16B910DE0041304E /* EditorSelectionController.h */,
C495EE8C16B910DE0041304E /* EditorSelectionController.m */,
C495EE8D16B910DE0041304E /* EncryptionController.h */,
C495EE8E16B910DE0041304E /* EncryptionController.m */,
C495EE8F16B910DE0041304E /* HelpController.h */,
C495EE9016B910DE0041304E /* HelpController.m */,
C495EE9116B910DE0041304E /* MainTabBarController.h */,
C495EE9216B910DE0041304E /* MainTabBarController.m */,
C495EE9316B910DE0041304E /* PerformanceEditorController.h */,
C495EE9416B910DE0041304E /* PerformanceEditorController.m */,
C495EE9516B910DE0041304E /* RDPSessionViewController.h */,
C495EE9616B910DE0041304E /* RDPSessionViewController.m */,
C495EE9716B910DE0041304E /* ScreenSelectionController.h */,
C495EE9816B910DE0041304E /* ScreenSelectionController.m */,
C495EE9916B910DE0041304E /* VerifyCertificateController.h */,
C495EE9A16B910DE0041304E /* VerifyCertificateController.m */,
);
name = Controllers;
sourceTree = "<group>";
};
C495EEAB16B910E90041304E /* FreeRDP */ = {
isa = PBXGroup;
children = (
C495EEAC16B910F60041304E /* ios_freerdp_events.h */,
C495EEAD16B910F60041304E /* ios_freerdp_events.m */,
C495EEAE16B910F60041304E /* ios_freerdp_ui.h */,
C495EEAF16B910F60041304E /* ios_freerdp_ui.m */,
C495EEB016B910F60041304E /* ios_freerdp.h */,
C495EEB116B910F60041304E /* ios_freerdp.m */,
);
name = FreeRDP;
sourceTree = "<group>";
};
C495EEB516B910FA0041304E /* Misc */ = {
isa = PBXGroup;
children = (
C495EEB616B9111A0041304E /* Reachability.h */,
C495EEB716B9111A0041304E /* Reachability.m */,
C495EEB816B9111A0041304E /* SFHFKeychainUtils.h */,
C495EEB916B9111A0041304E /* SFHFKeychainUtils.m */,
C495EEBA16B9111A0041304E /* TSXTypes.h */,
C495EEBB16B9111A0041304E /* Utils.h */,
C495EEBC16B9111A0041304E /* Utils.m */,
);
name = Misc;
sourceTree = "<group>";
};
C495EEC016B9111E0041304E /* Models */ = {
isa = PBXGroup;
children = (
C495EEC116B911290041304E /* Bookmark.h */,
C495EEC216B911290041304E /* Bookmark.m */,
C495EEC316B911290041304E /* ConnectionParams.h */,
C495EEC416B911290041304E /* ConnectionParams.m */,
C495EEC516B911290041304E /* Encryptor.h */,
C495EEC616B911290041304E /* Encryptor.m */,
C495EEC716B911290041304E /* GlobalDefaults.h */,
C495EEC816B911290041304E /* GlobalDefaults.m */,
C495EEC916B911290041304E /* RDPKeyboard.h */,
C495EECA16B911290041304E /* RDPKeyboard.m */,
C495EECB16B911290041304E /* RDPSession.h */,
C495EECC16B911290041304E /* RDPSession.m */,
);
name = Models;
sourceTree = "<group>";
};
C495EED316B9112E0041304E /* Resources */ = {
isa = PBXGroup;
children = (
C4C31C6E16BAD1890087BB12 /* Default-568h@2x.png */,
C495EFC016B92EA20041304E /* Localizable.strings */,
C495EFBC16B92E270041304E /* help_page */,
C495EFBA16B92E170041304E /* about_page */,
C495EEDC16B911450041304E /* cancel_button_background.png */,
C495EEDE16B911450041304E /* Default-Landscape@2x~ipad.png */,
C495EEDF16B911450041304E /* Default-Landscape~ipad.png */,
C495EEE016B911450041304E /* Default-Portrait@2x~ipad.png */,
C495EEE116B911450041304E /* Default-Portrait~ipad.png */,
C495EEE216B911450041304E /* Default.png */,
C495EEE316B911450041304E /* Default@2x.png */,
C495EEFE16B911450041304E /* icon_accessory_star_off.png */,
C495EEFF16B911450041304E /* icon_accessory_star_on.png */,
C495EF0016B911450041304E /* icon_key_arrow_down.png */,
C495EF0116B911450041304E /* icon_key_arrow_left.png */,
C495EF0216B911450041304E /* icon_key_arrow_right.png */,
C495EF0316B911450041304E /* icon_key_arrow_up.png */,
C495EF0416B911450041304E /* icon_key_arrows.png */,
C495EF0516B911450041304E /* icon_key_backspace.png */,
C495EF0616B911450041304E /* icon_key_menu.png */,
C495EF0716B911450041304E /* icon_key_return.png */,
C495EF0816B911450041304E /* icon_key_win.png */,
C495EF0916B911450041304E /* Icon-72.png */,
C495EF0A16B911450041304E /* Icon-72@2x.png */,
C495EF0B16B911450041304E /* Icon.png */,
C495EF0C16B911450041304E /* Icon@2x.png */,
C495EF0D16B911450041304E /* keyboard_button_background.png */,
C495EF1216B911450041304E /* tabbar_icon_about.png */,
C495EF1316B911450041304E /* tabbar_icon_help.png */,
C495EF1416B911450041304E /* tabbar_icon_settings.png */,
C495EF1516B911450041304E /* toolbar_icon_disconnect.png */,
C495EF1616B911450041304E /* toolbar_icon_extkeyboad.png */,
C495EF1716B911450041304E /* toolbar_icon_home.png */,
C495EF1816B911450041304E /* toolbar_icon_keyboard.png */,
C495EF1916B911450041304E /* toolbar_icon_touchpointer.png */,
C495EF1A16B911450041304E /* toolbar_icon_win.png */,
C495EF1B16B911450041304E /* touch_pointer_active.png */,
C495EF1C16B911450041304E /* touch_pointer_default.png */,
C495EF1D16B911450041304E /* touch_pointer_extkeyboard.png */,
C495EF1E16B911450041304E /* touch_pointer_keyboard.png */,
C495EF1F16B911450041304E /* touch_pointer_lclick.png */,
C495EF2016B911450041304E /* touch_pointer_rclick.png */,
C495EF2116B911450041304E /* touch_pointer_reset.png */,
C495EF2216B911450041304E /* touch_pointer_scroll.png */,
);
name = Resources;
sourceTree = "<group>";
};
C495EF8116B911940041304E /* Views */ = {
isa = PBXGroup;
children = (
C495EEDA16B911450041304E /* BookmarkListView.xib */,
C495EEDB16B911450041304E /* BookmarkTableViewCell.xib */,
C495EEDD16B911450041304E /* CredentialsInputView.xib */,
C495EEE416B911450041304E /* EditButtonTableViewCell.xib */,
C495EEE516B911450041304E /* EditFlagTableViewCell.xib */,
C495EEE616B911450041304E /* EditSecretTextTableViewCell.xib */,
C495EEE716B911450041304E /* EditSelectionTableViewCell.xib */,
C495EEE816B911450041304E /* EditSubEditTableViewCell.xib */,
C495EEE916B911450041304E /* EditTextTableViewCell.xib */,
C495EF0E16B911450041304E /* MainWindow.xib */,
C495EF0F16B911450041304E /* RDPConnectingView.xib */,
C495EF1016B911450041304E /* RDPSessionView.xib */,
C495EF1116B911450041304E /* SessionTableViewCell.xib */,
C495EF2316B911450041304E /* VerifyCertificateView.xib */,
C495EF8216B911AB0041304E /* AdvancedKeyboardView.h */,
C495EF8316B911AB0041304E /* AdvancedKeyboardView.m */,
C495EF8416B911AB0041304E /* BookmarkTableCell.h */,
C495EF8516B911AB0041304E /* BookmarkTableCell.m */,
C495EF8616B911AB0041304E /* EditButtonTableViewCell.h */,
C495EF8716B911AB0041304E /* EditButtonTableViewCell.m */,
C495EF8816B911AB0041304E /* EditFlagTableViewCell.h */,
C495EF8916B911AB0041304E /* EditFlagTableViewCell.m */,
C495EF8A16B911AB0041304E /* EditSecretTextTableViewCell.h */,
C495EF8B16B911AB0041304E /* EditSecretTextTableViewCell.m */,
C495EF8C16B911AB0041304E /* EditSelectionTableViewCell.h */,
C495EF8D16B911AB0041304E /* EditSelectionTableViewCell.m */,
C495EF8E16B911AB0041304E /* EditSubEditTableViewCell.h */,
C495EF8F16B911AB0041304E /* EditSubEditTableViewCell.m */,
C495EF9016B911AB0041304E /* EditTextTableViewCell.h */,
C495EF9116B911AB0041304E /* EditTextTableViewCell.m */,
C495EF9216B911AB0041304E /* RDPSessionView.h */,
C495EF9316B911AB0041304E /* RDPSessionView.m */,
C495EF9416B911AB0041304E /* SessionTableCell.h */,
C495EF9516B911AB0041304E /* SessionTableCell.m */,
C495EF9616B911AB0041304E /* TouchPointerView.h */,
C495EF9716B911AB0041304E /* TouchPointerView.m */,
);
name = Views;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
C495EE2E16B8372D0041304E /* iFreeRDP */ = {
isa = PBXNativeTarget;
buildConfigurationList = C495EE6216B8372D0041304E /* Build configuration list for PBXNativeTarget "iFreeRDP" */;
buildPhases = (
C495EE2B16B8372D0041304E /* Sources */,
C495EE2C16B8372D0041304E /* Frameworks */,
C495EE2D16B8372D0041304E /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = iFreeRDP;
productName = iFreeRDP;
productReference = C495EE2F16B8372D0041304E /* iFreeRDP.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
C495EE2616B8372D0041304E /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0450;
ORGANIZATIONNAME = freerdp;
};
buildConfigurationList = C495EE2916B8372D0041304E /* Build configuration list for PBXProject "iFreeRDP" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = C495EE2416B8372D0041304E;
productRefGroup = C495EE3016B8372D0041304E /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
C495EE2E16B8372D0041304E /* iFreeRDP */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
C495EE2D16B8372D0041304E /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
C495EE7016B9107D0041304E /* Defaults.plist in Resources */,
C495EF3216B911450041304E /* BookmarkListView.xib in Resources */,
C495EF3316B911450041304E /* BookmarkTableViewCell.xib in Resources */,
C495EF3416B911450041304E /* cancel_button_background.png in Resources */,
C495EF3516B911450041304E /* CredentialsInputView.xib in Resources */,
C495EF3616B911450041304E /* Default-Landscape@2x~ipad.png in Resources */,
C495EF3716B911450041304E /* Default-Landscape~ipad.png in Resources */,
C495EF3816B911450041304E /* Default-Portrait@2x~ipad.png in Resources */,
C495EF3916B911450041304E /* Default-Portrait~ipad.png in Resources */,
C495EF3A16B911450041304E /* Default.png in Resources */,
C495EF3B16B911450041304E /* Default@2x.png in Resources */,
C495EF3C16B911450041304E /* EditButtonTableViewCell.xib in Resources */,
C495EF3D16B911450041304E /* EditFlagTableViewCell.xib in Resources */,
C495EF3E16B911450041304E /* EditSecretTextTableViewCell.xib in Resources */,
C495EF3F16B911450041304E /* EditSelectionTableViewCell.xib in Resources */,
C495EF4016B911450041304E /* EditSubEditTableViewCell.xib in Resources */,
C495EF4116B911450041304E /* EditTextTableViewCell.xib in Resources */,
C495EF5316B911450041304E /* icon_accessory_star_off.png in Resources */,
C495EF5416B911450041304E /* icon_accessory_star_on.png in Resources */,
C495EF5516B911450041304E /* icon_key_arrow_down.png in Resources */,
C495EF5616B911450041304E /* icon_key_arrow_left.png in Resources */,
C495EF5716B911450041304E /* icon_key_arrow_right.png in Resources */,
C495EF5816B911450041304E /* icon_key_arrow_up.png in Resources */,
C495EF5916B911450041304E /* icon_key_arrows.png in Resources */,
C495EF5A16B911450041304E /* icon_key_backspace.png in Resources */,
C495EF5B16B911450041304E /* icon_key_menu.png in Resources */,
C495EF5C16B911450041304E /* icon_key_return.png in Resources */,
C495EF5D16B911450041304E /* icon_key_win.png in Resources */,
C495EF5E16B911450041304E /* Icon-72.png in Resources */,
C495EF5F16B911450041304E /* Icon-72@2x.png in Resources */,
C495EF6016B911450041304E /* Icon.png in Resources */,
C495EF6116B911450041304E /* Icon@2x.png in Resources */,
C495EF6216B911450041304E /* keyboard_button_background.png in Resources */,
C495EF6316B911450041304E /* MainWindow.xib in Resources */,
C495EF6416B911450041304E /* RDPConnectingView.xib in Resources */,
C495EF6516B911450041304E /* RDPSessionView.xib in Resources */,
C495EF6616B911450041304E /* SessionTableViewCell.xib in Resources */,
C495EF6716B911450041304E /* tabbar_icon_about.png in Resources */,
C495EF6816B911450041304E /* tabbar_icon_help.png in Resources */,
C495EF6916B911450041304E /* tabbar_icon_settings.png in Resources */,
C495EF6A16B911450041304E /* toolbar_icon_disconnect.png in Resources */,
C495EF6B16B911450041304E /* toolbar_icon_extkeyboad.png in Resources */,
C495EF6C16B911450041304E /* toolbar_icon_home.png in Resources */,
C495EF6D16B911450041304E /* toolbar_icon_keyboard.png in Resources */,
C495EF6E16B911450041304E /* toolbar_icon_touchpointer.png in Resources */,
C495EF6F16B911450041304E /* toolbar_icon_win.png in Resources */,
C495EF7016B911450041304E /* touch_pointer_active.png in Resources */,
C495EF7116B911450041304E /* touch_pointer_default.png in Resources */,
C495EF7216B911450041304E /* touch_pointer_extkeyboard.png in Resources */,
C495EF7316B911450041304E /* touch_pointer_keyboard.png in Resources */,
C495EF7416B911450041304E /* touch_pointer_lclick.png in Resources */,
C495EF7516B911450041304E /* touch_pointer_rclick.png in Resources */,
C495EF7616B911450041304E /* touch_pointer_reset.png in Resources */,
C495EF7716B911450041304E /* touch_pointer_scroll.png in Resources */,
C495EF7816B911450041304E /* VerifyCertificateView.xib in Resources */,
C495EFBB16B92E170041304E /* about_page in Resources */,
C495EFBD16B92E270041304E /* help_page in Resources */,
C495EFC216B92EA20041304E /* Localizable.strings in Resources */,
C4C31C6F16BAD1890087BB12 /* Default-568h@2x.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
C495EE2B16B8372D0041304E /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
C495EE7716B910BC0041304E /* OrderedDictionary.m in Sources */,
C495EE7816B910BC0041304E /* Toast+UIView.m in Sources */,
C495EE7916B910BC0041304E /* TSXAdditions.m in Sources */,
C495EE9B16B910DE0041304E /* AboutController.m in Sources */,
C495EE9C16B910DE0041304E /* AdvancedBookmarkEditorController.m in Sources */,
C495EE9D16B910DE0041304E /* AppSettingsController.m in Sources */,
C495EE9E16B910DE0041304E /* BookmarkEditorController.m in Sources */,
C495EE9F16B910DE0041304E /* BookmarkListController.m in Sources */,
C495EEA016B910DE0041304E /* CredentialsEditorController.m in Sources */,
C495EEA116B910DE0041304E /* CredentialsInputController.m in Sources */,
C495EEA216B910DE0041304E /* EditorBaseController.m in Sources */,
C495EEA316B910DE0041304E /* EditorSelectionController.m in Sources */,
C495EEA416B910DE0041304E /* EncryptionController.m in Sources */,
C495EEA516B910DE0041304E /* HelpController.m in Sources */,
C495EEA616B910DE0041304E /* MainTabBarController.m in Sources */,
C495EEA716B910DE0041304E /* PerformanceEditorController.m in Sources */,
C495EEA816B910DE0041304E /* RDPSessionViewController.m in Sources */,
C495EEA916B910DE0041304E /* ScreenSelectionController.m in Sources */,
C495EEAA16B910DE0041304E /* VerifyCertificateController.m in Sources */,
C495EEB216B910F60041304E /* ios_freerdp_events.m in Sources */,
C495EEB316B910F60041304E /* ios_freerdp_ui.m in Sources */,
C495EEB416B910F60041304E /* ios_freerdp.m in Sources */,
C495EEBD16B9111A0041304E /* Reachability.m in Sources */,
C495EEBE16B9111A0041304E /* SFHFKeychainUtils.m in Sources */,
C495EEBF16B9111A0041304E /* Utils.m in Sources */,
C495EECD16B911290041304E /* Bookmark.m in Sources */,
C495EECE16B911290041304E /* ConnectionParams.m in Sources */,
C495EECF16B911290041304E /* Encryptor.m in Sources */,
C495EED016B911290041304E /* GlobalDefaults.m in Sources */,
C495EED116B911290041304E /* RDPKeyboard.m in Sources */,
C495EED216B911290041304E /* RDPSession.m in Sources */,
C495EF9A16B911AC0041304E /* AdvancedKeyboardView.m in Sources */,
C495EF9B16B911AC0041304E /* BookmarkTableCell.m in Sources */,
C495EF9C16B911AC0041304E /* EditButtonTableViewCell.m in Sources */,
C495EF9D16B911AC0041304E /* EditFlagTableViewCell.m in Sources */,
C495EF9E16B911AC0041304E /* EditSecretTextTableViewCell.m in Sources */,
C495EF9F16B911AC0041304E /* EditSelectionTableViewCell.m in Sources */,
C495EFA016B911AC0041304E /* EditSubEditTableViewCell.m in Sources */,
C495EFA116B911AC0041304E /* EditTextTableViewCell.m in Sources */,
C495EFA216B911AC0041304E /* RDPSessionView.m in Sources */,
C495EFA316B911AC0041304E /* SessionTableCell.m in Sources */,
C495EFA416B911AC0041304E /* TouchPointerView.m in Sources */,
C495EFCB16B933230041304E /* AppDelegate.m in Sources */,
C495EFCC16B933230041304E /* main.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
C495EFC016B92EA20041304E /* Localizable.strings */ = {
isa = PBXVariantGroup;
children = (
C495EFC116B92EA20041304E /* en */,
);
name = Localizable.strings;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
C495EE6016B8372D0041304E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_OBJC_ARC = NO;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
ONLY_ACTIVE_ARCH = YES;
PROVISIONING_PROFILE = "";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
C495EE6116B8372D0041304E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_OBJC_ARC = NO;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
PROVISIONING_PROFILE = "";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
C495EE6316B8372D0041304E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_ARC = "$(INHERIT)";
DEAD_CODE_STRIPPING = "$(INHERIT)";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "$(SRCROOT)/iFreeRDP-Prefix.pch";
HEADER_SEARCH_PATHS = (
"\"$(SRCROOT)/../../include\"",
"\"$(SRCROOT)/../../winpr/include\"",
"\"$(SRCROOT)/../../\"",
"\"@FREERDP_IOS_EXTERNAL_SSL_PATH@/include\"",
);
INFOPLIST_FILE = "$(SRCROOT)/iFreeRDP.plist";
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
LIBRARY_SEARCH_PATHS = (
"\"$(SRCROOT)/../../libfreerdp\"",
"\"$(SRCROOT)/../../winpr/libwinpr\"",
"\"@FREERDP_IOS_EXTERNAL_SSL_PATH@/lib\"",
"\"$(SRCROOT)/../common\"",
);
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
};
name = Debug;
};
C495EE6416B8372D0041304E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_ARC = "$(INHERIT)";
DEAD_CODE_STRIPPING = "$(INHERIT)";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "$(SRCROOT)/iFreeRDP-Prefix.pch";
HEADER_SEARCH_PATHS = (
"\"$(SRCROOT)/../../include\"",
"\"$(SRCROOT)/../../winpr/include\"",
"\"$(SRCROOT)/../../\"",
"\"@FREERDP_IOS_EXTERNAL_SSL_PATH@/include\"",
);
INFOPLIST_FILE = "$(SRCROOT)/iFreeRDP.plist";
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
LIBRARY_SEARCH_PATHS = (
"\"$(SRCROOT)/../../libfreerdp\"",
"\"$(SRCROOT)/../../winpr/libwinpr\"",
"\"@FREERDP_IOS_EXTERNAL_SSL_PATH@/lib\"",
"\"$(SRCROOT)/../common\"",
);
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
C495EE2916B8372D0041304E /* Build configuration list for PBXProject "iFreeRDP" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C495EE6016B8372D0041304E /* Debug */,
C495EE6116B8372D0041304E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
C495EE6216B8372D0041304E /* Build configuration list for PBXNativeTarget "iFreeRDP" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C495EE6316B8372D0041304E /* Debug */,
C495EE6416B8372D0041304E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = C495EE2616B8372D0041304E /* Project object */;
}

View File

@ -52,7 +52,7 @@ option(BUILD_TESTING "Build unit tests" OFF)
option(WITH_SAMPLE "Build sample code" OFF)
if(${CMAKE_VERSION} VERSION_GREATER 2.8.8)
if(ANDROID OR IOS)
if(ANDROID)
option(MONOLITHIC_BUILD "Use monolithic build" ON)
else()
option(MONOLITHIC_BUILD "Use monolithic build" OFF)

View File

@ -15,8 +15,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
option(IOS_BUILD_OBJC "Automatically build iOS objective-c code - build type depends on CMAKE_BUILD_TYPE" ON)
option(IOS_BUILD_OBJC_DEBUG "Create an iOS debug package" ON)
if (NOT FREERDP_IOS_EXTERNAL_SSL_PATH)
set(FREERDP_IOS_EXTERNAL_SSL_PATH "${CMAKE_CURRENT_SOURCE_DIR}/external/openssl")
endif()

View File

@ -2,15 +2,7 @@ Overview
========
The FreeRDP iOS port allows users to enjoy FreeRDP features on Apple iOS devices.
The application was written to be compatible with devices running iOS 3.2 or higher.
Please note that Apple dropped armv6 support in their latest Xcode releases.
If you want to compile for armv6 devices you will have to use an older Xcode version and build the OpenSSL libraries for armv6 as well.
For building the GUI part there are two possibilities:
* integrated build - have cmake to operate Xcode and build everything
* manual build - build FreeRDP libraries and invoke xcodebuild or Xcode manually for the frontend
Manual builds should be used for development.
The application was written to be compatible with devices running iOS 4.3 or higher.
Build requirements
@ -20,7 +12,6 @@ The following prerequisites are required in order to build the iOS port:
- cmake version >= 2.8.9
- latest Xcode installed (>= 4.6)
- installed "Command Line Tools" component
- installed Provisioning Profile and iOS Developer Certificate for code signing
- pre-build static OpenSSL libraries (see below)
@ -43,35 +34,23 @@ If you build OpenSSL youself you need to set FREERDP_IOS_EXTERNAL_SSL_PATH when
Building
========
Integrated build
----------------
Run the following commands in the top level FreeRDP directory:
cmake -DCMAKE_TOOLCHAIN_FILE=cmake/iOSToolchain.cmake
make
cmake -DCMAKE_TOOLCHAIN_FILE=cmake/iOSToolchain.cmake -GXcode
After that you should have a client/iOS/bin/<Debug or Release>/iFreeRDP.app application package.
This command will create a XCode project in the FreeRDP root folder called FreeRDP.xcodeproj.
Open the project in XCode and modify, build or run the app.
Manual iOS builds
-----------------
Alternatively you can also build the project from the command line using xcodebuild:
First run cmake to prepare the build:
cmake -DCMAKE_TOOLCHAIN_FILE=cmake/iOSToolchain.cmake -DIOS_BUILD_OBJC=OFF
make
Now you can run your favourite xcodebuild command in client/iOS like this:
cd client/iOS
xcodebuild -project iFreeRDP.xcodeproj -configuration Debug -sdk iphoneos6.1 install
xcodebuild -project FreeRDP.xcodeproj -configuration Debug -sdk iphoneos6.1
Notes:
* XCode, by default will build the application into its derived data location (usually in ~/Library/Developer/...).
If you want to specify an output directory add CONFIGURATION_BUILD_DIR=<output-path-here> to the end of above command line.
* If using XCode choose "Open Other" from the welcome screen, browse to the client/iOS directory in your FreeRDP folder and select iFreeRDP.xcodeproj.
* If using XCode choose "Open Other" from the welcome screen, browse to the FreeRDP root directory and select FreeRDP.xcodeproj.
cmake variables
@ -92,8 +71,3 @@ CMAKE_IOS_SDK_ROOT (used by toolchain file)
FREERDP_IOS_EXTERNAL_SSL_PATH (used by FindOpenSSL)
* absolut root path to the pre-built static OpenSSL libraries
IOS_BUILD_OBJC (used by client/iOS/CMakeLists.txt)
* can be ON/OFF (default ON) whether or not to build the objective-c UI with cmake
IOS_BUILD_OBJC_DEBUG (used by client/iOS/CMakeLists.txt)
* can be ON/OFF (default ON) whether or not to build a debug version of the objective-c UI

View File

@ -26,6 +26,10 @@
#include <wchar.h>
#include <winpr/windows.h>
#if defined(__OBJC__) && defined(__APPLE__)
#include <objc/objc.h>
#endif
#ifndef _WIN32
#define __int8 char