summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/FUNDING.yml3
-rw-r--r--.github/workflows/build.yml44
-rw-r--r--Makefile.am1
-rw-r--r--NEWS18
-rw-r--r--src/ideviceinstaller.c30
5 files changed, 51 insertions, 45 deletions
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..e995b30
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,3 @@
+github: nikias
+patreon: nikias
+custom: ["https://www.paypal.me/NikiasBassen"]
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 65384cf..5484545 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -17,28 +17,28 @@ jobs:
run: |
echo "target_triplet=`gcc -dumpmachine`" >> $GITHUB_ENV
- name: fetch libplist
- uses: dawidd6/action-download-artifact@v2
+ uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libplist-latest_${{env.target_triplet}}
repo: libimobiledevice/libplist
- name: fetch libusbmuxd
- uses: dawidd6/action-download-artifact@v2
+ uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libusbmuxd-latest_${{env.target_triplet}}
repo: libimobiledevice/libusbmuxd
- name: fetch libimobiledevice-glue
- uses: dawidd6/action-download-artifact@v2
+ uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libimobiledevice-glue-latest_${{env.target_triplet}}
repo: libimobiledevice/libimobiledevice-glue
- name: fetch libimobiledevice
- uses: dawidd6/action-download-artifact@v2
+ uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
@@ -53,7 +53,7 @@ jobs:
rm -rf extract/lib
sudo cp -r extract/* /
sudo ldconfig
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
fetch-depth: 0
- name: autogen
@@ -68,7 +68,7 @@ jobs:
DESTDIR=`pwd`/dest make install
tar -C dest -cf ideviceinstaller.tar usr
- name: publish artifact
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: ideviceinstaller-latest_${{env.target_triplet}}
path: ideviceinstaller.tar
@@ -84,28 +84,28 @@ jobs:
fi
shell: bash
- name: fetch libplist
- uses: dawidd6/action-download-artifact@v2
+ uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libplist-latest_macOS
repo: libimobiledevice/libplist
- name: fetch libusbmuxd
- uses: dawidd6/action-download-artifact@v2
+ uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libusbmuxd-latest_macOS
repo: libimobiledevice/libusbmuxd
- name: fetch libimobiledevice-glue
- uses: dawidd6/action-download-artifact@v2
+ uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libimobiledevice-glue-latest_macOS
repo: libimobiledevice/libimobiledevice-glue
- name: fetch libimobiledevice
- uses: dawidd6/action-download-artifact@v2
+ uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
@@ -118,7 +118,7 @@ jobs:
tar -C extract -xvf $I
done
sudo cp -r extract/* /
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: install additional requirements
run: |
SDKDIR=`xcrun --sdk macosx --show-sdk-path 2>/dev/null`
@@ -169,12 +169,12 @@ jobs:
DESTDIR=`pwd`/dest make install
tar -C dest -cf ideviceinstaller.tar usr
- name: publish artifact
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: ideviceinstaller-latest_macOS
path: ideviceinstaller.tar
build-windows:
- runs-on: windows-2019
+ runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
@@ -195,6 +195,10 @@ jobs:
base-devel
git
mingw-w64-${{ matrix.arch }}-gcc
+ mingw-w64-${{ matrix.arch }}-pkg-config
+ mingw-w64-${{ matrix.arch }}-openssl
+ mingw-w64-${{ matrix.arch }}-xz
+ mingw-w64-${{ matrix.arch }}-bzip2
make
libtool
autoconf
@@ -206,28 +210,28 @@ jobs:
echo "dest=$dest" >> $GITHUB_ENV
echo "target_triplet=`gcc -dumpmachine`" >> $GITHUB_ENV
- name: fetch libplist
- uses: dawidd6/action-download-artifact@v2
+ uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libplist-latest_${{ matrix.arch }}-${{ env.dest }}
repo: libimobiledevice/libplist
- name: fetch libusbmuxd
- uses: dawidd6/action-download-artifact@v2
+ uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libusbmuxd-latest_${{ matrix.arch }}-${{ env.dest }}
repo: libimobiledevice/libusbmuxd
- name: fetch libimobiledevice-glue
- uses: dawidd6/action-download-artifact@v2
+ uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libimobiledevice-glue-latest_${{ matrix.arch }}-${{ env.dest }}
repo: libimobiledevice/libimobiledevice-glue
- name: fetch libimobiledevice
- uses: dawidd6/action-download-artifact@v2
+ uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
@@ -240,7 +244,7 @@ jobs:
tar -C extract -xvf $I
done
cp -r extract/* /
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: install additional requirements
run: |
FILENAME="libzip-1.7.1-static.tar.bz2"
@@ -251,7 +255,7 @@ jobs:
echo "LIBZIP_CFLAGS=-I`pwd`/deps/include" >> $GITHUB_ENV
echo "LIBZIP_LIBS=`pwd`/deps/lib/libzip.a /${{env.dest}}/lib/libbz2.a /${{env.dest}}/lib/liblzma.a " >> $GITHUB_ENV
- name: autogen
- run: ./autogen.sh CC=gcc CXX=g++ libzip_CFLAGS="${{env.LIBZIP_CFLAGS}}" libzip_LIBS="${{env.LIBZIP_LIBS}} /${{env.dest}}/lib/libz.a"
+ run: ./autogen.sh PKG_CONFIG_PATH=/${{env.dest}}/lib/pkgconfig libzip_CFLAGS="${{env.LIBZIP_CFLAGS}}" libzip_LIBS="${{env.LIBZIP_LIBS}} /${{env.dest}}/lib/libz.a"
- name: make
run: make
- name: make install
@@ -262,7 +266,7 @@ jobs:
DESTDIR=`pwd`/dest make install
tar -C dest -cf ideviceinstaller.tar ${{ env.dest }}
- name: publish artifact
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: ideviceinstaller-latest_${{ matrix.arch }}-${{ env.dest }}
path: ideviceinstaller.tar
diff --git a/Makefile.am b/Makefile.am
index 5888709..ca007b7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -7,4 +7,5 @@ EXTRA_DIST = \
git-version-gen
dist-hook:
+ @if ! git diff --quiet; then echo "Uncommitted changes present; not releasing"; exit 1; fi
echo $(VERSION) > $(distdir)/.tarball-version
diff --git a/NEWS b/NEWS
index f90b886..f7dc77f 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,21 @@
+Version 1.2.0
+~~~~~~~~~~~~~
+
+* Breaking changes:
+ - Command line options are now using subcommands like `install`, `list`, etc. instead of the old `-i`, `-l`
+
+* Changes:
+ - Add options for using external sinf and iTunes metadata
+ - Add JSON output capability
+ - Use CFBundleShortVersionString to display the app version
+ - Add -a command line switch to specify return attributes for 'list' command
+ - Add -b, --bundle-identifier command line switch to allow querying for bundle identifier
+
+* Bug Fixes:
+ - Fix picking wrong app directory from zip/ipa when there are other directories
+ - Fix wrong exit code on specific output format (xml or json)
+ - Make sure to always return an error code if something goes wrong
+
Version 1.1.1
~~~~~~~~~~~~~
diff --git a/src/ideviceinstaller.c b/src/ideviceinstaller.c
index d6c10a8..d07cedf 100644
--- a/src/ideviceinstaller.c
+++ b/src/ideviceinstaller.c
@@ -170,27 +170,7 @@ static void print_apps(plist_t apps)
if (!strcmp(key, "CFBundleIdentifier")) {
printf("%s", plist_get_string_ptr(node, NULL));
} else {
- uint64_t uval = 0;
- switch (plist_get_node_type(node)) {
- case PLIST_STRING:
- printf("\"%s\"", plist_get_string_ptr(node, NULL));
- break;
- case PLIST_INT:
- plist_get_uint_val(node, &uval);
- printf("%" PRIu64, uval);
- break;
- case PLIST_BOOLEAN:
- printf("%s", plist_bool_val_is_true(node) ? "true" : "false");
- break;
- case PLIST_ARRAY:
- printf("(array)");
- break;
- case PLIST_DICT:
- printf("(dict)");
- break;
- default:
- break;
- }
+ plist_write_to_stream(node, stdout, PLIST_FORMAT_PRINT, PLIST_OPT_NO_NEWLINE);
}
}
}
@@ -1216,7 +1196,7 @@ run_again:
size_t flen = 0;
zbuf = buf_from_file(extmeta, &flen);
if (zbuf && flen) {
- meta = plist_new_data((uint8_t*)zbuf, flen);
+ meta = plist_new_data(zbuf, flen);
plist_from_memory(zbuf, flen, &meta_dict, NULL);
free(zbuf);
}
@@ -1231,7 +1211,7 @@ run_again:
if (!meta && !meta_dict) {
/* extract iTunesMetadata.plist from package */
if (zip_get_contents(zf, ITUNES_METADATA_PLIST_FILENAME, 0, &zbuf, &len) == 0) {
- meta = plist_new_data((uint8_t*)zbuf, len);
+ meta = plist_new_data(zbuf, len);
plist_from_memory(zbuf, len, &meta_dict, NULL);
}
if (!meta_dict) {
@@ -1304,7 +1284,7 @@ run_again:
size_t flen = 0;
zbuf = buf_from_file(extsinf, &flen);
if (zbuf && flen) {
- sinf = plist_new_data((uint8_t*)zbuf, flen);
+ sinf = plist_new_data(zbuf, flen);
free(zbuf);
} else {
fprintf(stderr, "WARNING: could not load external SINF %s!\n", extsinf);
@@ -1324,7 +1304,7 @@ run_again:
zbuf = NULL;
len = 0;
if (zip_get_contents(zf, sinfname, 0, &zbuf, &len) == 0) {
- sinf = plist_new_data((uint8_t*)zbuf, len);
+ sinf = plist_new_data(zbuf, len);
} else {
fprintf(stderr, "WARNING: could not locate %s in archive!\n", sinfname);
}