Skip to content

Instantly share code, notes, and snippets.

@voxels
voxels / universal-framework.sh
Last active May 30, 2018 18:58 — forked from atsepkov/universal-framework.sh
This run script will build the iphoneos and iphonesimulator schemes and then combine them into a single framework using the lipo tool (including all the Swift module architectures). This version works with Cocoapods, merging simulator and device architectures for intermediate libraries as well. To use this script, go to Product > Scheme > Edit S…
# This XCode scheme archive post-action script combines the device and iOS simulator frameworks into a single binary
# so that the encapsulated library can be run in both contexts. PLEASE NOTE: the iOS Simulator framework must be REMOVED
# before submitting this binary to the app store
# Source: https://gist.github.com/voxels/0ec095d567bcb0bc30a7c80122b17396
# Based on: https://gist.github.com/atsepkov/1673c2d899470270e3eb313912aafc6f
# Resources:
# - https://developer.apple.com/library/content/technotes/tn2215/_index.html
# - https://pewpewthespells.com/blog/buildsettings.html
@voxels
voxels / remove_unused_architectures.sh
Last active May 30, 2018 16:52 — forked from steipete/FilterScriptPhase.sh
This filter script phase is required to remove unused architectures from your application, which would be flagged as issue during upload to the Apple AppStore. Read more at http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/
APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
# This script loops through the frameworks embedded in the application and
# removes unused architectures.
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
@voxels
voxels / ConcurrentOperation.swift
Created January 15, 2017 21:20 — forked from calebd/AsynchronousOperation.swift
Concurrent NSOperation in Swift
import Foundation
/// An abstract class that makes building simple asynchronous operations easy.
/// Subclasses must implement `execute()` to perform any work and call
/// `finish()` when they are done. All `NSOperation` work will be handled
/// automatically.
open class Operation: Foundation.Operation {
// MARK: - Properties