-
Notifications
You must be signed in to change notification settings - Fork 238
Automatically build IPA for iOS #2355
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
|
||
| cd "${THIS_JAMULUS_PROJECT_PATH}" | ||
|
|
||
| qmake -spec macx-xcode Jamulus.pro |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would have expected the spec to be the iOS build rather than the macx target here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. But that's what builds for iOS
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so how does:
else:ios {
QMAKE_INFO_PLIST = ios/Info.plist
QT += macextras
OBJECTIVE_SOURCES += ios/ios_app_delegate.mm
HEADERS += ios/ios_app_delegate.h
HEADERS += ios/sound.h
OBJECTIVE_SOURCES += ios/sound.mm
QMAKE_TARGET_BUNDLE_PREFIX = io.jamulus
QMAKE_APPLICATION_BUNDLE_NAME. = $$TARGET
LIBS += -framework AVFoundation \
-framework AudioToolbox
}
play into the build?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably it generates the .xcodeproject for iOS
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since the build includes the iOS version of Qt, probably qmake knows it is building for iOS. Certainly the log shows a line for building ios/sound.mm
|
BTW: https://dantheman827.github.io/ios-app-signer/ seems to be maintained (?) while the other app I mentioned doesn't. There's spam |
|
Once we have this building, I can add some of the signing to the GitHub repo in the same way as for the Mac app. |
|
Yes, maybe we can generate IPA files then. |
6d2770e to
411f857
Compare
| @@ -0,0 +1,48 @@ | |||
| #!/bin/sh -e | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is mostly copied from macOS.
This would probably allow us to generate IPA files? Probably users would still need to sign them themselves. Releasing on TestFlight seems to work as https://www.uketok.com/about.php did that. |
|
Other build assets can be found here: https://github.com/jamulussoftware/jamulus/actions/runs/1807584540 |
Yes, I'd set it up to build and push to TestFlight. Then we can have an open beta available. |
|
After trying multiple times, it seems as if using the produced file needs Xcode to be installed. That's exactly what I wanted to avoid. Probably with signing we can produce fake-signed IPA files which could then be installed via some external app. |
|
Wait a moment. I think I got it to work! Let's wait and see what the CI produces. |
|
Just installed the unsigned IPA via Sideloadly on my phone and it worked! I'd see this PR as ready for review. If we merge it, it should be squash-merged |
d7d6608 to
4ee4dda
Compare
|
Can be reviewed further and merged soon |
| echo "Install dependencies..." | ||
| python3 -m pip install "aqtinstall==${AQTINSTALL_VERSION}" | ||
| python3 -m aqt install-qt --outputdir "${QT_DIR}" mac ios ${QT_VER} | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this needs caching.
softins
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll review more later when I get time. Would like to try it on my iPad.
|
Should be squash merged. |
bf04779 to
8794711
Compare
softins
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well the actual changes look sensible. And now I have managed to get sideloadly onto my Mac and use it to load the ipa onto my iPad. It seems to run ok, and I have listened to a couple of sessions, so happy to approve.
hoffie
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Build logic looks fine, but I don't know anything about iOS app packaging.
|
CHANGELOG: Feature: Provide unsigned iOS builds for easy install on iOS devices. Please note that you will need to sign the app yourself (usually done via a computer). The app will only run for 7 days before you need to resign it. |
Short description of changes
Automatically builds unsigned ipa files for iOS. This might enable quicker installing of the iOS version with a tool like Sideloadly: https://sideloadly.io
Context: Fixes an issue?
Related to #2105
Does this change need documentation? What needs to be documented and how?
Yes. But only if it is tested to work
Status of this Pull Request
Needs testing and a decision if we want to actually go this way (I think it's the only way to provide semi-official non-app-store builds)
What is missing until this pull request can be merged?
Review by @emlynmac and @softins
Checklist