我的团队正在编写一个需要在外部目录中调用 shell 脚本的 Mac OS 应用程序。
该应用程序在优胜美地 (10.10.3) 上运行良好。但是,如果我在 El Capitan (10.11.2) 上运行它,应用程序会从脚本中收到如下错误:
/bin/bash: <path-to-script>: /bin/sh: bad interpreter: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
我可以在这样的简单脚本上触发此错误:
#!/bin/sh
echo "Hello World!"
Run Code Online (Sandbox Code Playgroud)
如果我从终端手动运行脚本,我不会收到错误消息。
应用程序使用文件选择器打开脚本目录。我确认应用程序可以从此目录读取其他文件。
更改/bin/sh为/bin/bash或/bin/sh在不同路径上的副本使用新的解释器路径会产生相同的错误。
一位同事在禁用系统完整性保护的 El Capitan 机器上测试了这个问题,但他得到了同样的错误。
我正在从 .pkg 文件安装测试应用程序。权利是:
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.files.bookmarks.app-scope</key>
<true/>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
Run Code Online (Sandbox Code Playgroud)
添加com.apple.security.files.user-selected.executable权利没有任何区别
如果我尝试运行在包构建的中间步骤中生成的 .app,我可以运行脚本而不会出错。
下面的问题描述了一个类似的错误。但是,我检查了应用程序和脚本,发现都没有com.apple.quarantine设置属性。
Mac OS: /usr/bin/env: bad interpreter: Operation not allowed
- - 更新 - -
我们在 PKG 权利列表中又添加了两个:
<key>com.apple.security.scripting-targets</key>
<true/>
<key>com.apple.security.temporary-exception.apple-events</key>
<true/>
Run Code Online (Sandbox Code Playgroud)
我们尝试通过 …
如何通过应用程序的路径将应用程序置于最前面?
即假设/Applications/MyApp.app已经开始;有时我想通过将 MyApp.app 窗口的路径传递给 AppleScript: 来将其置于前面myApplScript.scpt /Applications/MyApp.app。
我尝试过这个脚本,但这对我不起作用:
on run argv
set apppath to (item 1 of argv) as string
tell application "System Events"
set frontmost of every process whose path is apppath to true
end tell
end run
Run Code Online (Sandbox Code Playgroud)
谢谢!
我通过以下链接演示了如何将文件从 Gallery 复制到应用程序或其他目录(正确答案):
如何将 iOS 照片库 (ALAssetsLibrary) 中的图像文件复制到应用程序的本地目录?
但是对于 ALAssetsLibrary 类文档,Apple 表示它现在已从 iOS 9.0 开始弃用,而是使用照片框架。
自 iOS 9.0 起,资产库框架已弃用。相反,请改用照片框架,它在 iOS 8.0 及更高版本中提供更多功能和更好的性能来处理用户的照片库。有关更多信息,请参阅照片框架参考。
如何使用照片框架将资源从图库复制到其他 URL?
我的应用程序在React Native Navigation v1.0和react-native v0.56.0上运行。这在 Android 模拟器上运行得很好,没有任何问题。
最近,我计划按照ReactNative 页面中描述的步骤进行生产构建。
在使用命令生成发布 APK 时./gradlew assembleRelease,最终我抛出了错误 - File not found: index.android.js in any of the project roots;但我的项目由index.js组成,而不是index.android.js。
在 Wix Git 上获得帮助的可能性较小,因为他们现在对 v1.0 的关注较少。所以,我希望能找到一条出路。
这是我的MainApplication.java内容:
import android.support.annotation.Nullable;
import com.facebook.react.ReactPackage;
import com.reactnativenavigation.NavigationApplication;
import java.util.Arrays;
import java.util.List;
import com.reactnative.ivpusic.imagepicker.PickerPackage;
import com.oblador.vectoricons.VectorIconsPackage;
public class MainApplication extends NavigationApplication {
@Override
public boolean isDebug() {
return BuildConfig.DEBUG;
}
@Nullable
@Override
public List<ReactPackage> createAdditionalReactPackages() {
return Arrays.<ReactPackage>asList(
new PickerPackage(),
new VectorIconsPackage()
);
}
@Nullable …Run Code Online (Sandbox Code Playgroud) react-native react-native-navigation wix-react-native-navigation
applescript ×1
bash ×1
deprecated ×1
ios ×1
ios9 ×1
macos ×1
objective-c ×1
pkg-file ×1
react-native ×1
swift ×1