Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iOS Build Service to Target SDK 11.0 Instead of 10.0 #1747

Closed
wilsonna opened this issue Oct 1, 2018 · 50 comments
Closed

iOS Build Service to Target SDK 11.0 Instead of 10.0 #1747

wilsonna opened this issue Oct 1, 2018 · 50 comments

Comments

@wilsonna
Copy link

wilsonna commented Oct 1, 2018

Problem description

I was able to build with 1.10.0 successfully. But I got rejected by Apple with the following error when submitting to the app store

SDK Version Issue - This app was built with the iOS '10.0' SDK. All iOS apps submitted to the App Store must be built with the iOS '11.0' SDK or later, included in Xcode [9.0] or later. Please update Xcode and rebuild your app.

As it turns out, 1.10.0 uses the travis xcode8 image, which targets SDK 10.0

travis_fold:start:step_start_instance
Starting instance
✓ selected image "travis-ci-osx10.11-xcode8-1479248015"
✓ started instance
...
$ xcodebuild -version -sdk
iPhoneOS10.0.sdk - iOS 10.0 (iphoneos10.0)
SDKVersion: 10.0
Path: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk
PlatformVersion: 10.0

I read that using the xcode9 image would target SDK 11.0. May I know how this can be done? Or is it possible to force travis to target SDK 11.0 even though it is using xcode8?

Environment

  • Tabris.js version: 1.10.0
  • OS: iOS
@patrykmol
Copy link
Contributor

Thanks. We will update Xcode images. Cc: @jonek

@wilsonna
Copy link
Author

wilsonna commented Oct 2, 2018

Sorry to rush you @jonek, but it's a quite urgent as we need to deploy a change urgently. Thank you very much.

@wilsonna
Copy link
Author

wilsonna commented Oct 3, 2018

Hi there, any updates? Can I do anything to specify the image? .travis.yml perhaps? I tried putting it in the root, but it didn't work

@wilsonna
Copy link
Author

wilsonna commented Oct 4, 2018

Just an update. I've setup a local build to workaround the problem.

@jonek
Copy link
Member

jonek commented Oct 8, 2018

@wilsonna We are currently looking into this. Please be aware that we are currently working towards Tabris 3. When this is released, we are going to drop support for Tabris 1.x in our build service.

@wilsonna
Copy link
Author

@jonek Sorry, I think I need the build service to work. Apple keeps saying the version I built with my local build crashes, but it didn't when I tested it with the same iOS version and IPv6 network. It's been more than a week and I'm still not able to submit my app. I'm not sure what's different between my local build and that of the build service, but clearly the one built by Tabris didn't have this problem. I tried building with cordova 6.5, which is the one Travis uses. I'm not sure what else I need to do to get it to work. I urgently need some help with this.

@jonek
Copy link
Member

jonek commented Oct 16, 2018

@wilsonna We are happy to have you as a user and we value your feedback. We are looking into the iOS builds for Tabris 1.x again. Please stay tuned.

@wilsonna
Copy link
Author

Thanks @jonek, really appreciate that you're taking the time away from v3 to look into this.

@wilsonna
Copy link
Author

Hi @jonek, any updates on this?

@jonek
Copy link
Member

jonek commented Oct 23, 2018

Yes, current progress looks good. We are actively working on a 1.11.0 release right now. But I can not provide a specific time for the release. I will come back to you.

@wilsonna
Copy link
Author

I'm not sure if this crashlog snippet is relevant, since I can't symbolicate most of it. But could it be due to the cordova tabris-ios platform? Is that what you're working on? It's strange that it only crashes when Apple tests it, but not on my test device (iPad), with the same iOS version (12) and IPv6 network.

