Ejemplo n.º 1
0
function env($name)
{
    if (isset($_ENV[$name])) {
        return $_ENV[$name];
    }
    if (isset($_SERVER[$name])) {
        return $_SERVER[$name];
    }
    $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
    appdeck_error("missing {$name} env var from xcode", $backtrace[0]['file'], $backtrace[0]['line']);
    exit(1);
}
// set beacon if needed
// this beacon is used to clear cache on startup after a clean build
$beacon_output_file_path = $output_dir_path . "/beacon";
if (defined('FORCE_DOWNLOAD') && FORCE_DOWNLOAD === true && file_exists($beacon_output_file_path)) {
    unlink($beacon_output_file_path);
}
if (!file_exists($beacon_output_file_path)) {
    file_put_contents($beacon_output_file_path, mt_rand());
}
list($json_headers, $json_data) = ezcurl($app_json_url, $error);
if ($json_data == false) {
    appdeck_error("failed to download: {$app_json_url}: {$error}", $app_plist_path);
}
$info = json_decode(json_minify($json_data));
if ($info == false) {
    appdeck_error("{$app_json_url}: invalid json data: {$json_data}");
}
$base_url = isset($info->base_url) ? $info->base_url : $app_json_url;
if (!isset($info->embed_url) && !isset($info->embed)) {
    appdeck_warning("no embed ressources defined in app.json");
}
// by default we always embed app.json
appdeck_add_ressource($app_json_url, $json_data, true);
// try to add files from embed url
if (isset($info->embed_url)) {
    $embed_url = resolve_url($info->embed_url, $base_url);
    embed_url($embed_url);
}
if (isset($info->embed_url_tablet)) {
    $embed_url = resolve_url($info->embed_url_tablet, $base_url);
    embed_url($embed_url);
define('FORCE_DOWNLOAD', false);
define('APPDECK_APPDATA_URL', 'http://appdata.static.appdeck.mobi/res/android/');
define('EMBED_SUFFIX', '.png');
require 'embedresources.lib.php';
$project_path = realpath('.');
$app_manifest = openxml($project_path . '/app/src/main/AndroidManifest.xml');
$app_json_url = $app_manifest->xpath("//meta-data[@android:name='AppDeckJSONURL']/@android:value");
/*
$app_package = $app_manifest->xpath("//manifest/@package");
$app_package = $app_package[0];

var_dump(shell_exec("/Applications/Android/sdk/platform-tools/adb shell \"pm uninstall {$app_package}\""));
var_dump(shell_exec("/Applications/Android/sdk/platform-tools/adb shell \"rm -rf /data/app/{$app_package}-*\""));
*/
if ($app_json_url == false) {
    appdeck_error('missing AppDeckJSONURL entry in AndroidManifest.xml (add <meta-data android:name="AppDeckJSONURL" android:value="..."></meta-data> in root of your AndroidManifest.xml file)', $app_plist_path);
}
$app_json_url = (string) $app_json_url[0]['value'];
define('APPDECK_JSON_URL', $app_json_url);
define('APPDECK_OUTPUT_DIR', $project_path . '/app/src/main/assets/httpcache/');
if (isset($argv[1]) && $argv[1] == 'clean') {
    print "Clean downloaded assets ...";
    $count = 0;
    foreach (glob(APPDECK_OUTPUT_DIR . '/*') as $file) {
        unlink($file);
        $count++;
    }
    print "{$count} files deleted\r\n";
    exit;
}
include 'embedresources.php';
Ejemplo n.º 4
0
#!/usr/bin/php
<?php 
define('EMBED_TYPE', 'ios7');
define('FORCE_DOWNLOAD', false);
define('APPDECK_APPDATA_URL', 'http://appdata.static.appdeck.mobi/res/iphone/');
require 'embedresources.lib.php';
// Init dir
$output_dir = env('CONFIGURATION_BUILD_DIR') . '/' . env('UNLOCALIZED_RESOURCES_FOLDER_PATH') . '/embedresource/';
// AppDeck - Embed resources script
$app_plist_path = env('SRCROOT') . '/' . env('INFOPLIST_FILE');
$app_plist = openxml($app_plist_path);
$app_api_key = plistget($app_plist, 'AppDeckApiKey');
if ($app_api_key != false) {
    $app_api_key = preg_replace('/#.*/', '', $app_api_key);
}
$app_json_url = plistget($app_plist, 'AppDeckJSONURL');
if ($app_api_key == false && $app_json_url == false) {
    appdeck_error("missing AppDeckApiKey entry", $app_plist_path);
}
if ($app_json_url == false) {
    $app_json_url = 'http://config.appdeck.mobi/json/' . $app_api_key;
}
define('APPDECK_API_KEY', $app_json_url);
define('APPDECK_JSON_URL', $app_json_url);
define('APPDECK_OUTPUT_DIR', $output_dir);
require 'embedresources.php';