SimplePushServer etc

I am attempting to run and observe the exanple app for simple push I downloaded from the wwdc lecture :
10113: Build Local Push Connectivity for Constrained Networks

I have downloaded it and I do have the App Push Provider Entitlement.

When I run the server app, SimplePushServer, it crashes immediately. I have the correct scheme selected and the device is My Mac.

Additionally the instructions for setting up the client app seems incomplete.

I have a cert, app ID and provisioning profile. The app ID has the capabilities for app groups, network extensions. The profile has the Local Push entitlement.

It seems that I need to replace the bundle id, team, profile and add the app group for the SimplePush client app. None of this is mentioned in the ReadMe.

Are there other steps that were left out?

It is unclear how I should configure the App Groups in the SimplePush target

I would like to get this application working so I can begin development of an application for our enterprise.

Any assistance would be greatly appreciated.

I have had exactly the same problem! I managed to run the server after a couple attempts, but I can't figure out how to make the client app work!
I've changed all the bundle identifiers and team with the ones I've created but when I run the app Xcode says:
"This application or a bundle it contains has the same bundle identifier as this application or another bundle that it contains."
Does the SimplePush and SimplePushProvider targets need different bundle identifier? So do I need to create two AppIDs with the same capabilities? This seem redundant to me...

Could anyone help?
We're working on an update to the README to include the missing steps. For now here are some tips on configuring and running the sample code:

Configure the Sample Code Project


Apps using Local Push Connectivity require the App Push Provider entitlement entitlement. After receiving the entitlement:
  1. Open SimplePush.xcworkspace and set the Development Team in the build settings of all five targets across the three projects. Once the team has been set, Xcode automatically creates unique bundle identifiers that can be used in the following steps.

  2. Sign into your account on the Apple Developer website and register a new App Group and two App IDs, one for the SimplePush app and one for the SimplePushProvider extension. Each App ID should be configured with the App Groups and Network Extensions capabilities. Once the IDs are registered, create two provisioning profiles (one for each identifier) that includes the App Push Provider entitlement.

  3. Import the newly created provisioning profiles into Xcode.

  4. In the SimplePush project, configure the SimplePush and SimplePushProvider targets with the imported provisioning profiles, uncheck the existing App Group and select the new App Group identifier created in step 2.

  5. Update the pushProviderBundleIdentifier in PushConfigurationManager.swift with the bundle identifier set on the SimplePushProvider target.

Build and Run the Sample Server


Select the SimplePushServer build scheme and your macOS machine as the run destination then run the project to start the server.

Build, Run, and Configure the Sample App


With the server running, select the SimplePush iOS build scheme and run the project on your iOS device. When SimplePush starts, update the app’s settings to connect to the server.
  1. Tap the Settings button and enter the following information:

  2. Enter the Server Address, which is the IP address or hostname of the macOS computer where SimplePushServer is running.

  3. Enter the SSID of your local Wi-Fi network. The NEAppPushProvider will only run when your device is joined to the Wi-Fi network with the SSID you've specified.

After configuring those settings, the “Local Push Connectivity - Active” setting displays “Yes” when NEAppPushProvider is running. You should perform the steps above on at least two iOS devices so you can test and observe message exchanges between clients.
"This application or a bundle it contains has the same bundle identifier as this application or another bundle that it contains."

I believe this means that the Push Provider needs to start with the bundle Id of the Push app. So if your app is "com.example.Push", then the provider extension should be named "com.example.Push.Provider".

Also I've found that turning off "Automatically manage signing" when setting the provision profile helps.
SimplePushServer etc
 
 
Q