diff --git a/build-system/manage-developer-portal-app.sh b/build-system/manage-developer-portal-app.sh new file mode 100644 index 0000000000..60e21c1381 --- /dev/null +++ b/build-system/manage-developer-portal-app.sh @@ -0,0 +1,129 @@ +#!/bin/bash + +set -e + +FASTLANE="$(which fastlane)" + +EXPECTED_VARIABLES=(\ + APPLE_ID \ + BASE_BUNDLE_ID \ + APP_NAME \ + TEAM_ID \ + PROVISIONING_DIRECTORY \ +) + +MISSING_VARIABLES="0" +for VARIABLE_NAME in ${EXPECTED_VARIABLES[@]}; do + if [ "${!VARIABLE_NAME}" = "" ]; then + echo "$VARIABLE_NAME not defined" + MISSING_VARIABLES="1" + fi +done +if [ "$MISSING_VARIABLES" == "1" ]; then + exit 1 +fi + +if [ ! -d "$PROVISIONING_DIRECTORY" ]; then + echo "Directory $PROVISIONING_DIRECTORY does not exist" + exit 1 +fi + +BASE_DIR=$(mktemp -d) +FASTLANE_DIR="$BASE_DIR/fastlane" +mkdir "$FASTLANE_DIR" +FASTFILE="$FASTLANE_DIR/Fastfile" + +touch "$FASTFILE" + +CREDENTIALS=(\ + --username "$APPLE_ID" \ + --team_id "$TEAM_ID" \ +) +export FASTLANE_SKIP_UPDATE_CHECK=1 + +APP_EXTENSIONS=(\ + Share \ + SiriIntents \ + NotificationContent \ + NotificationService \ + Widget \ +) + +echo "lane :manage_app do" >> "$FASTFILE" +echo " produce(" >> "$FASTFILE" +echo " username: '$APPLE_ID'," >> "$FASTFILE" +echo " app_identifier: '${BASE_BUNDLE_ID}'," >> "$FASTFILE" +echo " app_name: '$APP_NAME'," >> "$FASTFILE" +echo " language: 'English'," >> "$FASTFILE" +echo " app_version: '1.0'," >> "$FASTFILE" +echo " team_id: '$TEAM_ID'," >> "$FASTFILE" +echo " skip_itc: true," >> "$FASTFILE" +echo " )" >> "$FASTFILE" + +echo " produce(" >> "$FASTFILE" +echo " username: '$APPLE_ID'," >> "$FASTFILE" +echo " app_identifier: '${BASE_BUNDLE_ID}.watchkitapp'," >> "$FASTFILE" +echo " app_name: '$APP_NAME Watch App'," >> "$FASTFILE" +echo " language: 'English'," >> "$FASTFILE" +echo " app_version: '1.0'," >> "$FASTFILE" +echo " team_id: '$TEAM_ID'," >> "$FASTFILE" +echo " skip_itc: true," >> "$FASTFILE" +echo " )" >> "$FASTFILE" + +echo " produce(" >> "$FASTFILE" +echo " username: '$APPLE_ID'," >> "$FASTFILE" +echo " app_identifier: '${BASE_BUNDLE_ID}.watchkitapp.watchkitextension'," >> "$FASTFILE" +echo " app_name: '$APP_NAME Watch App Extension'," >> "$FASTFILE" +echo " language: 'English'," >> "$FASTFILE" +echo " app_version: '1.0'," >> "$FASTFILE" +echo " team_id: '$TEAM_ID'," >> "$FASTFILE" +echo " skip_itc: true," >> "$FASTFILE" +echo " )" >> "$FASTFILE" + +for EXTENSION in ${APP_EXTENSIONS[@]}; do + echo " produce(" >> "$FASTFILE" + echo " username: '$APPLE_ID'," >> "$FASTFILE" + echo " app_identifier: '${BASE_BUNDLE_ID}.${EXTENSION}'," >> "$FASTFILE" + echo " app_name: '${APP_NAME} ${EXTENSION}'," >> "$FASTFILE" + echo " language: 'English'," >> "$FASTFILE" + echo " app_version: '1.0'," >> "$FASTFILE" + echo " team_id: '$TEAM_ID'," >> "$FASTFILE" + echo " skip_itc: true," >> "$FASTFILE" + echo " )" >> "$FASTFILE" +done + +echo "end" >> "$FASTFILE" + +pushd "$BASE_DIR" + +fastlane cert ${CREDENTIALS[@]} --development + +fastlane manage_app + +fastlane produce group -g "group.$BASE_BUNDLE_ID" -n "$APP_NAME Group" ${CREDENTIALS[@]} + +fastlane produce enable_services -a "$BASE_BUNDLE_ID" ${CREDENTIALS[@]} \ + --app-group \ + --push-notification \ + --sirikit + +fastlane produce associate_group -a "$BASE_BUNDLE_ID" "group.$BASE_BUNDLE_ID" ${CREDENTIALS[@]} +for EXTENSION in ${APP_EXTENSIONS[@]}; do + fastlane produce enable_services -a "${BASE_BUNDLE_ID}.${EXTENSION}" ${CREDENTIALS[@]} \ + --app-group + + fastlane produce associate_group -a "${BASE_BUNDLE_ID}.${EXTENSION}" "group.$BASE_BUNDLE_ID" ${CREDENTIALS[@]} +done + +for DEVELOPMENT_FLAG in "--development"; do + fastlane sigh -a "$BASE_BUNDLE_ID" ${CREDENTIALS[@]} -o "$PROVISIONING_DIRECTORY" $DEVELOPMENT_FLAG \ + --skip_install + for EXTENSION in ${APP_EXTENSIONS[@]}; do + fastlane sigh -a "${BASE_BUNDLE_ID}.${EXTENSION}" ${CREDENTIALS[@]} -o "$PROVISIONING_DIRECTORY" $DEVELOPMENT_FLAG \ + --skip_install + done +done + +popd + +rm -rf "$BASE_DIR" diff --git a/submodules/LegacyComponents/BUILD b/submodules/LegacyComponents/BUILD index 938af834f7..50995c58e7 100644 --- a/submodules/LegacyComponents/BUILD +++ b/submodules/LegacyComponents/BUILD @@ -20,7 +20,7 @@ objc_library( "PublicHeaders/**/*.h", ]), copts = [ - "-Isubmodules/LegacyComponents/PublicHeaders/LegacyComponents", + "-I{}/PublicHeaders/LegacyComponents".format(package_name()), ], includes = [ "PublicHeaders", diff --git a/submodules/OpusBinding/BUILD b/submodules/OpusBinding/BUILD index 05ba0c44cb..4fe2766388 100644 --- a/submodules/OpusBinding/BUILD +++ b/submodules/OpusBinding/BUILD @@ -15,9 +15,9 @@ objc_library( "PublicHeaders", ], copts = [ - "-Isubmodules/OpusBinding/Sources", - "-Isubmodules/OpusBinding/Sources/opusfile", - "-Isubmodules/OpusBinding/PublicHeaders/OpusBinding", + "-I{}/Sources".format(package_name()), + "-I{}/Sources/opusfile".format(package_name()), + "-I{}/PublicHeaders/OpusBinding".format(package_name()), ], deps = [ "//submodules/Opus:opus", diff --git a/submodules/RMIntro/BUILD b/submodules/RMIntro/BUILD index 79ac8fa087..646805cab6 100644 --- a/submodules/RMIntro/BUILD +++ b/submodules/RMIntro/BUILD @@ -19,9 +19,9 @@ objc_library( "PublicHeaders", ], copts = [ - "-Isubmodules/RMIntro/{}".format(directory) for directory in unique_directories(private_headers) + "-I{}/{}".format(package_name(), directory) for directory in unique_directories(private_headers) ] + [ - "-Isubmodules/RMIntro/PublicHeaders/RMIntro", + "-I{}/PublicHeaders/RMIntro".format(package_name()), ], deps = [ "//submodules/LegacyComponents:LegacyComponents", diff --git a/submodules/Stripe/BUILD b/submodules/Stripe/BUILD index 98a5f786f1..9320c426ea 100644 --- a/submodules/Stripe/BUILD +++ b/submodules/Stripe/BUILD @@ -14,7 +14,7 @@ objc_library( "PublicHeaders", ], copts = [ - "-Isubmodules/Stripe/PublicHeaders/Stripe", + "-I{}/PublicHeaders/Stripe".format(package_name()), ], sdk_frameworks = [ "Foundation", diff --git a/submodules/TgVoip/BUILD b/submodules/TgVoip/BUILD index 9ea7e9af6a..2bd634904e 100644 --- a/submodules/TgVoip/BUILD +++ b/submodules/TgVoip/BUILD @@ -43,9 +43,9 @@ objc_library( "PublicHeaders/**/*.h", ]), copts = [ - "-Isubmodules/TgVoip/PublicHeaders/TgVoip", - "-Isubmodules/TgVoip/libtgvoip", - "-Isubmodules/TgVoip/libtgvoip/webrtc_dsp", + "-I{}/PublicHeaders/TgVoip".format(package_name()), + "-I{}/libtgvoip".format(package_name()), + "-I{}/libtgvoip/webrtc_dsp".format(package_name()), "-DTGVOIP_USE_INSTALLED_OPUS", ] + select({ "@build_bazel_rules_apple//apple:ios_armv7": copts_arm, diff --git a/submodules/WatchCommon/Host/BUILD b/submodules/WatchCommon/Host/BUILD index 803e14d039..8d9c05aabf 100644 --- a/submodules/WatchCommon/Host/BUILD +++ b/submodules/WatchCommon/Host/BUILD @@ -11,7 +11,7 @@ objc_library( "PublicHeaders/**/*.h", ]), copts = [ - "-Isubmodules/WatchCommon/Host/PublicHeaders/WatchCommon", + "-I{}/PublicHeaders/WatchCommon".format(package_name()), ], includes = [ "PublicHeaders", diff --git a/submodules/lottie-ios/BUILD b/submodules/lottie-ios/BUILD index 21e90b66c3..9d59ea6e57 100644 --- a/submodules/lottie-ios/BUILD +++ b/submodules/lottie-ios/BUILD @@ -14,9 +14,9 @@ objc_library( "lottie-ios/**/*.m", ]) + private_headers, copts = [ - "-Isubmodules/lottie-ios/{}".format(directory) for directory in unique_directories(private_headers) + "-I{}/{}".format(package_name(), directory) for directory in unique_directories(private_headers) ] + [ - "-Isubmodules/lottie-ios/lottie-ios/Classes/PublicHeaders/Lottie", + "-I{}/lottie-ios/Classes/PublicHeaders/Lottie".format(package_name()), ], hdrs = glob([ "lottie-ios/Classes/PublicHeaders/**/*.h", diff --git a/submodules/rlottie/BUILD b/submodules/rlottie/BUILD index 57f4ea5c1a..3e765bd718 100644 --- a/submodules/rlottie/BUILD +++ b/submodules/rlottie/BUILD @@ -24,11 +24,11 @@ objc_library( copts = [ "-Dpixman_region_selfcheck(x)=1", "-DLOTTIE_DISABLE_ARM_NEON=1", - "-Isubmodules/rlottie", - "-Isubmodules/rlottie/rlottie/inc", - "-Isubmodules/rlottie/rlottie/src/vector", - "-Isubmodules/rlottie/rlottie/src/vector/pixman", - "-Isubmodules/rlottie/rlottie/src/vector/freetype", + "-I{}".format(package_name()), + "-I{}/rlottie/inc".format(package_name()), + "-I{}/rlottie/src/vector".format(package_name()), + "-I{}/rlottie/src/vector/pixman".format(package_name()), + "-I{}/rlottie/src/vector/freetype".format(package_name()), ], deps = [ ],