BuildScripts/xcode/commonFastfile

73 lines
2.2 KiB
Plaintext

$appName = File.basename(Dir['../*.xcworkspace'].first, '.*')
before_all do |lane, options|
appName = options[:appName] || $appName
podsReposPath = File.expand_path "~/.cocoapods/repos/master/"
lockFilePath = "#{podsReposPath}/.git/index.lock"
# check if .lock file exists in pod repos - then remove all master repo
if File.exists? lockFilePath
sh("rm -rf #{podsReposPath}")
end
cocoapods(
clean: true,
repo_update: true
)
set_info_plist_value(
path: "./#{appName}/Info.plist",
key: "CFBundleVersion",
value: options[:buildNumber] || 10000
)
end
after_all do |lane, options|
if options[:uploadToFabric]
appName = options[:appName] || $appName
token = sh("cat ../#{appName}.xcodeproj/project.pbxproj | grep 'Fabric/run' | awk '{print $4}' | tr -d '\\n'")
secret = sh("printf `cat ../#{appName}.xcodeproj/project.pbxproj | grep 'Fabric/run' | awk '{print $5}' | sed 's/..$//'` | tr -d '\\n'")
releaseNotesFile = "release-notes.txt"
sh("touch ../#{releaseNotesFile}")
crashlytics(
ipa_path: "./#{appName}.ipa",
crashlytics_path: "./Pods/Crashlytics/",
api_token: token,
build_secret: secret,
notes_path: releaseNotesFile,
groups: "touch-instinct"
)
upload_symbols_to_crashlytics(
dsym_path: "./#{appName}.app.dSYM.zip",
api_token: token
)
end
end
private_lane :buildConfiguration do |options|
configuration = lane_context[SharedValues::LANE_NAME]
method = configuration.start_with?("Enterprise") ? "enterprise" : "development"
appName = options[:appName] || $appName
uploadToFabric = options[:uploadToFabric]
icloudEnvironment = options[:iCloudContainerEnvironment] || ""
exportOptions = icloudEnvironment.to_s.empty? ? {} : {iCloudContainerEnvironment: icloudEnvironment}
exportOptions[:compileBitcode] = options[:compileBitcode] || false
gym(
clean: true,
workspace: "./#{appName}.xcworkspace",
scheme: appName,
archive_path: "./",
output_directory: "./",
output_name: "#{appName}.ipa",
configuration: configuration,
export_method: method,
export_options: exportOptions,
skip_package_ipa: !uploadToFabric
)
end