Seems that if your project uses scripts while building to copy sources / headers, Xcode won't look into them to index because they don't exist under "Index" directory. The "Index Build" process will build project with Configuration: Null ( you can see in index build log ). So I think the solution here is that we have to re-write some rules in Build Phase and check if it is under indexing process, then modify target path. Of course, it is really disaster for me. Please, Xcode developer, fix this
Post
Replies
Boosts
Views
Activity
@eskimo:
Here is the entitlement of main app:
Executable=/private/tmp/example_installer.app/Contents/MacOS/example_installer
<?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">
<plist version="1.0">
<dict>
<key>com.apple.application-identifier</key>
<string>W7S57TNBH5.com.example.installer</string>
<key>com.apple.developer.networking.networkextension</key>
<array>
<string>app-proxy-provider</string>
</array>
<key>com.apple.developer.team-identifier</key>
<string>W7S57TNBH5</string>
<key>com.apple.security.application-groups</key>
<array>
<string>W7S57TNBH5.com.example.installer</string>
</array>
<key>com.apple.security.get-task-allow</key>
<true/>
</dict>
</plist>
main app's provision profile:
...
<key>Entitlements</key>
<dict>
<key>com.apple.developer.system-extension.install</key>
<true/>
<key>com.apple.application-identifier</key>
<string>W7S57TNBH5.com.example.installer</string>
<key>com.apple.developer.networking.networkextension</key>
<array>
<string>app-proxy-provider</string>
<string>content-filter-provider</string>
<string>packet-tunnel-provider</string>
<string>dns-proxy</string>
<string>dns-settings</string>
</array>
<key>keychain-access-groups</key>
<array>
<string>W7S57TNBH5.*</string>
</array>
<key>com.apple.developer.team-identifier</key>
<string>W7S57TNBH5</string>
</dict>
...
Entitlement from its network extension
Executable=/private/tmp/example_installer.app/Contents/Library/SystemExtensions/com.example.installer.networkext.systemextension/Contents/MacOS/com.example.installer.networkext
<?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">
<plist version="1.0">
<dict>
<key>com.apple.application-identifier</key>
<string>W7S57TNBH5.com.example.installer.networkext</string>
<key>com.apple.developer.networking.networkextension</key>
<array>
<string>app-proxy-provider</string>
</array>
<key>com.apple.developer.team-identifier</key>
<string>W7S57TNBH5</string>
<key>com.apple.security.application-groups</key>
<array>
<string>W7S57TNBH5.com.example.installer.networkext</string>
</array>
<key>com.apple.security.get-task-allow</key>
<true/>
</dict>
</plist>
and its provision profile also
...
<key>Entitlements</key>
<dict>
<key>com.apple.developer.system-extension.install</key>
<true/>
<key>com.apple.application-identifier</key>
<string>W7S57TNBH5.com.example.installer.networkext</string>
<key>com.apple.developer.networking.networkextension</key>
<array>
<string>app-proxy-provider</string>
<string>content-filter-provider</string>
<string>packet-tunnel-provider</string>
<string>dns-proxy</string>
<string>dns-settings</string>
</array>
<key>keychain-access-groups</key>
<array>
<string>W7S57TNBH5.*</string>
</array>
<key>com.apple.developer.team-identifier</key>
<string>W7S57TNBH5</string>
</dict>
...
I really dont see any problems here ...
@tartempion I tried to add that suffix but nothing changed after all
Thanks for your reply, I have checked my application and:
Here is my example_extension.entitlements for the Network Extension and its bundleID is "com.example.installer.networkext":
<?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">
<plist version="1.0">
<dict>
<key>com.apple.developer.networking.networkextension</key>
<array>
<string>app-proxy-provider</string>
</array>
<key>com.apple.security.application-groups</key>
<array>
<string>$(TeamIdentifierPrefix)com.example.installer.networkext</string>
</array>
</dict>
</plist>
Here is its Info.plist also:
<?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">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>
<string>example_extension</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSMinimumSystemVersion</key>
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2020 HarDToBelieve. All rights reserved.</string>
<key>NSSystemExtensionUsageDescription</key>
<string></string>
<key>NetworkExtension</key>
<dict>
<key>NEMachServiceName</key>
<string>$(TeamIdentifierPrefix)com.example.installer.networkext</string>
<key>NEProviderClasses</key>
<dict>
<key>com.apple.networkextension.app-proxy</key>
<string>AppProxyProvider</string>
</dict>
</dict>
</dict>
</plist>
Here is my example.entitlements ( which is the entitlements of my app containing the network extension above ), and its bundleID is "com.example.installer":
<?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">
<plist version="1.0">
<dict>
<key>com.apple.security.application-groups</key>
<array>
<string>$(TeamIdentifierPrefix)com.example.installer</string>
</array>
<key>com.apple.developer.networking.networkextension</key>
<array>
<string>app-proxy-provider</string>
</array>
</dict>
</plist>
I build the application successfully without any warning or error about provisioning profile or signing cert, so I think I have configured information on Apple server and my local machine correctly ( haven't I? )
Yes, you are right, I create a "App IDs" Identifier and grant it the permission for "Network Extension" and "System Extension". So what am I supposed to do?