forked from mirrors/nixpkgs
Added testcases for signed Android and iOS apps
This commit is contained in:
parent
cf502a3166
commit
abf6896aaf
|
@ -56,7 +56,7 @@ stdenv.mkDerivation {
|
||||||
cp ${iosMobileProvisioningProfile} "$HOME/Library/MobileDevice/Provisioning Profiles/$provisioningId.mobileprovision"
|
cp ${iosMobileProvisioningProfile} "$HOME/Library/MobileDevice/Provisioning Profiles/$provisioningId.mobileprovision"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
${titaniumsdk}/mobilesdk/*/*/iphone/builder.py distribute 6.0 $(pwd) ${appId} "${_appName}" "$provisioningId" "${iosCertificateName}" $out universal "$HOME/Library/Keychains/$keychainName"
|
${titaniumsdk}/mobilesdk/*/*/iphone/builder.py distribute 7.0 $(pwd) ${appId} "${_appName}" "$provisioningId" "${iosCertificateName}" $out universal "$HOME/Library/Keychains/$keychainName"
|
||||||
|
|
||||||
# Remove our generated keychain
|
# Remove our generated keychain
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ stdenv.mkDerivation {
|
||||||
cp ${iosMobileProvisioningProfile} "$HOME/Library/MobileDevice/Provisioning Profiles/$provisioningId.mobileprovision"
|
cp ${iosMobileProvisioningProfile} "$HOME/Library/MobileDevice/Provisioning Profiles/$provisioningId.mobileprovision"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
${titaniumsdk}/mobilesdk/*/*/iphone/builder.py adhoc 6.0 $(pwd) ${appId} "${_appName}" "$provisioningId" "${iosCertificateName}" universal "$HOME/Library/Keychains/$keychainName"
|
${titaniumsdk}/mobilesdk/*/*/iphone/builder.py adhoc 7.0 $(pwd) ${appId} "${_appName}" "$provisioningId" "${iosCertificateName}" universal "$HOME/Library/Keychains/$keychainName"
|
||||||
|
|
||||||
# Remove our generated keychain
|
# Remove our generated keychain
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
cp -av * $out
|
cp -av * $out
|
||||||
cd $out
|
cd $out
|
||||||
${titaniumsdk}/mobilesdk/*/*/iphone/builder.py build 6.0 $(pwd) ${appId} "${_appName}" universal
|
${titaniumsdk}/mobilesdk/*/*/iphone/builder.py build 7.0 $(pwd) ${appId} "${_appName}" universal
|
||||||
''
|
''
|
||||||
|
|
||||||
else throw "Target: ${target} is not supported!"}
|
else throw "Target: ${target} is not supported!"}
|
||||||
|
|
|
@ -1,53 +1,90 @@
|
||||||
{ nixpkgs ? <nixpkgs>
|
{ nixpkgs ? <nixpkgs>
|
||||||
, systems ? [ "x86_64-linux" "x86_64-darwin" ]
|
, systems ? [ "x86_64-linux" "x86_64-darwin" ]
|
||||||
, xcodeVersion ? "5.0"
|
, xcodeVersion ? "5.0"
|
||||||
|
, rename ? false
|
||||||
|
, newBundleId ? "com.example.kitchensink", iosMobileProvisioningProfile ? null, iosCertificate ? null, iosCertificateName ? "Example", iosCertificatePassword ? ""
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
pkgs = import nixpkgs {};
|
pkgs = import nixpkgs {};
|
||||||
in
|
in
|
||||||
rec {
|
rec {
|
||||||
kitchensink_android = pkgs.lib.genAttrs systems (system:
|
kitchensink_android_debug = pkgs.lib.genAttrs systems (system:
|
||||||
let
|
let
|
||||||
pkgs = import nixpkgs { inherit system; };
|
pkgs = import nixpkgs { inherit system; };
|
||||||
in
|
in
|
||||||
import ./kitchensink {
|
import ./kitchensink {
|
||||||
inherit (pkgs) fetchgit;
|
inherit (pkgs) fetchgit;
|
||||||
titaniumenv = pkgs.titaniumenv.override { inherit xcodeVersion; };
|
titaniumenv = pkgs.titaniumenv.override { inherit xcodeVersion; };
|
||||||
target = "android";
|
target = "android";
|
||||||
});
|
});
|
||||||
|
|
||||||
emulate_kitchensink = pkgs.lib.genAttrs systems (system:
|
kitchensink_android_release = pkgs.lib.genAttrs systems (system:
|
||||||
let
|
let
|
||||||
pkgs = import nixpkgs { inherit system; };
|
pkgs = import nixpkgs { inherit system; };
|
||||||
in
|
in
|
||||||
import ./emulate-kitchensink {
|
import ./kitchensink {
|
||||||
inherit (pkgs) androidenv;
|
inherit (pkgs) fetchgit;
|
||||||
kitchensink = builtins.getAttr system kitchensink_android;
|
titaniumenv = pkgs.titaniumenv.override { inherit xcodeVersion; };
|
||||||
});
|
target = "android";
|
||||||
|
release = true;
|
||||||
|
});
|
||||||
|
|
||||||
|
emulate_kitchensink_debug = pkgs.lib.genAttrs systems (system:
|
||||||
|
let
|
||||||
|
pkgs = import nixpkgs { inherit system; };
|
||||||
|
in
|
||||||
|
import ./emulate-kitchensink {
|
||||||
|
inherit (pkgs) androidenv;
|
||||||
|
kitchensink = builtins.getAttr system kitchensink_android_debug;
|
||||||
|
});
|
||||||
|
|
||||||
|
emulate_kitchensink_release = pkgs.lib.genAttrs systems (system:
|
||||||
|
let
|
||||||
|
pkgs = import nixpkgs { inherit system; };
|
||||||
|
in
|
||||||
|
import ./emulate-kitchensink {
|
||||||
|
inherit (pkgs) androidenv;
|
||||||
|
kitchensink = builtins.getAttr system kitchensink_android_release;
|
||||||
|
});
|
||||||
|
|
||||||
} // (if builtins.elem "x86_64-darwin" systems then
|
} // (if builtins.elem "x86_64-darwin" systems then
|
||||||
let
|
let
|
||||||
pkgs = import nixpkgs { system = "x86_64-darwin"; };
|
pkgs = import nixpkgs { system = "x86_64-darwin"; };
|
||||||
in
|
in
|
||||||
rec {
|
rec {
|
||||||
kitchensink_iphone = import ./kitchensink {
|
kitchensink_ios_development = import ./kitchensink {
|
||||||
inherit (pkgs) fetchgit;
|
inherit (pkgs) fetchgit;
|
||||||
|
titaniumenv = pkgs.titaniumenv.override { inherit xcodeVersion; };
|
||||||
|
target = "iphone";
|
||||||
|
};
|
||||||
|
|
||||||
|
simulate_kitchensink_iphone = import ./simulate-kitchensink {
|
||||||
|
inherit (pkgs) stdenv;
|
||||||
|
xcodeenv = pkgs.xcodeenv.override { version = xcodeVersion; };
|
||||||
|
kitchensink = kitchensink_ios_development;
|
||||||
|
device = "iPhone";
|
||||||
|
};
|
||||||
|
|
||||||
|
simulate_kitchensink_ipad = import ./simulate-kitchensink {
|
||||||
|
inherit (pkgs) stdenv;
|
||||||
|
xcodeenv = pkgs.xcodeenv.override { version = xcodeVersion; };
|
||||||
|
kitchensink = kitchensink_ios_development;
|
||||||
|
device = "iPad";
|
||||||
|
};
|
||||||
|
} else {}) // (if rename then
|
||||||
|
let
|
||||||
|
pkgs = import nixpkgs { system = "x86_64-darwin"; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
kitchensink_ipa = import ./kitchensink {
|
||||||
|
inherit (pkgs) stdenv fetchgit;
|
||||||
titaniumenv = pkgs.titaniumenv.override { inherit xcodeVersion; };
|
titaniumenv = pkgs.titaniumenv.override { inherit xcodeVersion; };
|
||||||
target = "iphone";
|
target = "iphone";
|
||||||
|
release = true;
|
||||||
|
rename = true;
|
||||||
|
inherit newBundleId iosMobileProvisioningProfile iosCertificate iosCertificateName iosCertificatePassword;
|
||||||
};
|
};
|
||||||
|
}
|
||||||
simulate_kitchensink_iphone = import ./simulate-kitchensink {
|
|
||||||
inherit (pkgs) stdenv;
|
|
||||||
xcodeenv = pkgs.xcodeenv.override { version = xcodeVersion; };
|
|
||||||
kitchensink = kitchensink_iphone;
|
|
||||||
device = "iPhone";
|
|
||||||
};
|
|
||||||
|
|
||||||
simulate_kitchensink_ipad = import ./simulate-kitchensink {
|
else {})
|
||||||
inherit (pkgs) stdenv;
|
|
||||||
xcodeenv = pkgs.xcodeenv.override { version = xcodeVersion; };
|
|
||||||
kitchensink = kitchensink_iphone;
|
|
||||||
device = "iPad";
|
|
||||||
};
|
|
||||||
} else {})
|
|
||||||
|
|
|
@ -1,25 +1,41 @@
|
||||||
{titaniumenv, fetchgit, target, androidPlatformVersions ? [ "11" ]}:
|
{ titaniumenv, fetchgit, target, androidPlatformVersions ? [ "11" ], release ? false
|
||||||
|
, rename ? false, stdenv ? null, newBundleId ? null, iosMobileProvisioningProfile ? null, iosCertificate ? null, iosCertificateName ? null, iosCertificatePassword ? null
|
||||||
|
}:
|
||||||
|
|
||||||
titaniumenv.buildApp {
|
assert rename -> (stdenv != null && newBundleId != null && iosMobileProvisioningProfile != null && iosCertificate != null && iosCertificateName != null && iosCertificatePassword != null);
|
||||||
name = "KitchenSink-${target}";
|
|
||||||
appName = "KitchenSink";
|
let
|
||||||
appId = "com.appcelerator.kitchensink";
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = https://github.com/appcelerator/KitchenSink.git;
|
url = https://github.com/appcelerator/KitchenSink.git;
|
||||||
rev = "d9f39950c0137a1dd67c925ef9e8046a9f0644ff";
|
rev = "d9f39950c0137a1dd67c925ef9e8046a9f0644ff";
|
||||||
sha256 = "0aj42ac262hw9n9blzhfibg61kkbp3wky69rp2yhd11vwjlcq1qc";
|
sha256 = "0aj42ac262hw9n9blzhfibg61kkbp3wky69rp2yhd11vwjlcq1qc";
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit target androidPlatformVersions;
|
# Rename the bundle id to something else
|
||||||
|
renamedSrc = stdenv.mkDerivation {
|
||||||
|
name = "KitchenSink-renamedsrc";
|
||||||
|
inherit src;
|
||||||
|
buildPhase = ''
|
||||||
|
sed -i -e "s|com.appcelerator.kitchensink|${newBundleId}|" tiapp.xml
|
||||||
|
sed -i -e "s|com.appcelerator.kitchensink|${newBundleId}|" manifest
|
||||||
|
'';
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out
|
||||||
|
mv * $out
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
|
titaniumenv.buildApp {
|
||||||
|
name = "KitchenSink-${target}-${if release then "release" else "debug"}";
|
||||||
|
appName = "KitchenSink";
|
||||||
|
appId = if rename then newBundleId else "com.appcelerator.kitchensink";
|
||||||
|
src = if rename then renamedSrc else src;
|
||||||
|
|
||||||
/*release = true;
|
inherit target androidPlatformVersions release;
|
||||||
androidKeyStore = /home/sander/keystore;
|
|
||||||
androidKeyAlias = "sander";
|
|
||||||
androidKeyStorePassword = "foobar";*/
|
|
||||||
|
|
||||||
/*release = true;
|
androidKeyStore = ./keystore;
|
||||||
iosMobileProvisioningProfile = /Users/sander/Downloads/profile.mobileprovision;
|
androidKeyAlias = "myfirstapp";
|
||||||
iosCertificateName = "My Company";
|
androidKeyStorePassword = "mykeystore";
|
||||||
iosCertificate = /Users/sander/Downloads/c.p12;
|
|
||||||
iosCertificatePassword = "";*/
|
inherit iosMobileProvisioningProfile iosCertificate iosCertificateName iosCertificatePassword;
|
||||||
}
|
}
|
||||||
|
|
10
pkgs/development/mobile/titaniumenv/examples/kitchensink/generatekeystore.sh
Executable file
10
pkgs/development/mobile/titaniumenv/examples/kitchensink/generatekeystore.sh
Executable file
|
@ -0,0 +1,10 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
( echo "John Doe"
|
||||||
|
echo "My Company"
|
||||||
|
echo "My Organization"
|
||||||
|
echo "My City"
|
||||||
|
echo "My State"
|
||||||
|
echo "US"
|
||||||
|
echo "yes"
|
||||||
|
) | keytool --genkeypair --alias myfirstapp --keystore ./keystore --storepass mykeystore
|
Binary file not shown.
|
@ -26,10 +26,15 @@ stdenv.mkDerivation {
|
||||||
sed -i -e "s|#!/usr/bin/env python|#!${python}/bin/python|" $i
|
sed -i -e "s|#!/usr/bin/env python|#!${python}/bin/python|" $i
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Rename ugly version number
|
||||||
|
cd mobilesdk/*
|
||||||
|
mv 3.1.4.v20130926144546 3.1.4.GA
|
||||||
|
cd 3.1.4.GA
|
||||||
|
|
||||||
# Zip files do not support timestamps lower than 1980. We have to apply a few work-arounds to cope with that
|
# Zip files do not support timestamps lower than 1980. We have to apply a few work-arounds to cope with that
|
||||||
# Yes, I know it's nasty :-)
|
# Yes, I know it's nasty :-)
|
||||||
|
|
||||||
cd mobilesdk/*/*/android
|
cd android
|
||||||
|
|
||||||
sed -i -f ${./fixtiverify.sed} builder.py
|
sed -i -f ${./fixtiverify.sed} builder.py
|
||||||
sed -i -f ${./fixtiprofiler.sed} builder.py
|
sed -i -f ${./fixtiprofiler.sed} builder.py
|
||||||
|
@ -50,10 +55,20 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
# Wrap builder script
|
# Wrap builder script
|
||||||
|
|
||||||
wrapProgram `pwd`/builder.py \
|
mv builder.py .builder.py
|
||||||
--prefix PYTHONPATH : ${python.modules.sqlite3}/lib/python*/site-packages \
|
cat > builder.py <<EOF
|
||||||
--prefix PATH : ${jdk}/bin \
|
#!${python}/bin/python
|
||||||
--prefix JAVA_HOME : ${jdk}
|
|
||||||
|
import os, sys
|
||||||
|
|
||||||
|
os.environ['PYTHONPATH'] = '$(echo ${python.modules.sqlite3}/lib/python*/site-packages)'
|
||||||
|
os.environ['JAVA_HOME'] = '${jdk}'
|
||||||
|
|
||||||
|
os.execv('$(pwd)/.builder.py', sys.argv)
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod +x builder.py
|
||||||
|
|
||||||
'' + stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") ''
|
'' + stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") ''
|
||||||
# 'ditto' utility is needed to copy stuff to the Xcode organizer. Dirty, but this allows it to work.
|
# 'ditto' utility is needed to copy stuff to the Xcode organizer. Dirty, but this allows it to work.
|
||||||
sed -i -e "s|ditto|/usr/bin/ditto|g" $out/mobilesdk/osx/*/iphone/builder.py
|
sed -i -e "s|ditto|/usr/bin/ditto|g" $out/mobilesdk/osx/*/iphone/builder.py
|
||||||
|
|
Loading…
Reference in a new issue