- Install
node-appdmg. - Run with the bare minimum specs below.
{
"title" : "PRODUCT_NAME",
"window" :
{
"size" :
{
| extension UIView { | |
| /// Search ancestral view hierarchy for the given view type. | |
| func searchViewAnchestorsFor<ViewType: UIView>( | |
| _ onViewFound: (ViewType) -> Void | |
| ) { | |
| if let matchingView = self.superview as? ViewType { | |
| onViewFound(matchingView) | |
| } else { | |
| superview?.searchViewAnchestorsFor(onViewFound) |
| extension UIView { | |
| func printViewHierarchyInformation(_ level: Int = 0) { | |
| printViewInformation(level) | |
| self.subviews.forEach { $0.printViewHierarchyInformation(level + 1) } | |
| } | |
| func printViewInformation(_ level: Int) { | |
| let leadingWhitespace = String(repeating: " ", count: level) | |
| let className = "\(Self.self)" |
| import SwiftUI | |
| let hello = "Hello" | |
| let world = "world!" | |
| struct ContentView_standard: View | |
| { | |
| for f in *; do convert -density 300 -units pixelsperinch "$f" "$f"; done |
node-appdmg.{
"title" : "PRODUCT_NAME",
"window" :
{
"size" :
{
| touch -t YYYYMMDDhhmm ~/Path/To/Image.jpg |
| #!/bin/sh | |
| # Zip CloudCode folders | |
| zip -r scripts.zip event modules response | |
| # Send to GameSparks | |
| curl \ | |
| --verbose \ | |
| --header 'Content-Type: multipart/form-data' \ | |
| --header 'Accept: application/json' \ |
Simple commits:
git replace --graft <TAIL_COMMIT_SHA> <TIP_COMMIT_SHA>
If tip is a merge commit:
git replace --graft <TAIL_COMMIT_SHA> <FIRST_PARENT_OF_TIP_MERGE_COMMIT_SHA> <SECOND_PARENT_OF_TIP_MERGE_COMMIT_SHA>
Then:
| git log -1 --pretty=%B | cut -d ' - ' -f 1 |
git branch -m OLD_NAME NEW_NAME
git push origin :OLD_NAME NEW_NAME
git push --set-upstream origin NEW_NAME