Commit 16d5e42f authored by Carola Nitz's avatar Carola Nitz

fastlane: First implementation of automatic build uploads

parent 11e3c8ec
...@@ -8,3 +8,15 @@ External ...@@ -8,3 +8,15 @@ External
ImportedSources ImportedSources
DerivedData DerivedData
Pods Pods
# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/#source-control
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>
<string>en</string> <string>en</string>
<key>CFBundleDisplayName</key> <key>CFBundleDisplayName</key>
...@@ -258,6 +256,8 @@ ...@@ -258,6 +256,8 @@
</array> </array>
<key>LSRequiresIPhoneOS</key> <key>LSRequiresIPhoneOS</key>
<true/> <true/>
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>
<key>MLKitGroupIdentifier</key> <key>MLKitGroupIdentifier</key>
<string>$(GROUP_IDENTIFIER)</string> <string>$(GROUP_IDENTIFIER)</string>
<key>NSAppTransportSecurity</key> <key>NSAppTransportSecurity</key>
......
...@@ -14,9 +14,5 @@ ...@@ -14,9 +14,5 @@
<string>$(PRODUCT_NAME)</string> <string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>BNDL</string> <string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict> </dict>
</plist> </plist>
...@@ -115,8 +115,6 @@ ...@@ -115,8 +115,6 @@
<string>VLC for iOS</string> <string>VLC for iOS</string>
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>2.8.0</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleURLTypes</key> <key>CFBundleURLTypes</key>
...@@ -233,8 +231,6 @@ ...@@ -233,8 +231,6 @@
</array> </array>
</dict> </dict>
</array> </array>
<key>CFBundleVersion</key>
<string>280.0</string>
<key>ITSAppUsesNonExemptEncryption</key> <key>ITSAppUsesNonExemptEncryption</key>
<false/> <false/>
<key>LSApplicationCategoryType</key> <key>LSApplicationCategoryType</key>
......
...@@ -233,8 +233,6 @@ ...@@ -233,8 +233,6 @@
</array> </array>
</dict> </dict>
</array> </array>
<key>CFBundleVersion</key>
<string>280.0</string>
<key>ITSAppUsesNonExemptEncryption</key> <key>ITSAppUsesNonExemptEncryption</key>
<false/> <false/>
<key>LSApplicationCategoryType</key> <key>LSApplicationCategoryType</key>
......
...@@ -4582,6 +4582,7 @@ ...@@ -4582,6 +4582,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO; COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 301;
DEAD_CODE_STRIPPING = NO; DEAD_CODE_STRIPPING = NO;
EMBEDDED_CONTENT_CONTAINS_SWIFT = NO; EMBEDDED_CONTENT_CONTAINS_SWIFT = NO;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
...@@ -4626,6 +4627,7 @@ ...@@ -4626,6 +4627,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES; COPY_PHASE_STRIP = YES;
CURRENT_PROJECT_VERSION = 301;
DEAD_CODE_STRIPPING = NO; DEAD_CODE_STRIPPING = NO;
EMBEDDED_CONTENT_CONTAINS_SWIFT = NO; EMBEDDED_CONTENT_CONTAINS_SWIFT = NO;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
...@@ -4836,6 +4838,7 @@ ...@@ -4836,6 +4838,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES; COPY_PHASE_STRIP = YES;
CURRENT_PROJECT_VERSION = 301;
DEAD_CODE_STRIPPING = NO; DEAD_CODE_STRIPPING = NO;
EMBEDDED_CONTENT_CONTAINS_SWIFT = NO; EMBEDDED_CONTENT_CONTAINS_SWIFT = NO;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
...@@ -4888,7 +4891,7 @@ ...@@ -4888,7 +4891,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
IBSC_MODULE = watchkitapp_Extension; IBSC_MODULE = watchkitapp_Extension;
INFOPLIST_FILE = "$(SRCROOT)/VLC WatchKit Native/Info.plist"; INFOPLIST_FILE = "VLC WatchKit Native/Info.plist";
MTL_ENABLE_DEBUG_INFO = YES; MTL_ENABLE_DEBUG_INFO = YES;
PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER_PREFIX}.vlc-ios.watchkitapp"; PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER_PREFIX}.vlc-ios.watchkitapp";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
...@@ -4925,7 +4928,7 @@ ...@@ -4925,7 +4928,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
IBSC_MODULE = watchkitapp_Extension; IBSC_MODULE = watchkitapp_Extension;
INFOPLIST_FILE = "$(SRCROOT)/VLC WatchKit Native/Info.plist"; INFOPLIST_FILE = "VLC WatchKit Native/Info.plist";
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER_PREFIX}.vlc-ios.watchkitapp"; PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER_PREFIX}.vlc-ios.watchkitapp";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
...@@ -4962,7 +4965,7 @@ ...@@ -4962,7 +4965,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
IBSC_MODULE = watchkitapp_Extension; IBSC_MODULE = watchkitapp_Extension;
INFOPLIST_FILE = "$(SRCROOT)/VLC WatchKit Native/Info.plist"; INFOPLIST_FILE = "VLC WatchKit Native/Info.plist";
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER_PREFIX}.vlc-ios.watchkitapp"; PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER_PREFIX}.vlc-ios.watchkitapp";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
...@@ -5000,7 +5003,7 @@ ...@@ -5000,7 +5003,7 @@
GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
INFOPLIST_FILE = "$(SRCROOT)/VLC WatchKit Native Extension/Info.plist"; INFOPLIST_FILE = "VLC WatchKit Native Extension/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
MTL_ENABLE_DEBUG_INFO = YES; MTL_ENABLE_DEBUG_INFO = YES;
PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER_PREFIX}.vlc-ios.watchkitapp.wkextension"; PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER_PREFIX}.vlc-ios.watchkitapp.wkextension";
...@@ -5043,7 +5046,7 @@ ...@@ -5043,7 +5046,7 @@
GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
INFOPLIST_FILE = "$(SRCROOT)/VLC WatchKit Native Extension/Info.plist"; INFOPLIST_FILE = "VLC WatchKit Native Extension/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER_PREFIX}.vlc-ios.watchkitapp.wkextension"; PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER_PREFIX}.vlc-ios.watchkitapp.wkextension";
...@@ -5086,7 +5089,7 @@ ...@@ -5086,7 +5089,7 @@
GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
INFOPLIST_FILE = "$(SRCROOT)/VLC WatchKit Native Extension/Info.plist"; INFOPLIST_FILE = "VLC WatchKit Native Extension/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER_PREFIX}.vlc-ios.watchkitapp.wkextension"; PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER_PREFIX}.vlc-ios.watchkitapp.wkextension";
......
def ensure_git_status_clean
gitstatus = `xcrun git status --porcelain`
if gitstatus != "?? 0001-privateConstants.patch\n"
puts("⚠️ There are local changes. Please commit, stash or reset before continuing.\n#{gitstatus}")
exit(-2)
end
end
def git_apply_private_constants
Dir.chdir("..") do
gitapply = `xcrun git apply 0001-privateConstants.patch`
if gitapply != ""
puts("⚠️ There are conflicts. Please resolve the conflicts and update the privateConstants.patch before continuing.\n#{gitapply}")
exit(-2)
end
end
end
def changelog
#splits the News by -------- get out the top notes
changelog = File.read("../Docs/NEWS").split("-----------")[1].split("-----------").first
tempChangelog = changelog.split("iOS")
if (tempChangelog.count <= 1)
tempChangelog = changelog.split("tvOS")
end
changelog = tempChangelog[0..-2].join.strip
set_changelog(app_identifier: "org.videolan.vlc-ios", changelog: changelog, username: "*", team_name:"VideoLAN")
end
def build_app
project_file = 'VLC.xcodeproj'
increment_version_number(
bump_type: "patch",
xcodeproj: project_file
)
increment_build_number(
xcodeproj: project_file)
commit_version_bump(
message: 'Version Bump by fastlane',
xcodeproj: project_file,
force: true)
end
# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane
default_platform(:ios)
platform :ios do
before_all do
clear_derived_data
end
desc "Release a new version to the App Store"
desc "This action does the following:"
desc ""
desc "- Ensures a clean git status"
desc "- Increment the version and build number and commit the change"
desc "- Apply the privateConstants which include the credentials"
desc "- Build and sign the app"
desc "- Update the changelog from the NEWS file"
desc "- Push the version bump"
lane :release do
# Make sure we start off with a clean slate
ensure_git_status_clean
# Bumps the version, commits it and builds the app
build_app
#apply the private keys for
git_apply_private_constants
#Build VLC for iOS
gym(workspace: 'VLC.xcworkspace',
scheme: 'VLC-iOS',
clean:true)
# uploads the app to the app store
upload_to_app_store(skip_metadata: true,
skip_screenshots: true)
# updates the changelog from the NEWS file
changelog
push_to_git_remote
end
end
fastlane documentation
================
# Installation
Make sure you have the latest version of the Xcode command line tools installed:
```
xcode-select --install
```
Install _fastlane_ using
```
[sudo] gem install fastlane -NV
```
or alternatively using `brew cask install fastlane`
# Available Actions
## iOS
### ios release
```
fastlane ios release
```
Release a new version to the App Store
This action does the following:
- Ensures a clean git status
- Increment the version and build number and commit the change
- Apply the privateConstants which include the credentials
- Build and sign the app
- Update the changelog from the NEWS file
- Push the version bump
----
This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run.
More information about fastlane can be found on [fastlane.tools](https://fastlane.tools).
The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools).
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment