[TIMOB-23530] Hyperloop - IPHONEOS_DEPLOYMENT_TARGET of 7.0 despite value of min-ios-ver in tiapp.xml
GitHub Issue | n/a |
---|---|
Type | Bug |
Priority | Critical |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2016-06-29T01:52:24.000+0000 |
Affected Version/s | n/a |
Fix Version/s | Release 5.4.0 |
Components | Hyperloop, iOS |
Labels | hyperloop, swift |
Reporter | Ron Piwetz |
Assignee | Hans Knöchel |
Created | 2016-06-10T15:05:23.000+0000 |
Updated | 2016-08-02T22:20:09.000+0000 |
Description
I've set
min-ios-ver
to 9.0 within tiapp.xml, and when running appc ti build
I can see an INFO message of Minimum iOS version: 9.0
When it gets to the Hyperloop section, I see a TRACE message of
{noformat}
[Hyperloop] CocoaPods IPHONEOS_DEPLOYMENT_TARGET = 7.0
{noformat}
I believe this is leading to parameter of -target x86_64-apple-ios7.0
being set during swift compilation, causing an error for the particular pod I am trying to use (ImagePicker)
One of the errors:
{noformat}
error: 'dispatch_queue_attr_make_with_qos_class' is only available on iOS 8.0 or newer
{noformat}
There are lots more like this in the logs
Recreating this error can be done by using a Podfile with the below contents:
use_frameworks!
platform :ios, '9.0'
target 'Hyperloop_Sample' do
pod 'ImagePicker'
end
I have copy/pasted the failing swift build command, replaced the -target x86_64-apple-ios7.0
with -target x86_64-apple-ios9.0
and it completes successfully.
Attachments
File | Date | Size |
---|---|---|
build_iphone.log | 2016-06-15T19:42:06.000+0000 | 75504 |
Hello, Could you explain a little more about how you are seeing the issue. I tried to test the hyperloop 1.2.0 which I see it build fine. Please where you are making the modification in tiapp.xml and please provide the error log. Regards, Sharif.
in tiapp.xml, add
I attached my build log file. In it, you can see on line 483 where xcodebuild is being called with
-alltargets IPHONEOS_DEPLOYMENT_TARGET=7.0
which leads to line 486 of[Hyperloop] CocoaPods IPHONEOS_DEPLOYMENT_TARGET = 7.0
so then on line 498, you see-target x86_64-apple-ios7.0
but if i change that target to bex86_64-apple-ios9.0
instead it works You can also see 10 instances oferror: 'XXXXXX' is only available on iOS 8.0 or newer
[~cng] Do you know if this will be in the GA build of Hyperloop coming out?
Did you make sure you set it inside the Podile (which has the 7.0 by default). See hyperloop-examples:
Changing that to 9.0 should do it.
As shown in the original report, I have it set to 9.0 in the Podfile, but hyperloop is being told to use 7.0
Right. So the
IOS_MIN
insideplugins/hyperloop/<version>/hooks/ios/hyperloop.js
is currently used hardcoded, although it should use the<min-ios-ver/>
if existing.PR to use
this.builder.minIosVer
instead ofMIN_IOS
in the CLI: https://github.com/appcelerator/hyperloop.next/pull/36[~hansknoechel] Steps to test please.
*Steps to test*: 1. Use the [hyperloop-examples](https://github.com/appcelerator/hyperloop-examples) project and replace the Hyperloop module & plugin from [here](https://github.com/appcelerator/hyperloop.next/releases) 2. Paste
<min-ios-ver>9.0</min-ios-ver>
inside the<ios/>
section of the tiapp.xml 3. Paste the following inside thePodfile
:4. Run the project *Expected result*: The project does not fail *Note* Don't use cocoapods 1.0.0 as this doesn't work with hyperloop at the moment. use cocoa pods 0.39.0 instead. If you want to downgrade the version, refer to this link: http://stackoverflow.com/questions/20487849/downgrading-or-installing-older-version-of-cocoapods
Smaller test case for PR
1. *appc new -n testPod --classic* 2. Install hyperloop module from [here](https://github.com/appcelerator/hyperloop.next/releases) 3. Paste<min-ios-ver>9.0</min-ios-ver>
inside the<ios/>
section of the tiapp.xml 4. Paste the following inside thePodfile
in root of project:5. Include this in tiapp.xml
6. *appc run -p ios*
Expected result
The project will build successfully *Note* Don't use cocoapods 1.0.0 as this doesn't work with hyperloop at the moment. use cocoa pods 0.39.0 instead. If you want to downgrade the version, refer to this link: http://stackoverflow.com/questions/20487849/downgrading-or-installing-older-version-of-cocoapods [~hansknoechel] Your fix removed the swift error in this ticket, but with my reproduce steps, I encountered a different error:Can you please check to see what's wrong? could it be my configuration?
As discussed in TIMOB-23570, the above-described issue is another issue that should be handled independently from this one, so we can put it into 5.4.0.
[~hansknoechel], [~cng], TIMOB-23570 is blocking us from verifying this ticket. If we want this fix to be in 5.4.0, should TIMOB-23570 be fixed first and put into 5.4.0?
Close ticket as fixed. Verified that
<min-ios-ver>
is being respected during build. *Note:* Needed to apply the workaround from TIMOB-23671 since I started encountering the segfault issue. Tested on: Appc CLI NPM: 4.2.7 Appc CLI Core: 5.4.0-37 Arrow: 1.8.2 SDK: 5.4.0.v20160801022303 Node: v4.4.7 OS: Mac OS X (10.11.6) Xcode: 7.3.1