Commit Graph

687 Commits

Author SHA1 Message Date
Laurent Sansonetti
70224dc851 make sure we use 'adb -d' since an emulator could be running at the same time 2014-08-14 18:22:26 -04:00
Watson
c794a3ee45 add validation into app.vendor_project('xxx', :xcode, ...) because xcodebuild command fails if xcode project directory is not writable 2014-08-13 20:00:50 +09:00
Watson
3d1e080c25 fix a bug where vendor library contained in gem causes a build error with system bundled ruby
http://hipbyte.myjetbrains.com/youtrack/issue/RM-553
2014-08-13 19:11:26 +09:00
Laurent Sansonetti
8f5c3dce69 before installing an app, verify that the usb-connected device runs an API version higher or equal to the app's one 2014-08-09 21:23:24 +02:00
Laurent Sansonetti
b4cb35616e fail with a proper error message in case the NDK does not support the API level we want; lower the API level in the NDK when needed (ex. 10 and 11 should use 9 since NDK does not support these) 2014-08-09 12:30:02 +02:00
Laurent Sansonetti
f13425acc9 Fixed detection of the build tools directory. In some installations of the NDK, the directory can be a version number (ex. '20.0.0').
Patch by Mark Villacampa.
2014-08-09 11:26:44 +02:00
Laurent Sansonetti
3fe0821c88 Remove configChanges from the manifest.
Gives problems in older versions and also Google recommends using it as a last resort

"Using this attribute should be avoided and used only as a last resort."
http://developer.android.com/guide/topics/manifest/activity-element.html

Patch by Mark Villacampa.
2014-08-09 11:26:44 +02:00
Laurent Sansonetti
ee36b4b967 Use System.loadLibrary() to load the payload. This is what JNI sample apps use.
Line 64:
https://android.googlesource.com/platform/development/+/android-4.4.4_r2/ndk/samples/hello-jni/src/com/example/hellojni/HelloJni.java

This makes RubyMotion work on older Android versions (such as API 8).

Patch by Mark Villacampa.
2014-08-09 11:26:44 +02:00
Laurent Sansonetti
39c8890c08 JDK 7 requires explicitly setting this. Should work in JDK 6 too.
"Caution: As of JDK 7, the default signing algorithim has changed, requiring you to specify the signature and digest algorithims (-sigalg and -digestalg) when you sign an APK."

Google Cache:
http://webcache.googleusercontent.com/search?q=cache:OjyaP-Zoz-MJ:developer.android.com/tools/publishing/app-signing.html+&cd=1&hl=es&ct=clnk&client=safari

(Patch by Mark Villacampa)
2014-08-09 11:26:44 +02:00
Laurent Sansonetti
afc8381d54 better zipalign detection with a fallback on tools/zipalign (old SDKs) 2014-08-08 23:29:05 +02:00
Laurent Sansonetti
c4e7ba6919 better detection of default API version 2014-08-08 17:32:47 +02:00
Laurent Sansonetti
ab466d9cee remove zipalign_path variable (it's best if it's not exposed to the user) 2014-08-08 17:00:01 +02:00
Watson
9ff1dab9eb fix zipalign path 2014-08-08 23:11:54 +09:00
Laurent Sansonetti
3f25fd2f89 retrieve values for app.sdk_path and app.ndk_path from the respective RUBYMOTION_ANDROID_SDK and RUBYMOTION_ANDROID_NDK environment variables 2014-08-07 16:09:08 +02:00
Eloy Durán
facf63d024 [osx] Merge all Info.plist data in one place and ensure there's always a principal class. 2014-08-06 11:29:22 +02:00
Eloy Durán
51538c0ac7 [osx] Allow the user to configure a NSApplication subclass and use that instead.
Fixes http://hipbyte.myjetbrains.com/youtrack/issue/RM-539
2014-08-05 14:41:27 +02:00
Watson
ed5521ad56 [android] fix an error which /usr/bin/keytool causes if '~/.android' is not existed
This should fix the following error

    /usr/bin/keytool -genkeypair -alias androiddebugkey -keypass android -keystore "/Users/watson/.android/debug.keystore" -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=ja_JP.UTF-8
    keytool エラー: java.io.FileNotFoundException: /Users/watson/.android/debug.keystore (No such file or directory)
2014-08-01 12:40:14 +09:00
Watson
04fd944ebe fix __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ for OSX 10.10
The definition rule of MAC_OS_X_VERSION_10_XX is changed at OS X 10.10

#define MAC_OS_X_VERSION_10_8         1080
#define MAC_OS_X_VERSION_10_9         1090
#define MAC_OS_X_VERSION_10_10      101000
2014-07-09 22:42:47 +09:00
Laurent Sansonetti
1fb3160fea Merge branch 'master' of github.com:lrz/RubyMotion 2014-07-01 14:52:58 +02:00
Watson
aabaa110bc [OSX] fix a 'not precompiled' error if specify old version as deployment_target on Yosemite
http://hipbyte.myjetbrains.com/youtrack/issue/RM-525
2014-07-01 13:58:58 +09:00
Watson
a4e313d3ef [OSX] add CoreServices to detect OS X version to convert NSKnownKeysDictionary into NSDictionary 2014-07-01 10:56:49 +09:00
Watson
543bb00d54 [OSX] fix a wrong default deployment_target on OS X 10.8
http://hipbyte.myjetbrains.com/youtrack/issue/RM-524

