Swift framework development for binary distribution with CocoaPods

Swift Framework with Objective-C

Having previously developed some Objective-C based frameworks, I set out to explore doing the same with Swift and be able to deliver the framework as a Pod.

Creating a a Swift Framework is pretty straightforward and there are some great references on the subject.  One that I found very helpful was Creating and Distributing iOS Frameworks

I wanted to include some Objective-C based CocoaPods in my Swift Framework and quickly ran into an issue – you can’t use bridging headers with framework targets.

I did find a workaround which was interesting.  An answer in the thread Importing CommonCrypto in a Swift framework showed how to create a module that could be imported into Swift using an Aggregate target.  Using this answer as a guide, I was able to create a module for AFNetworking using the run script:

mkdir -p "${BUILT_PRODUCTS_DIR}/AFNetworkingModuleMap"
cat <<EOF > "${BUILT_PRODUCTS_DIR}/AFNetworkingModuleMap/module.modulemap"
module AFNetworking [system] {
header "${PODS_ROOT}/Headers/Public/AFNetworking/AFNetworking.h"
export *
}
EOF

This was interesting, but not the right approach.

Continue reading

Advertisements

Crashlytics download issue and provisioning profile debug

Unable to Download App

I was asked to fix an issue with an existing  app called SmartPak wherein users on iOS 10.1+ would see a warning message about the app slowing down their phone if they were using a 64 bit device.   The fix itself was pretty straightforward – the architecture settings did not support 64 bit builds and a Digimarc library needed to be updated.

As I prepared to distribute the app for internal QA, I ran into a more difficult problem.  I was unable to download the Adhoc Crashlytics build to any of my test devices.

unable_to_download

Continue reading

Crash scenario with link detection in UITextView on iOS 9

Link detection Crash

In reviewing a crash log for a recently published app, I ran across a scenario where a user could reproducibly force a crash by using a long press on a link in a UITextView.

  • Occurs on iOS 9.
  • UITextView on a presented view controller.
  • Two consecutive long presses on a detected link in the UITextView.

On the first long press, I see the warning:

Continue reading

Sectioned table example with videos and articles

Sectioned Tables

I wanted to write-up the result of a code challenge that I completed a while ago.   I was asked to create a tabbed iOS app with sectioned tables, pulling video thumbnails and article titles into different sections.    Clicking on a thumbnail or article title would display the corresponding video or article in a separate view.    Adding to the challenge, I was asked to provide bookmarking capability for the videos and articles.  The bookmarked content would be visible in a second tab.

SectionedTable

Challenge Details and GitHub app

The full details of the challenge and resulting project can be found at:

Continue reading

Image manipulation using view transitions and transforms

Image Manipulation

I recently took on a code challenge that was delivered in an interesting fashion.   I was given a video that showed the manipulation of two images and was asked to create an iOS app that had the same behavior as the video.

ImageTransform

 

Requirements

After watching the video (many times), I extracted the following requirements for my app:

Continue reading