⚠️ Warning: Unsigned builds are primarily for development/testing purposes and cannot be installed on physical devices.
For .xcodeproj
:
xcodebuild -list -project
For .xcworkspace
:
xcodebuild -list -workspace
For .xcodeproj
:
xcodebuild archive \
-project \
-scheme "" \
-archivePath unsigned.xcarchive \
-configuration Release \
CODE_SIGN_IDENTITY="" \
CODE_SIGNING_REQUIRED=NO \
CODE_SIGNING_ALLOWED=NO
For .xcworkspace
:
xcodebuild \
-workspace \
-scheme "" \
-configuration Release \
clean archive \
-archivePath unsigned.xcarchive \
CODE_SIGN_IDENTITY="" \
CODE_SIGNING_REQUIRED=NO \
CODE_SIGNING_ALLOWED=NO
Note: Use quotes around scheme names containing spaces!
cd unsigned.xcarchive/Products
mv Applications Payload
zip -r ../YourApp.ipa Payload
- In Xcode, select project in navigator
- Select target
- In Build Settings (All):
// if some entries are absent in Xcode GUI, add them as User-Defined. CODE_SIGN_IDENTITY = "" CODE_SIGNING_REQUIRED = NO CODE_SIGNING_ALLOWED = NO DEVELOPMENT_TEAM = "" PROVISIONING_PROFILE_SPECIFIER = ""
- Product -> Archive
- Clean build folder:
- Close Xcode
- Product > Clean Build Folder (Shift + Command + K)
- Delete derived data:
rm -rf ~/Library/Developer/Xcode/DerivedData
- Relaunch Xcode
- Ensure target is set to "Any iOS Device (arm64)"
- Verify all signing-related fields are cleared/disabled
- Remove any embedded provisioning profiles
- Check Build Settings for any remaining signing requirements
- For command line builds, verify scheme name and path accuracy
- Unsigned builds can only run in iOS Simulator
- Cannot be installed on physical devices without signing
- Suitable for:
- Development and testing
- CI/CD pipelines
- Security audits
- Build verification
- Custom signing workflows
- Locate xcarchive with unsinged app build
- Right-click > Show Package Contents
- Navigate to Products folder
- Rename "Applications" to "Payload"
- Right-click Payload > Compress
- Rename "Payload.zip" to "YourApp.ipa"
Save this script as mkipa
in /usr/local/bin with executable permission:
See script help for usage info.
https://gist.github.com/ivanopcode/d0219b082625584b1de215c1049a5522
*Ivan Oparin, 2024*