'10.8' should be used as default deployment target on OS X 10.8.
However, '10.9' was used.
2014-07-01 08:33:14 +09:00
Laurent Sansonetti
51dc4dab9f update path of zipalign tool 2014-06-27 19:11:14 +02:00
Watson
a692ef4a20 Revert "generate object file from Ruby code directly"
This reverts commit ebc11886ef.
2014-06-27 22:05:11 +09:00
Watson
ebc11886ef generate object file from Ruby code directly 2014-06-27 09:46:32 +09:00
Ignacio Piantanida
db4b3b6020 [spec] Add spec helpers subdirs to #spec_files.
Signed-off-by: Eloy Durán <eloy.de.enige@gmail.com>
2014-06-24 14:56:35 +02:00
Laurent Sansonetti
6d662e4d21 re-generate classes.dex if one of the vendored jar is newer 2014-06-11 00:28:59 +02:00
Watson
9bfb8f4ef7 [iOS8] add "device_name" parameter
Usage:
	$ rake device_name="iPad Air"

We can use the following device name for iOS 8 simulator.
	"iPhone 4s"
	"iPhone 5"
	"iPhone 5s"
	"iPad 2"
	"iPad Retina"
	"iPad Air"
	"Resizable iPhone"
	"Resizable iPad"
2014-06-07 09:30:55 +09:00
Watson
493a06f1d7 [iOS8] fix device family string in order to select device 2014-06-07 09:22:38 +09:00
Watson
d2caa4a5ac accept the lower SDK version in `app.deployment_target' on Yosemite 2014-06-04 10:20:01 +09:00
Watson
1d7886db98 should not drop "10.10" from supported sdk version list
This should allow to use "10.10" sdk on Yosemite
2014-06-04 10:05:46 +09:00
Watson
591a616a68 build an app even if resources and assets directories does exists
This should fix the following error.
Because, now, android samples does not have resources and assets directories.

$ rake device
   Compile ./app/main_activity.rb
    Create ./build/Development-18/lib/armeabi/libpayload.so
    Create ./build/Development-18/lib/armeabi/gdbserver
    Create ./build/Development-18/lib/armeabi/gdb.setup
    Create ./build/Development-18/AndroidManifest.xml
ERROR: resource directory './resources' does not exist
rake aborted!
2014-05-29 05:03:34 -07:00
Laurent Sansonetti
6009476dcd fix build when manifest entries could be nil/empty 2014-05-27 09:57:50 -07:00
Laurent Sansonetti
d2b5ec0bfc fix rake start_avd’ task to honor the avd’ env variable which can be used to override the default AVD configuration that should be used 2014-05-27 09:56:35 -07:00
Laurent Sansonetti
bbe51897e7 add app.version_name, app.version_code, and app.version(code, name) to specify app versioning when generating the manifest file 2014-05-20 12:01:08 +02:00
Laurent Sansonetti
274b13770e move app.version from config to xcodeconfig 2014-05-20 12:01:08 +02:00
Laurent Sansonetti
66f4c8cff8 add `rake release’ task which creates an apk build suitable for play store submissions, fix build to use a distinct directory for development/release build objects 2014-05-19 16:30:29 +02:00
Laurent Sansonetti
8e8201c519 add app.release_keystore(path, alias_name) method to set up the code signing for release builds (play store) 2014-05-19 16:28:07 +02:00
Laurent Sansonetti
51cd103453 move versionized_build_dir from config to xcodeconfig 2014-05-19 16:27:14 +02:00
Laurent Sansonetti
4549026078 damnit 2014-05-19 10:52:11 +02:00
Laurent Sansonetti
e89343c126 fix a bug where the ‘class_path’ local variable was shadowed 2014-05-19 10:47:22 +02:00
Laurent Sansonetti
ea4a041b8f read extra packages paths from the manifest files, rebuild the R.java files if *any* resource file is newer than them 2014-05-19 10:41:21 +02:00
Laurent Sansonetti
04d11e1c99 fix app.vendor_project to accept a manifest’ key/value pair (when resources’ is provided), generate R.java files for the project’s resources + libraries’ resources 2014-05-19 10:22:05 +02:00
Laurent Sansonetti
1949f57c58 remove app.manifest_metadata, add app.manifest_entry() which can be used to provide any element at either the top-level element or ‘application’ 2014-05-19 10:18:50 +02:00
Laurent Sansonetti
16ab93948d fix code when called within the class 2014-05-19 00:20:34 +02:00
Laurent Sansonetti
8b06cc055b add app.logs_components which can be used to customize the components we will be logging messages from in the development terminal 2014-05-19 00:20:34 +02:00
Laurent Sansonetti
e67a6e4123 introduce app.vendor_project which receives a hash (mandatory, :jar key/value, optional, :resources key/value), fix build system to include 3rd-party resources directories into the apk 2014-05-19 00:20:34 +02:00
Laurent Sansonetti
1e235c909e add app.manifest_metadata which can be used to provide <meta-data …> elements to the AndroidManifest.xml file 2014-05-19 00:20:34 +02:00
Laurent Sansonetti
8bf34a724a add app.icon which must contain the name of an icon file in resources/drawable 2014-05-19 00:20:34 +02:00
Laurent Sansonetti
c629a10ddf app.resources_dirs are now used for android resources, introduce app.assets_dirs to store raw assets (and it defaults to the ‘assets’ project directory) 2014-05-19 00:20:34 +02:00