Last Exception Backtrace:
0   CoreFoundation                	0x1a4387ef8 0x1a426a000 + 1171192
1   libobjc.A.dylib               	0x1a3555a40 0x1a354f000 + 27200
2   Tabris                        	0x100acc540 0x100abc000 + 66880
3   Tabris                        	0x100b8c934 0x100abc000 + 854324
4   Tabris                        	0x100b8c5b0 0x100abc000 + 853424
5   My App                      	0x100a7683c -[AppDelegate application:didFinishLaunchingWithOptions:] + 26684 (AppDelegate.m:37)
6   UIKitCore                     	0x1d0effc68 0x1d0625000 + 9284712
7   UIKitCore                     	0x1d0f013d0 0x1d0625000 + 9290704
8   UIKitCore                     	0x1d0f06e1c 0x1d0625000 + 9313820
9   UIKitCore                     	0x1d07a7c18 0x1d0625000 + 1584152
10  UIKitCore                     	0x1d07b06f0 0x1d0625000 + 1619696
11  UIKitCore                     	0x1d07a7894 0x1d0625000 + 1583252
12  UIKitCore                     	0x1d07a8234 0x1d0625000 + 1585716
13  UIKitCore                     	0x1d07a6334 0x1d0625000 + 1577780
14  UIKitCore                     	0x1d07a5fe0 0x1d0625000 + 1576928
15  UIKitCore                     	0x1d07ab1a0 0x1d0625000 + 1597856
16  UIKitCore                     	0x1d07ac100 0x1d0625000 + 1601792
17  UIKitCore                     	0x1d07ab058 0x1d0625000 + 1597528
18  UIKitCore                     	0x1d07afd9c 0x1d0625000 + 1617308
19  UIKitCore                     	0x1d0f05314 0x1d0625000 + 9306900
20  UIKitCore                     	0x1d0af0c34 0x1d0625000 + 5028916
21  FrontBoardServices            	0x1a6db7890 0x1a6dab000 + 51344
22  FrontBoardServices            	0x1a6dc2658 0x1a6dab000 + 95832
23  FrontBoardServices            	0x1a6dc1d50 0x1a6dab000 + 93520
24  libdispatch.dylib             	0x1a3dc0484 0x1a3d5f000 + 398468
25  libdispatch.dylib             	0x1a3d63e58 0x1a3d5f000 + 20056
26  FrontBoardServices            	0x1a6df6640 0x1a6dab000 + 308800
27  FrontBoardServices            	0x1a6df62cc 0x1a6dab000 + 307916
28  FrontBoardServices            	0x1a6df68e8 0x1a6dab000 + 309480
29  CoreFoundation                	0x1a43165b8 0x1a426a000 + 705976
30  CoreFoundation                	0x1a4316538 0x1a426a000 + 705848
31  CoreFoundation                	0x1a4315e1c 0x1a426a000 + 704028
32  CoreFoundation                	0x1a4310ce8 0x1a426a000 + 683240
33  CoreFoundation                	0x1a43105b8 0x1a426a000 + 681400
34  GraphicsServices              	0x1a6584584 0x1a6579000 + 46468
35  UIKitCore                     	0x1d0f08bc8 0x1d0625000 + 9321416
36  My App                      	0x100a767d0 main + 26576 (main.m:32)
37  libdyld.dylib                 	0x1a3dd0b94 0x1a3dd0000 + 2964


Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib        	0x00000001a3f1d104 0x1a3efa000 + 143620
1   libsystem_pthread.dylib       	0x00000001a3f980e0 0x1a3f96000 + 8416
2   libsystem_c.dylib             	0x00000001a3e74d78 0x1a3e1d000 + 359800
3   libc++abi.dylib               	0x00000001a353cf78 0x1a353b000 + 8056
4   libc++abi.dylib               	0x00000001a353d120 0x1a353b000 + 8480
5   libobjc.A.dylib               	0x00000001a3555e48 0x1a354f000 + 28232
6   libc++abi.dylib               	0x00000001a35490fc 0x1a353b000 + 57596
7   libc++abi.dylib               	0x00000001a3549188 0x1a353b000 + 57736
8   libdispatch.dylib             	0x00000001a3dc0498 0x1a3d5f000 + 398488
9   libdispatch.dylib             	0x00000001a3d63e58 0x1a3d5f000 + 20056
10  FrontBoardServices            	0x00000001a6df6640 0x1a6dab000 + 308800
11  FrontBoardServices            	0x00000001a6df62cc 0x1a6dab000 + 307916
12  FrontBoardServices            	0x00000001a6df68e8 0x1a6dab000 + 309480
13  CoreFoundation                	0x00000001a43165b8 0x1a426a000 + 705976
14  CoreFoundation                	0x00000001a4316538 0x1a426a000 + 705848
15  CoreFoundation                	0x00000001a4315e1c 0x1a426a000 + 704028
16  CoreFoundation                	0x00000001a4310ce8 0x1a426a000 + 683240
17  CoreFoundation                	0x00000001a43105b8 0x1a426a000 + 681400
18  GraphicsServices              	0x00000001a6584584 0x1a6579000 + 46468
19  UIKitCore                     	0x00000001d0f08bc8 0x1d0625000 + 9321416
20  My App                      	0x0000000100a767d0 main + 26576 (main.m:32)
21  libdyld.dylib                 	0x00000001a3dd0b94 0x1a3dd0000 + 2964

