Addon PCL for iOS 1.09
Transcription
Addon PCL for iOS 1.09
Release Note Started d Addon PCL for iOS 1.09 ICO-OPE-01070 V3 Ingenico – 28-32 Boulevard de Grenelle - 75015 PARIS Tel. 33(0)1 58 01 80 00 - Fax 33 (0)1 58 01 91 35 Addon PCL for iOS 1.09 ICO-OPE-01070 V3 Contents 1. Delivery _____________________________________________________ 4 1.1. Purpose of this document ______________________________________________ 4 1.2. Scope ______________________________________________________________ 4 1.3. Pre-requisites ________________________________________________________ 4 1.1. Changes from version 1.08 _____________________________________________ 6 1.1.1. Evolutions_____________________________________________________________________ 6 1.1.2. Bug corrections ________________________________________________________________ 6 1.2. Changes from version 1.07 _____________________________________________ 6 1.2.1. Evolutions_____________________________________________________________________ 6 1.2.2. Bug corrections ________________________________________________________________ 6 1.3. Changes from version 1.06 _____________________________________________ 7 1.3.1. Evolutions_____________________________________________________________________ 7 1.3.2. Bug corrections ________________________________________________________________ 7 1.4. Changes from version 1.05 _____________________________________________ 8 1.4.1. Evolutions_____________________________________________________________________ 8 1.4.2. Bug corrections ________________________________________________________________ 8 1.5. Changes from version 1.04 _____________________________________________ 8 1.5.1. Evolutions_____________________________________________________________________ 8 1.5.2. Bug corrections ________________________________________________________________ 8 1.6. Known issues ________________________________________________________ 10 1.6.1. SSL Communication ____________________________________________________________ 10 1.6.2. MAC Addresses on iOS 7.x _______________________________________________________ 10 1.6.3. Bluetooth Secure Simple Pairing (SSP) not working on new iDevice like iPhone 5c and iPhone 5s 10 1.6.4. Crashes when Unplugging/Plugging iPod during Communication in iOS 6.0 _______________ 11 1.6.5. ICAdministration sendMessage Issue ______________________________________________ 11 1.6.6. iSMP Framework Symbolic Link Issue ______________________________________________ 11 2. Add-on content _______________________________________________ 13 Ingenico document - Reproduction or disclosure prohibited without written authorization Please check document validity before using Page 2 / 15 Addon PCL for iOS 1.09 ICO-OPE-01070 V3 2.1. IPHONE library folder _________________________________________________ 13 2.1.1. Binaries ______________________________________________________________________ 13 2.1.2. Documentation _______________________________________________________________ 13 2.1.3. Samples _____________________________________________________________________ 14 Ingenico document - Reproduction or disclosure prohibited without written authorization Please check document validity before using Page 3 / 15 Addon PCL for iOS 1.09 ICO-OPE-01070 V3 1. Delivery 1.1. Purpose of this document This document describes the content of the Add-on PCL for iOS 1.09. This Add-on contains a set of tools and libraries to be used to develop an iOS Sale application that integrates the features provides by an iSMP, iSMP Companion or iCMP device. 1.2. Scope The “Add-on PCL for iOS” can only be used with the following Telium device (Companion): iMP322 (iSMP Companion without barcode reader) iMP352 (iSMP Companion with barcode reader) iCM122 (iCMP) 1.3. Pre-requisites This Add-on has been validated on iOS versions 7.0.2 and 6.1.3. The table below summarizes the compatibility history of PCL Add-ons with iOS versions: iOS Version iOS 7.0.2 Notes No known issue iOS 6.1.3 No known issue iOS 6.0.1 - The iOS 6.0 crash issue is still not fixed iOS 6.0 and 6.0.1 - It has the same features as the preceding 5.1 version. All the iSMP library’s functionalities have been validated with this version. - Is subject to crashes when rebooting an external accessory while it is exchanging data with an iOS app – This bug has been reported to Apple and reproduced with a simple app that do only make use of the External Accessory Framework (no third party library involved) – No news so far on when Apple will be providing a fix. iOS 5.1 - Fixes the communication bug of iOS 5.0.1 - Supports external-accessory background mode that allows an application to keep the communication with the iSMP while in background - The external-accessory background mode allows also TCP/IP communication to continue while the application is in background – Apple hasn’t communicated about this feature which means that it may be removed Ingenico document - Reproduction or disclosure prohibited without written authorization Please check document validity before using Page 4 / 15 Addon PCL for iOS 1.09 iOS 5.0.1 iOS 4.x ICO-OPE-01070 V3 Unstable version – On certain conditions, the communication cannot be established Bug fixed by Apple in iOS 5.0.1 – This iOS release should be avoided Minimum required iOS version. Communication is not possible when the application is in a background state (Leaving the application, after locking the screen) Ingenico document - Reproduction or disclosure prohibited without written authorization Please check document validity before using Page 5 / 15 Addon PCL for iOS 1.09 1.1. ICO-OPE-01070 V3 Changes from version 1.08 1.1.1. External ID - Evolutions Internal ID FT15765 FT15767 1.1.2. External ID SUPTEL-6594 - Internal ID FT15635 FT15623 SUPTEL-6372 FT15907 1.2. Description Library iBP is now included in the iSMP library All previous deprecated functions are now unavailable Bug corrections Description Memory leak in ICISMPDeviceExtension usage is fixed Inversion of the result and the state of the command IPA printer is fixed Fixed 100% CPU usage issue on iOS when trying to use the Companion that is asleep or switched off Changes from version 1.07 1.2.1. Evolutions Compatible with iCMP, over the Bluetooth® link. External ID - Internal ID FT14954 - FT14955 - FT14765 SUPTEL-6175 FT15022 FT14978 - ICO00052-111 1.2.2. External ID SUPTEL-6175 Internal ID FT15025 SUPTEL-6295 FT15293 Description New feature to request signature capture and to add signature to a receipt. New feature to define start and end of receipt to be printed on OpenOS. New feature to get status of the Bluetooth SPP channel (requires SDK >= 9.12). Adding UPC-E1 barcode type support New feature to get full serial number of the companion (requires SDK >= 9.12). Add host name resolution to the key injection method of ICAdministration Bug corrections Description Print accentuated and special characters correctly (requires SPMCI >=2.12). Limitation can't print( ¤ ¦ ¨ ´ ¸¼ ½ ¾) Fix issue when application go in background Ingenico document - Reproduction or disclosure prohibited without written authorization Please check document validity before using Page 6 / 15 Addon PCL for iOS 1.09 1.3. ICO-OPE-01070 V3 Changes from version 1.06 1.3.1. Evolutions Compatible with iSMP Companion, over the Bluetooth® link. External ID - Internal ID ICO0052-80 ICO0052-105 - ICO0052-110 1.3.2. Description Support PCL Printing’s Intensity Parameter Barcode scanner configuration reduction & API reduction The following methods have been removed from ICBarCodeReader: - suspend - resume The following methods have been marked as deprecated: - shouldApplyDefaultConfiguration - applyDefaultConfiguration - onConfigurationApplied Increased iBPPrintBitmap & iBPStoreLogo timeouts to 30 seconds in order to be compatible with the link speed of iSMP-C Bug corrections External ID SUPTEL-5198 Internal ID ICO0052-95 - ICO0052-100 - ICO0052-107 SUPTEL-5274 ICO0052-98 Description Fixed an issue where connecting a second MFI accessory to the iOS device in the same time as the iSMP may influence LibiSMP. Changed the behavior of ICAdministration & ICBarCodeReader classes, so that the accessoryDidDisconnect callback is not called when those channels are closed respectively by calling close & powerOff Fixed an issue of ICNetwork where the networkDidReceiveError callback is fired instead of networkDidDisconnect when the remote host closes its socket. Fixed an issue where printing bitmaps or storing logo may fail in LibiBP_v1.3 because of an internal resizing. Ingenico document - Reproduction or disclosure prohibited without written authorization Please check document validity before using Page 7 / 15 Addon PCL for iOS 1.09 1.4. ICO-OPE-01070 V3 Changes from version 1.05 1.4.1. Evolutions Compatibility with iOS 6 1.4.2. Internal ID Bug corrections External ID - ICO0052-89 - ICO0052-81 SUPTEL-4412 ICO0052-60 - ICO0052-87 1.5. Description Replaced armv6 architecture with armv7s – armv6 has been discarded in iOS SDK 6.0 Fixed a bug that causes the iSMP framework to crash. This bug happens in iOS 6 when opening an accessory session while the accessory (the iSMP) is not detected. Resolved some crash issues that happen when using iBP framework to print. Those are due to thread management and synchronization issue within the iSMP library Added open/close methods to ICAdministration class to avoid opening the channel upon initialization since this may take a long time. This issue is related to the previous one. Changes from version 1.04 1.5.1. Internal ID Evolutions External ID - ICO0052-67 ICO0052-75 - ICO0052-70 - ICO0052-78 - ICO0052-44 - ICO0052-48 SUPTEL-4301 ICO0052-46 1.5.2. Description Added the possibility to resize and align bitmaps – This feature does not apply for logos 3 barcode conversion methods added to the ICBarCodeReader class A transparent Bluetooth SPP channel is added : it allows the control, from iOS side, of a Bluetooth device that is paired on the iMP3xx side Functions that are obsolete or not implemented are removed The doTransaction delay flag is now always set to ‘0’ so that the transaction is handled Asynchronously ICAdministration’s UpdateKey function is replaced with another one that returns all possible error codes – The previous function is now deprecated ICDevice class renamed into ICISMPDevice to avoid conflicts between libiSMP and Apple’s ImageCapture framework Bug corrections Internal ID External ID FT13108 SUPTEL-4854 Description MO_ApplicationGetCurrent being deprecated, the add-on doesn’t Ingenico document - Reproduction or disclosure prohibited without written authorization Please check document validity before using Page 8 / 15 Addon PCL for iOS 1.09 FT11689 - FT12588 SUPTEL-4420 FT12700 FT12842 FT12781 SUPTEL-4619 - - ICO0052-66 ICO-OPE-01070 V3 compile with a SDK higher than 9.4.1 Addition of a validation mode Add a test to check that the currency of a DoTransaction request is supported by the TELIUM Manager Wrong return code for DoTransactionEx Add of libraries for C++ compilation. When LinkLayer is missing, an explicit error message is displayed Bitmaps added to a bitmap context are drawn at a wrong position when their width exceeds the width of the context Ingenico document - Reproduction or disclosure prohibited without written authorization Please check document validity before using Page 9 / 15 Addon PCL for iOS 1.09 1.6. ICO-OPE-01070 V3 Known issues 1.6.1. SSL Communication SSL communication issues (fail to establish the connection either randomly or every time, depending on the Link Layer configuration) have been found when the Telium application is using the Link Layer from the following SDK versions: - 9.11 - 9.12.0 - 9.12.1 - 9.12.2 - 9.13 The Link Layer will be fixed in SDK 9.12.3 and 9.14.0. Refer to the Technical Information Bulletin “Warning for use of LinkLayer when performing SSL communications through an iOS device” for more details about this issue. 1.6.2. MAC Addresses on iOS 7.x If a Telium application on the Companion calls the PDA_get_comm_periph_state function, the returned fields pc_wlan_mac_address and pc_gprs_mac_address of the structure T_PDAPeriperalState will contain a static dummy value when iOS device is running iOS 7. Please refer to the official Apple announcement : 1.6.3. Bluetooth Secure Simple Pairing (SSP) not working on new iDevice like iPhone 5c and iPhone 5s During our validation phase, a pairing issue with the new Apple devices (iPhone 5c and iPhone 5s and so on) has been found. There are currently 2 ways to pair an Ingenico Companion with an Apple device: - One that uses Bluetooth security mode 3 (legacy pairing), where you have to manually enter the PIN code on both devices - One that uses a simplified pairing way (SSP, security mode 4) where you just have to validate on each devices that the same number is displayed. This feature has been introduced with SDK 9.12 Ingenico document - Reproduction or disclosure prohibited without written authorization Please check document validity before using Page 10 / 15 Addon PCL for iOS 1.09 ICO-OPE-01070 V3 Our testing showed that the SSP pairing process is not working with new iDevices starting from iPhone 5S & 5C. The legacy pairing (security mode 3) must be used with these devices. This issue is Bluetooth and hardware related only: - SSP method can be used with older iOS devices that have been upgraded to iOS 7, - PCL features are not impacted by the Bluetooth problem. If you need to use a new Apple device, use the legacy pairing method and PCL will run as usual The current target for the correction is SDK 9.14.0 and SDK 9.12.3 1.6.4. Crashes when Unplugging/Plugging Communication in iOS 6.0 iPod during This is a bug that appeared in iOS 6.0. When unplugging then plugging an iOS device from/to the iSMP during a data exchange, the iOS app may crash. This crash is not reproducible all the time. It may be necessary to do the described scenario several times before it would happen. The iOS SDK seems to be responsible for this since the issue has been reproduced using a basic application that do only use the External Accessory framework. The iOS application console would show the following message at the moment the iOS device disconnects: -[NSCondition dealloc]: condition(<NSCondition: 0x2e5640> '(null)') deallocated while still in use This bug has been reported to Apple. This issue is no more reproducible with iOS 6.1 Beta 3 & Beta 4. Apple seems to have fixed it. 1.6.5. ICAdministration sendMessage Issue The “sendMessage” method of “ICAdministration” is meant to allow an iOS application to send data to iSMP applications that register for this type of functionality. It seems however that the data is delivered only when the iSMP application is not running. If the application is running, the data cannot reach the application before it exists. 1.6.6. iSMP Framework Symbolic Link Issue Symptom Linker fails and mentions missing symbol error when compiling using libiSMP Cause Library binaries (files with .a extension) are versioned. However, when importing the framework, Xcode expects to find in the root folder a library file with the exact same name as the framework name (i.e. without the version in the name). To avoid duplicating the file, a symbolic link is provided in the package. However, depending on how and where the framework package is uncompressed, this symbolic link may no longer work or disappear. Ingenico document - Reproduction or disclosure prohibited without written authorization Please check document validity before using Page 11 / 15 Addon PCL for iOS 1.09 ICO-OPE-01070 V3 Correction Create a symbolic link using the following command ln –s ./libiSMP-x.y.a iSMP (x.y to be replaced with the actual library version) Another solution is to rename libiSMP-x.y.a to iSMP (You’ll notice that the samples provided, this solution is used). Ingenico document - Reproduction or disclosure prohibited without written authorization Please check document validity before using Page 12 / 15 Addon PCL for iOS 1.09 ICO-OPE-01070 V3 2. Add-on content The Add-on PCL for iOS contains several tools and libraries to facilitate the integration of security features in a Sale application. The following frameworks are delivered: iSMP framework in version 4.0 2.1. IPHONE library folder The IOS directory contains: communication library between iOS and Telium side (LibiSMP_v4.0 folder) 2.1.1. LibiSMP_v4.00/iSMP.framework.zip: the iOS library to use the all the features of the Telium side (payment, barcode reader and printer …) 2.1.2. Binaries Documentation LibiSMP_v4.00/Doc/PCLLibraryReference.chm: API documentation to use the PCL library (iSMP framework), chm format LibiSMP_v4.00/Doc/com.ingenico.PCL.docset: API documentation using the docset format (Apple code documentation format) LibiSMP_v4.00/Doc /PCL for iOS Integration Guide V1.09.pdf: describe how to integrate the Telium features in your own code LibiSMP_v4.00/Doc iSMP with iOS5 vs iOS4 FAQ_v2.1.pdf: what are the differences between iOS 4 and iOS 5 and what would be the impact on your developments Ingenico document - Reproduction or disclosure prohibited without written authorization Please check document validity before using Page 13 / 15 Addon PCL for iOS 1.09 2.1.3. ICO-OPE-01070 V3 Samples The following samples are provided inside the IPHONE library/libiSMP_v4.00/Samples folder: CompanionTestSample: Sample for testing all PCL APIs (control barcode reader, Bluetooth printer, interact with your Companion, …) InteractivePayment: Sample showing how to exchange data with the terminal using the Transaction channel. Note that binary versions of the samples are not provided in this package as binary iOS applications must be signed for a dedicated set of devices. Binary versions can be delivered through another process for Ingenico internal use only. Ingenico document - Reproduction or disclosure prohibited without written authorization Please check document validity before using Page 14 / 15 Addon PCL for iOS 1.09 ICO-OPE-01070 V3 “This Document is Copyright © 2013 by INGENICO Group. INGENICO retains full copyright ownership, rights and protection in all material contained in this document. The recipient can receive this document on the condition that he will keep the document confidential and will not use its contents in any form or by any means, except as agreed beforehand, without the prior written permission of INGENICO. Moreover, nobody is authorized to place this document at the disposal of any third party without the prior written permission of INGENICO. If such permission is granted, it will be subject to the condition that the recipient ensures that any other recipient of this document, or information contained therein, is held responsible to INGENICO for the confidentiality of that information. Care has been taken to ensure that the content of this document is as accurate as possible. INGENICO however declines any responsibility for inaccurate, incomplete or outdated information. The contents of this document may change from time to time without prior notice, and do not create, specify, modify or replace any new or prior contractual obligations agreed upon in writing between INGENICO and the user. WARNING: Integrity of TELIUM Manager and TELIUM System must be respected. You shall respect the integrity of SDK components (c.f. list) and never mix components from different SDKs, except following INGENICO requirements. INGENICO is not responsible for any use of this software, which would be non consistent with the present document. The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by INGENICO is under license. All trademarks used in this document remain the property of their rightful owners.” Ingenico document - Reproduction or disclosure prohibited without written authorization Please check document validity before using Page 15 / 15