From 7eb93f944b3c3f57369d9efdba0c8eef8f89e866 Mon Sep 17 00:00:00 2001 From: Sander van der Burg Date: Mon, 4 Aug 2014 11:26:14 +0200 Subject: [PATCH] Implemented wireless adhoc distribution support for titanium apps --- pkgs/development/mobile/titaniumenv/build-app.nix | 11 +++++++++++ .../mobile/titaniumenv/examples/default.nix | 2 ++ .../titaniumenv/examples/kitchensink/default.nix | 2 ++ 3 files changed, 15 insertions(+) diff --git a/pkgs/development/mobile/titaniumenv/build-app.nix b/pkgs/development/mobile/titaniumenv/build-app.nix index 2443bfe9aed..fa959035a9e 100644 --- a/pkgs/development/mobile/titaniumenv/build-app.nix +++ b/pkgs/development/mobile/titaniumenv/build-app.nix @@ -2,10 +2,12 @@ { name, src, target, androidPlatformVersions ? [ "8" ], androidAbiVersions ? [ "armeabi" "armeabi-v7a" ], tiVersion ? null , release ? false, androidKeyStore ? null, androidKeyAlias ? null, androidKeyStorePassword ? null , iosMobileProvisioningProfile ? null, iosCertificateName ? null, iosCertificate ? null, iosCertificatePassword ? null +, enableWirelessDistribution ? false, installURL ? null }: assert (release && target == "android") -> androidKeyStore != null && androidKeyAlias != null && androidKeyStorePassword != null; assert (release && target == "iphone") -> iosMobileProvisioningProfile != null && iosCertificateName != null && iosCertificate != null && iosCertificatePassword != null; +assert enableWirelessDistribution -> installURL != null; let androidsdkComposition = androidsdk { @@ -132,6 +134,15 @@ stdenv.mkDerivation { cp -av build/iphone/build/* $out mkdir -p $out/nix-support echo "file binary-dist \"$(echo $out/Release-iphoneos/*.ipa)\"" > $out/nix-support/hydra-build-products + + ${stdenv.lib.optionalString enableWirelessDistribution '' + appname=$(basename $out/Release-iphoneos/*.ipa .ipa) + bundleId=$(grep '[a-zA-Z0-9.]*' tiapp.xml | sed -e 's|||' -e 's|||' -e 's/ //g') + version=$(grep '[a-zA-Z0-9.]*' tiapp.xml | sed -e 's|||' -e 's|||' -e 's/ //g') + + sed -e "s|@INSTALL_URL@|${installURL}?bundleId=$bundleId\&version=$version\&title=$appname|" ${../xcodeenv/install.html.template} > $out/$appname.html + echo "doc install \"$out/$appname.html\"" >> $out/nix-support/hydra-build-products + ''} '' else if target == "iphone" then "" else throw "Target: ${target} is not supported!"} diff --git a/pkgs/development/mobile/titaniumenv/examples/default.nix b/pkgs/development/mobile/titaniumenv/examples/default.nix index e5b43936453..d595db40817 100644 --- a/pkgs/development/mobile/titaniumenv/examples/default.nix +++ b/pkgs/development/mobile/titaniumenv/examples/default.nix @@ -5,6 +5,7 @@ , rename ? false , newBundleId ? "com.example.kitchensink", iosMobileProvisioningProfile ? null, iosCertificate ? null, iosCertificateName ? "Example", iosCertificatePassword ? "" , allowUnfree ? false +, enableWirelessDistribution ? false, installURL ? null }: let @@ -90,6 +91,7 @@ rec { release = true; rename = true; inherit newBundleId iosMobileProvisioningProfile iosCertificate iosCertificateName iosCertificatePassword; + inherit enableWirelessDistribution installURL; }; } diff --git a/pkgs/development/mobile/titaniumenv/examples/kitchensink/default.nix b/pkgs/development/mobile/titaniumenv/examples/kitchensink/default.nix index 1725c826a52..95372670969 100644 --- a/pkgs/development/mobile/titaniumenv/examples/kitchensink/default.nix +++ b/pkgs/development/mobile/titaniumenv/examples/kitchensink/default.nix @@ -1,5 +1,6 @@ { titaniumenv, fetchgit, target, androidPlatformVersions ? [ "14" ], tiVersion ? "3.2.3.GA", release ? false , rename ? false, stdenv ? null, newBundleId ? null, iosMobileProvisioningProfile ? null, iosCertificate ? null, iosCertificateName ? null, iosCertificatePassword ? null +, enableWirelessDistribution ? false, installURL ? null }: assert rename -> (stdenv != null && newBundleId != null && iosMobileProvisioningProfile != null && iosCertificate != null && iosCertificateName != null && iosCertificatePassword != null); @@ -37,4 +38,5 @@ titaniumenv.buildApp { androidKeyStorePassword = "mykeystore"; inherit iosMobileProvisioningProfile iosCertificate iosCertificateName iosCertificatePassword; + inherit enableWirelessDistribution installURL; }