Skip to content

Instantly share code, notes, and snippets.

View Ahmadalsofi's full-sized avatar
🏠
Working from home

Ahmad AlSofi Ahmadalsofi

🏠
Working from home
View GitHub Profile
@Ahmadalsofi
Ahmadalsofi / Asynchronous sequence
Created December 11, 2022 08:58
example of a typewriter — an asynchronous sequence that “types” a phrase adding a character every second.
struct Typewriter: AsyncSequence {
typealias Element = String
let phrase: String
func makeAsyncIterator() -> TypewriterIterator {
return TypewriterIterator(phrase)
}
}
/// The type has a phrase to type out, which you pass to the iterator. The iterator looks like this:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = ""
config.build_settings['CODE_SIGNING_REQUIRED'] = "NO"
config.build_settings['CODE_SIGNING_ALLOWED'] = "NO"
end
end
end
steps:
- task: YodLabs.O365PostMessage.O365PostMessageBuild.O365PostMessageBuild@0
displayName: 'Post message using microsoft team'
inputs:
# The webhook url (if you have chosen Service Endpoint in the Messsage type)
url: 'webhook URL'
title: 'his to inform you that.... etc'
summary: summary
text: text
# Should a link to the build detail be automatically added to the message
- task: AppCenterDistribute@3
displayName: 'App Center'
inputs:
#(Required) Select the service connection for App Center. Create a new App Center service connection in Azure DevOps project settings.
serverEndpoint: Test
# (Required) The app slug is in the format of {username}/{app_identifier}. To locate {username} and {app_identifier} for an app, click on its name from https://appcenter.ms/apps, and the resulting URL is in the format of https://appcenter.ms/users/{username}/apps/{app_identifier}. If you are using orgs, the app slug is of the format {orgname}/{app_identifier}.
appSlug: 'alsofiahmad/TestApp'
# (Required) Relative path from the repo root to the APK or IPA file you want to publish
appFile: '$(build.artifactstagingdirectory)/**/*.ipa'
# (Required) Release notes for this version.
- task: PublishBuildArtifacts@1
inputs:
#The folder or file path to publish. This can be a fully-qualified path or a path relative to the root of the repository. Wildcards are not supported.
pathtoPublish: '$(build.artifactStagingDirectory)'
#Specify the name of the artifact that you want to create. It can be whatever you want. For example: drop
artifactName: 'drop'
#Choose whether to store the artifact in Azure Pipelines (Container), or to copy it to a file share (FilePath) that must be accessible from the build agent.
publishLocation: 'Container'
- task: CopyFiles@2
inputs:
# (Required) File paths to include as part of the copy.
contents: '**/*.ipa'
#(Required) Target folder or UNC path files will copy to. You can use variables.Example: $(build.artifactstagingdirectory)
targetFolder: '$(build.artifactStagingDirectory)'
#(Optional) Replace existing files in target folder Default value: false
overWrite: true
#(Optional) Flatten the folder structure and copy all files into the specified target folder Default value: false
- task: Xcode@5
displayName: 'Build the app using Xcode'
inputs:
#(Required) Enter a space-delimited list of actions. Valid options are build, clean, test, analyze, and archive. For example, clean build will run a clean build. See Apple: Building from the command line with Xcode FAQ. Default value: build
actions: 'clean build test analyze'
#(Optional) Specify an SDK to use when building the Xcode project or workspace. From the macOS Terminal application, run xcodebuild -showsdks to display the valid list of SDKs. The default value of this field is the variable $(SDK). When using a variable, make sure to specify a value (for example, iphonesimulator) on the Variables tab. Default value: $(SDK)
sdk: 'iphoneos'
#(Optional) Enter a scheme name defined in Xcode. It must be a shared scheme, with its Shared checkbox enabled under Managed Schemes in Xcode. If you specify a Workspace or project path above without specifying a scheme, and the workspace has a single shared scheme, it will be automa
- task: CocoaPods@0
inputs:
#(Required) Selecting this option will force running 'pod repo update' before install. Default value: false
forceRepoUpdate: true
# (Optional) Optionally specify the path to the root of the project directory. If left empty, the project specified in the Podfile will be used. If no project is specified, then a search for an Xcode project will be made. If more than one Xcode project is found, an error will occur.
projectDirectory: 'TestPip'
- task: InstallAppleCertificate@2
inputs:
# Select the certificate (.p12) that was uploaded to Secure Files to install on the macOS agent.
certSecureFile: 'Certificate.p12'
# Password to the Apple certificate (.p12). Use a new build variable with its lock enabled on the Variables tab to encrypt this value.
certPwd: '$(P12password)'
# Select the keychain in which to install the Apple certificate. You can choose to install the certificate in a temporary keychain (default), the default keychain or a custom keychain. A temporary keychain will always be deleted after the build or release is complete.
keychain: 'temp'
# Select to delete the certificate from the keychain after the build or release is complete. This option is visible when custom keychain or default keychain are selected.
pool:
vmImage: 'macos-latest'