mirror of
https://gitlab.com/famedly/fluffychat.git
synced 2025-04-20 08:57:51 +02:00

This switches to the FOSS implementation of the google libraries so we have no more Blobs there.
78 lines
3.3 KiB
Bash
Executable File
78 lines
3.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
FLUFFYCHAT_ORIG_GROUP="im.fluffychat"
|
|
FLUFFYCHAT_ORIG_TEAM="4NXF6Z997G"
|
|
#FLUFFYCHAT_NEW_GROUP="com.example.fluffychat"
|
|
#FLUFFYCHAT_NEW_TEAM="ABCDE12345"
|
|
|
|
# In some cases (ie: running beta XCode releases) some pods haven't updated their minimum version
|
|
# but XCode will reject the package for using too old of a minimum version.
|
|
# This will fix that, but. Well. Use at your own risk.
|
|
# export I_PROMISE_IM_REALLY_SMART=1
|
|
|
|
# If you want to automatically install the app
|
|
# export FLUFFYCHAT_INSTALL_IPA=1
|
|
|
|
### Rotate IDs ###
|
|
[ -n "${FLUFFYCHAT_NEW_GROUP}" ] && {
|
|
# App group IDs
|
|
sed -i "" "s/group.${FLUFFYCHAT_ORIG_GROUP}.app/group.${FLUFFYCHAT_NEW_GROUP}.app/g" "ios/FluffyChat Share/FluffyChat Share.entitlements"
|
|
sed -i "" "s/group.${FLUFFYCHAT_ORIG_GROUP}.app/group.${FLUFFYCHAT_NEW_GROUP}.app/g" "ios/Runner/Runner.entitlements"
|
|
sed -i "" "s/group.${FLUFFYCHAT_ORIG_GROUP}.app/group.${FLUFFYCHAT_NEW_GROUP}.app/g" "ios/Runner.xcodeproj/project.pbxproj"
|
|
# Bundle identifiers
|
|
sed -i "" "s/${FLUFFYCHAT_ORIG_GROUP}.app/${FLUFFYCHAT_NEW_GROUP}.app/g" "ios/Runner.xcodeproj/project.pbxproj"
|
|
}
|
|
|
|
[ -n "${FLUFFYCHAT_NEW_TEAM}" ] && {
|
|
# Code signing team
|
|
sed -i "" "s/${FLUFFYCHAT_ORIG_TEAM}/${FLUFFYCHAT_NEW_TEAM}/g" "ios/Runner.xcodeproj/project.pbxproj"
|
|
}
|
|
cat << EOHELP
|
|
If something later in the build explodes, and looks possibly related to App IDs:
|
|
1. Ask Xcode nicely
|
|
- Open ios/Runner.xcodeproj in Xcode
|
|
- Go to the Signing & Capabilities tab
|
|
- Ask it to repair the certificates/register app IDs/etc
|
|
2. Fix it yourself
|
|
- Go to https://developer.apple.com/account/resources/identifiers/list
|
|
- Ensure that Xcode created the App ID successfully (for fluffychat.app and fluffychat.app.FluffyChat-Share)
|
|
- Under "App Groups", make sure it registered your group
|
|
- Back "App IDs", check that the App Group was added to each App ID's entitlements
|
|
EOHELP
|
|
|
|
### [optional] override pods minimum iphoneos deployment target ###
|
|
[ -n "${I_PROMISE_IM_REALLY_SMART}" ] && {
|
|
# 1. I'm sorry about the indentation't ;_; heredocs are weird about it
|
|
# 2. The patch basically just removes any preference on target iOS version
|
|
# This lets our default from ios/Flutter/AppFrameworkInfo.plist take precendence
|
|
cat << EOPATCH | patch --forward --reject-file=apple_please_fix_your_coreutils --silent ios/Podfile
|
|
diff --git a/ios/Podfile b/ios/Podfile
|
|
index 9411102b..0446120a 100644
|
|
--- a/ios/Podfile
|
|
+++ b/ios/Podfile
|
|
@@ -37,5 +37,8 @@ end
|
|
post_install do |installer|
|
|
installer.pods_project.targets.each do |target|
|
|
flutter_additional_ios_build_settings(target)
|
|
+ target.build_configurations.each do |config|
|
|
+ config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
|
|
+ end
|
|
end
|
|
end
|
|
EOPATCH
|
|
rm -f apple_please_fix_your_coreutils
|
|
}
|
|
|
|
### Make release build ###
|
|
flutter build ipa --release
|
|
|
|
### [optional] Install release build ###
|
|
[ -n "${FLUFFYCHAT_INSTALL_IPA}" ] && {
|
|
TMPDIR=$(mktemp -d)
|
|
# 1. Turn the xcarchive that flutter created into a dev-signed IPA
|
|
echo '{"compileBitcode":false,"method":"development"}' | plutil -convert xml1 -o "${TMPDIR}/options.plist" -
|
|
xcodebuild -exportArchive -archivePath ./build/ios/archive/Runner.xcarchive -exportPath "${TMPDIR}" -exportOptionsPlist "${TMPDIR}/options.plist"
|
|
# 2. ...and install it on your connected devices
|
|
cfgutil --foreach install-app "${TMPDIR}/fluffychat.ipa"
|
|
rm -rf "${TMPDIR}"
|
|
}
|