[Bug] Error: Integrity check failed
Report
I have a valid Apple Developer account. I've tried multiple times with multiple certs and removing previous app data from Apple Developer site but signing wont work - Error: Integrity could not be verified. Certs are added system-wide and feather app shows: [red]PPQCheck and [green]364 days. Tried multiple options: Ellekit, substrate. Sideloading even non-modded unencrypted IPA doesnt work. Altstore as well as sideloadly worked flawlessly with using Apple Dev cert.
Steps to reproduce:
- Host: macOS arm64 26.1.1, iOS 26.1.1
- Install feather app by building it via xcode ^ to clarify: I've also tried sideloading via altstore so it doesnt have to be "main" branch issue
- try to sideload an IPA
Request Agreement
- [x] I have read the requirements for opening an issue above
Contributor Checks
- [ ] I am willing to attempt to make a pull request to fix this bug
Open/Applications/Utilities/Console.app on your Mac, select your device (plug it in) then filter for installd. You can do the installation process now and it will log to the Console.
It will give you detailed error's on why its failing to verify, and note that sideloadly/altstore have different ways of signing/installing so its not really relevant here.
It looks like installation via Xcode/Sideloadly/Altstore is not permitting Feather signing other apps.
Solution
1. Clone repo with submodules
git clone --recurse-submodules (this repo)
2. Build without signing via CLI
xcodebuild archive -project Feather.xcodeproj -scheme Feather -archivePath Feather-unsigned.xcarchive -configuration Release CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO
3. Navigate to the archive
cd Feather-unsigned.xcarchive/Products/Applications/
4. Create Payload folder structure
mkdir -p ~/Desktop/Payload
cp -R Feather.app ~/Desktop/Payload/
cd ~/Desktop/Payload
cp ./Info.plist ../
5. Modify plist to match your bundle name I used Plist Editor
6. Replace plist file
rm Info.Plist && mv ../Info.plist .
7. Now lets move to linux local machine and:
Install mkcert
mkcert -install
mkcert -CAROOT
cp ${CAROOT}/*.pem (to your https.py specified directory)
8. From macOS:
cd ~/Documents
scp ${USER}:{HOST}/${CAROOT} . (and airdrop one of the certificates, I forgot about which one)
homebrew install rust
git clone plistserver
cd plistserver
cargo run
9. Run curl commands from the guide
Follow the instructions at: https://github.com/nekohaxx/plistserver/blob/main/guide.md
10. It works! ✅