57 lines
1.3 KiB
Bash
57 lines
1.3 KiB
Bash
|
#!/bin/bash -e
|
||
|
|
||
|
#
|
||
|
# package-ipa.sh
|
||
|
#
|
||
|
# Bundles an iOS app correctly, using the same directory structure that Xcode does when using the export functionality.
|
||
|
#
|
||
|
|
||
|
xcarchive="$1"
|
||
|
output_ipa="$2"
|
||
|
build_dir=$(mktemp -d '/tmp/package-ipa.XXXXXX')
|
||
|
echo "build_dir: $build_dir"
|
||
|
|
||
|
if [ ! -d "${xcarchive}" ]; then
|
||
|
echo "Usage: package-ipa.sh /path/to/app.xcarchive /path/to/ouput.ipa"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
echo "Packaging ${xcarchive} into ${output_ipa}"
|
||
|
|
||
|
if [ -f "${output_ipa}" ]; then
|
||
|
rm "${output_ipa}"
|
||
|
fi
|
||
|
|
||
|
# if [ -d "${build_dir}" ]; then
|
||
|
# rm -rf "${build_dir}"
|
||
|
# fi
|
||
|
|
||
|
echo "Preparing folder tree for IPA"
|
||
|
mkdir -p "${build_dir}/Payload"
|
||
|
|
||
|
# Copy .app into Payload dir
|
||
|
pushd "${xcarchive}/Products/Applications" > /dev/null
|
||
|
ls -l
|
||
|
cp -Rp ./*.app "${build_dir}/Payload"
|
||
|
popd > /dev/null
|
||
|
|
||
|
# Check for and copy swift libraries
|
||
|
#if [ -d "${xcarchive}/SwiftSupport" ]; then
|
||
|
# echo "Adding Swift support dylibs"
|
||
|
# cp -Rp "${xcarchive}/SwiftSupport" "${build_dir}/"
|
||
|
#fi
|
||
|
|
||
|
# Check for and copy WatchKit file
|
||
|
#if [ -d "${xcarchive}/WatchKitSupport" ]; then
|
||
|
# echo "Adding WatchKit support file"
|
||
|
# cp -Rp "${xcarchive}/WatchKitSupport" "${build_dir}/"
|
||
|
#fi
|
||
|
|
||
|
echo "Zipping"
|
||
|
pushd "${build_dir}" > /dev/null
|
||
|
zip --symlinks --verbose --recurse-paths "${output_ipa}" .
|
||
|
popd > /dev/null
|
||
|
|
||
|
rm -rf "${build_dir}"
|
||
|
echo "Created ${output_ipa}"
|