xcodeenv: replace deprecated package application procedure by the new export archive operation
This commit is contained in:
parent
b21e398a75
commit
f2bd9d4745
@ -12,6 +12,7 @@
|
|||||||
, certificateFile ? null
|
, certificateFile ? null
|
||||||
, certificatePassword ? null
|
, certificatePassword ? null
|
||||||
, provisioningProfile ? null
|
, provisioningProfile ? null
|
||||||
|
, signMethod ? null
|
||||||
, generateIPA ? false
|
, generateIPA ? false
|
||||||
, generateXCArchive ? false
|
, generateXCArchive ? false
|
||||||
, enableWirelessDistribution ? false
|
, enableWirelessDistribution ? false
|
||||||
@ -21,7 +22,7 @@
|
|||||||
, title ? null
|
, title ? null
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert release -> codeSignIdentity != null && certificateFile != null && certificatePassword != null && provisioningProfile != null;
|
assert release -> codeSignIdentity != null && certificateFile != null && certificatePassword != null && provisioningProfile != null && signMethod != null;
|
||||||
assert enableWirelessDistribution -> installURL != null && bundleId != null && version != null && title != null;
|
assert enableWirelessDistribution -> installURL != null && bundleId != null && version != null && title != null;
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -82,12 +83,33 @@ stdenv.mkDerivation {
|
|||||||
# Do the building
|
# Do the building
|
||||||
export LD=clang # To avoid problem with -isysroot parameter that is unrecognized by the stock ld. Comparison with an impure build shows that it uses clang instead. Ugly, but it works
|
export LD=clang # To avoid problem with -isysroot parameter that is unrecognized by the stock ld. Comparison with an impure build shows that it uses clang instead. Ugly, but it works
|
||||||
|
|
||||||
xcodebuild -target ${_target} -configuration ${_configuration} ${stdenv.lib.optionalString (scheme != null) "-scheme ${scheme}"} -sdk ${_sdk} TARGETED_DEVICE_FAMILY="1, 2" ONLY_ACTIVE_ARCH=NO CONFIGURATION_TEMP_DIR=$TMPDIR CONFIGURATION_BUILD_DIR=$out ${if generateXCArchive then "archive" else ""} ${xcodeFlags} ${if release then ''"CODE_SIGN_IDENTITY=${codeSignIdentity}" PROVISIONING_PROFILE=$PROVISIONING_PROFILE OTHER_CODE_SIGN_FLAGS="--keychain $HOME/Library/Keychains/$keychainName-db"'' else ""}
|
xcodebuild -target ${_target} -configuration ${_configuration} ${stdenv.lib.optionalString (scheme != null) "-scheme ${scheme}"} -sdk ${_sdk} TARGETED_DEVICE_FAMILY="1, 2" ONLY_ACTIVE_ARCH=NO CONFIGURATION_TEMP_DIR=$TMPDIR CONFIGURATION_BUILD_DIR=$out ${if generateIPA || generateXCArchive then "-archivePath \"${name}.xcarchive\" archive" else ""} ${if release then ''PROVISIONING_PROFILE=$PROVISIONING_PROFILE OTHER_CODE_SIGN_FLAGS="--keychain $HOME/Library/Keychains/$keychainName-db"'' else ""} ${xcodeFlags}
|
||||||
|
|
||||||
${stdenv.lib.optionalString release ''
|
${stdenv.lib.optionalString release ''
|
||||||
${stdenv.lib.optionalString generateIPA ''
|
${stdenv.lib.optionalString generateIPA ''
|
||||||
|
# Create export plist file
|
||||||
|
cat > "${name}.plist" <<EOF
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>provisioningProfiles</key>
|
||||||
|
<dict>
|
||||||
|
<key>${bundleId}</key>
|
||||||
|
<string>$PROVISIONING_PROFILE</string>
|
||||||
|
</dict>
|
||||||
|
<key>method</key>
|
||||||
|
<string>${signMethod}</string>
|
||||||
|
${stdenv.lib.optionalString (signMethod == "enterprise" || signMethod == "ad-hoc") ''
|
||||||
|
<key>compileBitcode</key>
|
||||||
|
<false/>
|
||||||
|
''}
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
EOF
|
||||||
|
|
||||||
# Produce an IPA file
|
# Produce an IPA file
|
||||||
xcrun -sdk iphoneos PackageApplication -v $out/*.app -o "$out/${name}.ipa"
|
xcodebuild -exportArchive -archivePath "${name}.xcarchive" -exportOptionsPlist "${name}.plist" -exportPath $out
|
||||||
|
|
||||||
# Add IPA to Hydra build products
|
# Add IPA to Hydra build products
|
||||||
mkdir -p $out/nix-support
|
mkdir -p $out/nix-support
|
||||||
|
Loading…
x
Reference in New Issue
Block a user