@bFlood
Copy link

bFlood commented Oct 29, 2018

@jonek - is there a general time estimate for V3? I am planning to port to V2 but after looking at some of the breaking changes between V2/V3, it might be better to wait for V3? (we have custom native widgets and the new iOS signatures would be problematic)

like @wilsonna , I would also be very appreciative if a 1.10 build service could be setup. as of right now, I can't build anything in v1

thanks!

@mpost
Copy link
Member

mpost commented Oct 29, 2018

@bFlood The Tabris.js 3 release is scheduled for Q4 this year. It makes sense to hold out for a bit and jump on it straight away.

@bFlood
Copy link

bFlood commented Oct 29, 2018

@mpost thanks, that sounds good. will we be able to build 1.10 apps before then?

@jonek
Copy link
Member

jonek commented Nov 12, 2018

@wilsonna @bFlood we just released Tabris.js 1.11.0. Please take a look at the release blog post: https://tabris.com/tabris-js-1-11-update/
With this release, it is possible again to build your Tabris.js 1 app on the build service at https://tabris.com Please make sure to follow the steps described in the blog post (update version in package.json and set version to 1.11.0 in build settings).
I will close this issue. Please feel free to reopen it if you run into problems.

@jonek jonek closed this as completed Nov 12, 2018
@jonek
Copy link
Member

jonek commented Nov 12, 2018

@bFlood If you want to give Tabris.js 3 a try, you can check out our 3.0.0-beta1. Please be aware that at the moment you can only do local builds using that version. Also make sure to pin the version to 3.0.0-beta1 (no ^!) in your package.json.
We are happy to get your feedback.

@wilsonna
Copy link
Author

@jonek Thank you very much. I've confirmed that 1.11.0 is working and I'm able to submit to Apple store.

@bFlood
Copy link

bFlood commented Nov 28, 2018

iOS build service is working great, thank you!

Android build service for 1.11.0 is throwing this error: "Could not find property 'ANDROID_SUPPORT_V4_VERSION'"

@wilsonna - are you able to build for Android?

Warning: Command failed: cordova build --device --release
FAILURE: Build failed with an exception.
* Where:
Build file '/home/travis/build/eclipsesource/tabris-js-build-template/build/platforms/android/build.gradle' line: 293
* What went wrong:
A problem occurred evaluating root project 'android'.
> Could not find property 'ANDROID_SUPPORT_V4_VERSION' on org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated@31fa20b0.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Error: /home/travis/build/eclipsesource/tabris-js-build-template/build/platforms/android/gradlew: Command failed with exit code 1 Error output:
FAILURE: Build failed with an exception.
* Where:
Build file '/home/travis/build/eclipsesource/tabris-js-build-template/build/platforms/android/build.gradle' line: 293
* What went wrong:
A problem occurred evaluating root project 'android'.
> Could not find property 'ANDROID_SUPPORT_V4_VERSION' on org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated@31fa20b0.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
� Use --force to continue.
Aborted due to warnings.
travis_time:end:00d40187:start=1543422453772329144,finish=1543422523252705498,duration=69480376354
The command "grunt build deploy" exited with 6.
Done. Your build exited with 1.

@jonek
Copy link
Member

jonek commented Nov 28, 2018

@bFlood Is your failing Android build using Tabris.js 1.11.0? Is it a debug or a production build? Which Cordova plugins do you use in that app?

@bFlood
Copy link

bFlood commented Nov 28, 2018

  1. it happens on debug and production builds
  2. I have lot of plugins but they have all worked for previous android builds. I'll go take a closer look at the build log but to confirm, a simple tabris 1.11.0 builds successfully for android, correct?

