Thanks to 祥波.
After specify providerBundleIdentifier explicitly in code, It makes some 
progress now :-)

The current condition became:
1. I still can not use my container app to connect my extension, however,
2. If I use system preference > network to click connect, then I can saw my 
extension dump logs on console now!

I still saw the error message on console say that my plug-ins must be 
sandboxed, is it normal?

any idea?

— Kevin


> 孔祥波 <[email protected]> 於 2016年4月20日 下午2:17 寫道:
> 
> 
> let config = NETunnelProviderProtocol()
> 
> config.providerBundleIdentifier = "you extension bundle id" // this value 
> must set on Mac App, otherwise Apple Code will use your main app bundle id , 
> will fail!, enjoy it!
> 
> On Wed, Apr 20, 2016 at 1:32 PM, Kevin Yu <[email protected] 
> <mailto:[email protected]>> wrote:
> After turn on the container app to sandbox, it does not make much difference, 
> I still saw the message:
> 
> 2016/4/20 PM1:15:14.964 pkd[610]: ignoring mis-configured plug-in at 
> /Users/kevinyu/Library/Developer/Xcode/DerivedData/Smart_VPN-ahmwawingpuachhkpmczcmidvxsy/Build/Products/Debug/drayTunnelX.appex:
>  plug-ins must be sandboxed
> 
> but I saw the following log on console after click connect button
> 
> 2016/4/20 PM 1:15:48.440 nesessionmanager[4826]: 
> NESMVPNSession[vpn:A58F98D8-580D-46BB-BA9C-B514EDB00073]: Received a start 
> command from Smart VPN[8376]
> 2016/4/20 PM 1:15:48.440 nesessionmanager[4826]: 
> NESMVPNSession[vpn:A58F98D8-580D-46BB-BA9C-B514EDB00073]: status changed to 
> connecting
> 2016/4/20 PM 1:15:48.606 nesessionmanager[4826]: Failed to find the VPN app 
> for plugin type com.draytek.SmartVPN
> 2016/4/20 PM 1:15:48.606 nesessionmanager[4826]: Failed to find the primary 
> plugin (type = com.draytek.SmartVPN)
> 2016/4/20 PM 1:15:48.611 nesessionmanager[4826]: Failed to find the VPN app 
> for plugin type com.draytek.SmartVPN
> 2016/4/20 PM 1:15:48.611 nesessionmanager[4826]: Failed to find the primary 
> plugin (type = com.draytek.SmartVPN)
> 2016/4/20 PM 1:15:48.611 nesessionmanager[4826]: 
> NESMVPNSession[vpn:A58F98D8-580D-46BB-BA9C-B514EDB00073]: status changed to 
> disconnecting
> 2016/4/20 下午1:15:48.613 nesessionmanager[4826]: 
> NESMVPNSession[vpn:A58F98D8-580D-46BB-BA9C-B514EDB00073]: status changed to 
> disconnected, last stop reason Plugin failed
> 
> 
> My container app bundle ID = com.draytek.SmartVPN, and extension bundle = 
> com.draytek.SmartVPN.drayTunnelX, do they need to be identical?? we use 
> different ID in iOS app and works well.
> 
> My entitlement file looks like this now (identical for app and extension)
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
> "http://www.apple.com/DTDs/PropertyList-1.0.dtd 
> <http://www.apple.com/DTDs/PropertyList-1.0.dtd>">
> <plist version="1.0">
> <dict>
>         <key>com.apple.developer.networking.networkextension</key>
>         <array>
>                 <string>packet-tunnel-provider</string>
>         </array>
>         <key>com.apple.security.app-sandbox</key>
>         <true/>
>         <key>com.apple.security.application-groups</key>
>         <array>
>                 <string>group.com.draytek.Smart-VPN</string>
>         </array>
>         <key>com.apple.security.network.client</key>
>         <true/>
>         <key>keychain-access-groups</key>
>         <array>
>                 
> <string>$(AppIdentifierPrefix)com.draytek.Smart-VPN.shared</string>
>         </array>
> </dict>
> </plist>
> 
> 
> — Kevin
> 
> 
> > Kevin Brock <[email protected] <mailto:[email protected]>> 於 2016年4月20日 下午1:03 
> > 寫道:
> >
> > Is the app also sandboxed?  Both the app and the extension need to be 
> > sandboxed, and the entitlements should match.
> >
> > Kevin
> >
> >
> >> On Apr 19, 2016, at 20:29, Kevin Yu <[email protected] 
> >> <mailto:[email protected]>> wrote:
> >>
> >>>> $ pluginkit -a /path/to/extension
> >>
> >> I use the above command to add my plugin, I can see the plugin registered 
> >> via the following command
> >>
> >> $ pluginkit -m -p com.apple.networkextension.packet-tunnel
> >>    com.draytek.SmartVPN.drayTunnelX(1.0)
> >>    com.apple.NetworkExtension.IKEv2Provider(1.0)
> >>
> >> However, I still can not connect my plugin code.
> >> When I checked the console log, it shows bunch of messages like this:
> >>
> >> 2016/4/20 AM10:49:29.082 pkd[610]: ignoring mis-configured plug-in at 
> >> /Users/kevinyu/Library/Developer/Xcode/DerivedData/Smart_VPN-ahmwawingpuachhkpmczcmidvxsy/Build/Products/Debug/drayTunnelX.appex:
> >>  plug-ins must be sandboxed
> >>
> >> And I already checked sandbox switch for my extension and clicked 
> >> “Outgoing Connections (Client)” option.
> >>
> >> Any suggestions?
> >>
> >> p.s. I did not use a fresh Machine, I use the force method to register 
> >> extension,  is it needed for a fresh Machine?
> >>
> >> — Kevin
> >>
> >>
> >>
> >>
> >>> [email protected] 
> >>> <mailto:[email protected]> 於 2016年3月5日 上午4:00 寫道:
> >>>
> >>> Quinn, Thanks a lot for the information that I did not know before.
> >>>
> >>> it turns out my plugin did not registered at all.
> >>> Now my question became, how to registered my plugin when deploy the app 
> >>> to other machine?
> >>> Because in iOS, it install via app store (or TestFlight) and iOS can 
> >>> handle it well, we did not notice any plugin register operation is 
> >>> needed, it just works.
> >>> We also plan to deploy the developing app via Mac’s App Store, what 
> >>> operation is needed for going this way?
> >>>
> >>> — Kevin
> >>>
> >>>>
> >>>>
> >>>>> Any suggestion?
> >>>>
> >>>>
> >>>> * extension registration — Registration problems are more common on OS X 
> >>>> than iOS because the app install process is more free form. You can 
> >>>> confirm that the extension is registered with the following command:
> >>>>
> >>>> $ pluginkit -m -p com.apple.networkextension.packet-tunnel
> >>>>
> >>>> This should produce output that shows your extension.  To get a feeling 
> >>>> for the output you should expect to see, you can run the command for 
> >>>> some other extension point.  For example, to see share extensions:
> >>>>
> >>>> $ pluginkit -m -p com.apple.share-services
> >>>>
> >>>> If your extension isn't registered, you should do two things:
> >>>>
> >>>> - Install your app on a fresh machine (I use a VM for this, rolling back 
> >>>> to a snapshot for each debugging iteration) to see that it works in 
> >>>> general. A lot of the time problems like this only occur on your 
> >>>> development machine, where you're continually creating and launching new 
> >>>> versions of the app.
> >>>>
> >>>> - On your development machine you can force the extension to register 
> >>>> using:
> >>>>
> >>>> $ pluginkit -a /path/to/extension
> >>
> >> _______________________________________________
> >> Do not post admin requests to the list. They will be ignored.
> >> Macnetworkprog mailing list      ([email protected] 
> >> <mailto:[email protected]>)
> >> Help/Unsubscribe/Update your Subscription:
> >> https://lists.apple.com/mailman/options/macnetworkprog/apple%40kevin.com 
> >> <https://lists.apple.com/mailman/options/macnetworkprog/apple%40kevin.com>
> >>
> >> This email sent to [email protected] <mailto:[email protected]>
> >
> 
> 
>  _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Macnetworkprog mailing list      ([email protected] 
> <mailto:[email protected]>)
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/macnetworkprog/yarshure%40gmail.com 
> <https://lists.apple.com/mailman/options/macnetworkprog/yarshure%40gmail.com>
> 
> This email sent to [email protected] <mailto:[email protected]>
> 

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Macnetworkprog mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/macnetworkprog/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to