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