@jonek
Copy link
Member

jonek commented Nov 28, 2018

@bFlood Yes - simple tabris 1.11.0 builds are working fine. We take care of that. But adding Cordova plugins to the build leads to a lot of potential combinations.

@bFlood
Copy link

bFlood commented Nov 29, 2018

@jonek it was the social sharing plugin and I guess a bug in cordova 6.5, anyways forked and fixed. thanks!

@jonek
Copy link
Member

jonek commented Nov 29, 2018

@bFlood Please share how you fixed the problem if that is possible. Maybe you can open a new issue for that.

@bFlood
Copy link

bFlood commented Nov 29, 2018

I just changed the plugin config.xml to use an exact version number instead of the property

https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin/blob/master/plugin.xml#L95
change this:
<framework src="com.android.support:support-v4:$ANDROID_SUPPORT_V4_VERSION" />

to this:
<framework src="com.android.support:support-v4:24.1.1+" />

@bFlood
Copy link

bFlood commented Dec 26, 2018

hello @jonek and tabris, happy holidays

we were just about to push a new version of our app to the Google Play Store and realized it is now requiring that apps target version 26 (currently 1.11.0 used 25), this change apparently happened on 11/01/18. https://developer.android.com/distribute/best-practices/develop/target-sdk

I've tried changing the config.xml and using a custom gradle but it always uses android-25 for the build. Can you think of any quick fixes for this issue? Is there anyway to update the 1.11.0 build service to use android-26?

thank you

@bFlood
Copy link

bFlood commented Dec 26, 2018

ok, after playing with the config.xml file some more, it looks like the preference needs to be in the root and not under the andorid section. I'm not really sure if this will cause a problem with the build itself, since its still using android-25 but this does allow you to get it in the Play store. sorry for the confusion

<preference name="android-targetSdkVersion"     value="26" />  

@jonek
Copy link
Member

jonek commented Dec 28, 2018

@mpost Do you think we should update our build of tabris.js 1.11.0 apps on tabris.com to use android-26?

@mpost
Copy link
Member

mpost commented Jan 3, 2019

@jonek It would also require a new plugin platform release as the number is backed into the cordova platform. Using a configuration switch as shown by @bFlood here #1747 (comment) is a viable approach.

@jonek
Copy link
Member

jonek commented Jan 3, 2019

@mpost do you mean "platform release" instead of "plugin release"?

@mpost
Copy link
Member

mpost commented Jan 3, 2019

Yeah sorry. typo there. Corrected.

@bFlood
Copy link

bFlood commented Jan 3, 2019

@mpost @jonek
while you are talking about it, I noticed in the iTunes Application Loader that all apps will need to be built using Xcode12 starting in March 2019 as well. I think the 1.11.0 iOS build service uses a previous Xcode version

We've started to port some of our app to tabris3 but it would be nice to keep 1.11.0 viable for 2019. I fully understand that is not a long term goal though

@bFlood
Copy link

bFlood commented Jan 14, 2019

just an fyi, it was build your apps with the iOS12 SDK (not xcode12)
https://developer.apple.com/news/?id=09122018c

@bFlood
Copy link

bFlood commented Feb 26, 2019

just checking on this since March 1st is this week. any chance the iOS build service be updated?

from https://developer.apple.com/app-store/submissions/
"Please note that Starting March 2019, all iOS apps submitted to the App Store will need to be built with the iOS 12.1 SDK or later, and support the all-screen design of iPhone XS Max or the 12.9-inch iPad Pro (3rd Generation)."

@mpost
Copy link
Member

mpost commented Mar 5, 2019

You are still able to submit 2.x apps to the Apple app store. We are still supporting the legacy build system.

@bFlood
Copy link

bFlood commented Mar 5, 2019

thanks @mpost , do you mean Tabris 2.x apps? any chance the 1.10 build system will be upgraded?

We've ported one of our apps but the other one is much larger. It will happen but we also have to support existing users as we upgrade it

thanks

@karolszafranski
Copy link
Member

If you build your apps locally you can use Xcode 10 and disable new build system as described on our blog post. It is about 2.x but the same change should apply to 1.x as well.

