[TIMOB-17158] iOS: The SDK Xcode project should reference the APSHTTPClient Xcode project
GitHub Issue | n/a |
---|---|
Type | Bug |
Priority | Medium |
Status | Closed |
Resolution | Needs more info |
Resolution Date | 2017-06-30T00:07:02.000+0000 |
Affected Version/s | Release 3.2.3 |
Fix Version/s | n/a |
Components | iOS |
Labels | n/a |
Reporter | Matt Langston |
Assignee | Eric Merriman |
Created | 2014-06-14T01:15:17.000+0000 |
Updated | 2017-06-30T00:07:02.000+0000 |
Description
The APSHTTPClient library is used by both the iOS Titanium SDK and the iOS Native SDK, and has been refactored to fix a known concurrency bug known to exist in all clients of this library, which includes the iOS Titanium SDK.
This bug was discovered in NATIVESDK-156, and the root cause of the problem (incorrect use of NSOperationQueue and incorrect implementation of NSOperation fixed by NATIVESDK-179) means that the bug also exists in the Titanium SDK.
The problem was fixed in APSHTTPClient by the 13 closed tickets in this PR: https://github.com/appcelerator/APSHTTPClient/pull/8
In order to quickly test this fix in the Titanium SDK, and to accommodate future bug fixes in APSHTTPClient (there are currently 15 open tickets), the Titanium SDK Xcode project needs to reference the APSHTTPClient Xcode project directly instead of linking to the following seven unrevisioned files embedded in the titanium_mobile repo:
$ find . -type f -name "*APSHTTP*"
./iphone/Classes/APSHTTPClient/APSHTTPClient.h
./iphone/Classes/APSHTTPClient/APSHTTPHelper.h
./iphone/Classes/APSHTTPClient/APSHTTPOperation.h
./iphone/Classes/APSHTTPClient/APSHTTPPostForm.h
./iphone/Classes/APSHTTPClient/APSHTTPRequest.h
./iphone/Classes/APSHTTPClient/APSHTTPResponse.h
./iphone/Classes/APSHTTPClient/libAPSHTTPClient.a
This closed PR added important unit tests that provides partial code coverage for the issue:
https://github.com/appcelerator/APSHTTPClient/pull/9
This PR needs to be closed before work on the current issue can begin:
https://github.com/appcelerator/APSHTTPClient/pull/10
The fix for the current issue is to remove the seven files listed above, and in their place add the APSHTTPClient Xcode project as a subproject to an Xcode workspace for the Titanium SDK Xcode project. Once this is done the APSHTTPClient git repo needs to be tagged with the version that the iOS Titanium SDK was tested with.
No comments