https://tabris.com/tabris-js-2-7-release/
This workaround is described with a little bit more details here: apache/cordova-ios#407

@bFlood
Copy link

bFlood commented Mar 5, 2019

thanks. to confirm, this will NOT be added to the tabris 1.10 build servers?

@bFlood
Copy link

bFlood commented Apr 22, 2019

@mpost @karolszafranski are the 1.x build servers going to be upgraded? if not can you provide detailed instructions on how to build locally (using 1.x)

@bFlood
Copy link

bFlood commented Apr 23, 2019

can someone from tabris please give a definitive answer for this? thank you

@jonek
Copy link
Member

jonek commented Apr 24, 2019

@bFlood I am testing an update of our build service right now. This update switches the 1.11.0 builds from Xcode 9 to Xcode 10. Please stay tuned.

@jonek
Copy link
Member

jonek commented Apr 24, 2019

@bFlood The 1.11.0 builds on our build service are using Xcode 10.1 as of now.
Please confirm that your builds work as expected now (I am assuming you want to release updates of an 1.11.0 based app to the App Store).

@bFlood
Copy link

bFlood commented Apr 25, 2019

@jonek this seems to have worked, thank you!!!!

@bFlood
Copy link

bFlood commented Jul 19, 2019

can anyone from tabris think of a way to get the android 1.11.0 build service to create both 32 and 64bit versions of the app? Can the code posted by @irbull be used? thanks
eclipsesource/J2V8#384 (comment)

@bFlood
Copy link

bFlood commented Jul 22, 2019

@jonek - is this even possible? or will 1.11.0 Android never be able to build 64bit apps (fwiw, its only the 32bit tabris J2V8 .so file that is causing the issue)

8/1/19 is the cutoff date for Google Play Store apps that are 32bit only

@jonek
Copy link
Member

jonek commented Jul 22, 2019

@bFlood We won't update the Tabris 1.x platform anymore, because it has reached its end-of-life.

I don't know the details about J2V8. It probably depends on the J2V8 API version if a recent 64bit version of J2V8 could be easily added to an existing 1.11.0 Tabris platform.
If I am correct you have license and the complete source of the Tabris 1.x platform.
Maybe @mpost and @irbull can provide more details.

@bFlood
Copy link

bFlood commented Jul 25, 2019

@mpost and @irbull any idea if the recent 64bit J2V8 version can be used with tabris v1.x? I'm guessing no but it would be nice to know for sure. thanks!

@irbull
Copy link
Member

irbull commented Jul 29, 2019

@bFlood If it did, it would be pretty surprising and certainly nothing we've planned for. Having said that, you can try to take the 4.8 builds of J2V8 and try to replace the J2V8 aar. It absolutely won't work J2V8 5.x as the API changed significantly. There is an outside chance 4.8 may work.

@bFlood
Copy link

bFlood commented Jul 29, 2019

thanks @irbull , it looks like this might be the end of the road for 1.10

on another note, 1.10 android build servers were working last week but now I'm getting this error. I'm looking to get in one more build before the Aug 1st cutoff for 32 bits apps

travis_fold:start:install_jdk
Installing oraclejdk8
$ export JAVA_HOME=~/oraclejdk8
$ export PATH="$JAVA_HOME/bin:$PATH"
$ ~/bin/install-jdk.sh --target "/home/travis/oraclejdk8" --workspace "/home/travis/.cache/install-jdk" --feature "8" --license "BCL"
Ignoring license option: BCL -- using GPLv2+CE by default
install-jdk.sh 2019-07-17
Expected feature release number in range of 9 to 14, but got: 8
The command "~/bin/install-jdk.sh --target "/home/travis/oraclejdk8" --workspace "/home/travis/.cache/install-jdk" --feature "8" --license "BCL"" failed and exited with 3 during .
Your build has been stopped.

@bFlood
Copy link

bFlood commented Jul 27, 2020

are the 1.10 iOS build services working? worked a few months ago but now it started and seems to cut off the log files randomly. Android worked

@karolszafranski
Copy link
Member

@bFlood we've just successfully built Hello World app on our build service, version 1.11.0. https://github.com/eclipsesource/tabris-js-hello-world/tree/1.11.0

It might not however be possible to submit the build to AppStore, since Xcode 10.1 was used for building it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants